From patchwork Mon Apr 2 23:55:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denys Dmytriyenko X-Patchwork-Id: 132696 Delivered-To: patch@linaro.org Received: by 10.46.84.29 with SMTP id i29csp3153283ljb; Mon, 2 Apr 2018 16:55:56 -0700 (PDT) X-Google-Smtp-Source: AIpwx49+96f3NGu5WmWaKb1eyEmq8JOBHRLP1Dw1auwI4W9HmuLHxOcEm4DJAYN4zqLEvTYhVkYn X-Received: by 10.98.160.92 with SMTP id r89mr8691294pfe.235.1522713355948; Mon, 02 Apr 2018 16:55:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522713355; cv=none; d=google.com; s=arc-20160816; b=T5P+2PvPGpAqJwPrbJt96taE3Vt9500H69EWEVaqmKBy3GGIW/ZXXJI4CQq5jNq5mn 01/5COtGpXUdn9qyS8bKgbgpIghdytOGfosFrZS9hjm2RHvNIma5cgiCscDxZnC2RdVQ 0TwlNlOcdNyPS8NBGfvvqxd1wGAuGNvoJ1xCjrhcycXWeMw9W5jI75DNHANOMobeD2jF c/6+ECOPJhig5Ermm2QaKdJ16CJwZGG6RplV8eWoB/htRlLjc6muIPF55xaNpqqB1/5z dHHUj27Dx0Q89EEqw4u4TA+CwWt9eAqDO1mKt4bEkYtFCLg0x1XdcruZ1Ax1OuJuFB27 0+qQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:cc:message-id:date:to:from:delivered-to :arc-authentication-results; bh=BYpoHKDPr3YqNBMWJy/vqQn8ek0E7itjAkv8kljRoYY=; b=XoLrjgYtlyYGqA5wLwmmHKtcpmyLrMOKAlS7ukv4aD3Ot6R4YRncrr3ECAQlta97Su ja5uikN36oXRqX/K6xD9hQ84ESYiZA+yLKDn0g5bm7njGx5Z+xEClzUxrWiYgOHqx4q/ DEfuebnBjx+kQE52TK9s/RMxyOLJU92Uyg2LI0P4Ujbn35uFKkbAOPwcpPqpBz8pNECW gch2BiQ34nkMVvkHxRWgvTNtTNLSv1EMKx078r4FinufFBQUcAqVYw+JpgK8bEOTSjR+ hXLx0E3HHg/Xw7lsVe/ECiVg6ENpcA51FU3viWeH6yAvuiPYoepFj78MQgiVSuifgOFn GPhQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-devel-bounces@lists.openembedded.org Return-Path: Received: from mail.openembedded.org (mail.openembedded.org. [140.211.169.62]) by mx.google.com with ESMTP id y12-v6si1562922pll.318.2018.04.02.16.55.54; Mon, 02 Apr 2018 16:55:55 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) client-ip=140.211.169.62; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of openembedded-devel-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-devel-bounces@lists.openembedded.org Received: from layers.openembedded.org (localhost [127.0.0.1]) by mail.openembedded.org (Postfix) with ESMTP id D685C74853; Mon, 2 Apr 2018 23:55:51 +0000 (UTC) X-Original-To: openembedded-devel@lists.openembedded.org Delivered-To: openembedded-devel@lists.openembedded.org Received: from mailout4.zoneedit.com (mailout4.zoneedit.com [64.68.198.17]) by mail.openembedded.org (Postfix) with ESMTP id 944AD7462C for ; Mon, 2 Apr 2018 23:55:47 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mailout4.zoneedit.com (Postfix) with ESMTP id 30C6720992; Mon, 2 Apr 2018 23:55:48 +0000 (UTC) Received: from mailout4.zoneedit.com ([127.0.0.1]) by localhost (zmo03-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WvRxB3unaW9U; Mon, 2 Apr 2018 23:55:47 +0000 (UTC) Received: from mail.denix.org (pool-100-15-85-143.washdc.fios.verizon.net [100.15.85.143]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout4.zoneedit.com (Postfix) with ESMTPSA id D2A252017D; Mon, 2 Apr 2018 23:55:45 +0000 (UTC) Received: from gimli.denix (gimli [192.168.0.6]) by mail.denix.org (Postfix) with ESMTP id 2976D162522; Mon, 2 Apr 2018 19:55:44 -0400 (EDT) From: Denys Dmytriyenko To: openembedded-devel@lists.openembedded.org Date: Mon, 2 Apr 2018 19:55:43 -0400 Message-Id: <1522713343-47503-1-git-send-email-denis@denix.org> X-Mailer: git-send-email 2.7.4 Cc: Denys Dmytriyenko Subject: [oe] [PATCH] mariadb: refresh local patches to avoid fuzz warnings X-BeenThere: openembedded-devel@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Using the OpenEmbedded metadata to build Distributions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: openembedded-devel-bounces@lists.openembedded.org Errors-To: openembedded-devel-bounces@lists.openembedded.org From: Denys Dmytriyenko Signed-off-by: Denys Dmytriyenko --- .../mariadb/0001-disable-ucontext-on-musl.patch | 6 +- .../mysql/mariadb/change-cc-to-cc-version.patch | 17 +- .../mariadb/configure.cmake-fix-valgrind.patch | 10 +- .../mysql/mariadb/fix-a-building-failure.patch | 13 +- .../mysql/mariadb/fix-cmake-module-path.patch | 66226 ++++++++++++++++++- .../mysql/mariadb/fix-mysqlclient-r-version.patch | 30 +- .../mysql/mariadb/remove-bad-path.patch | 17 +- 7 files changed, 66273 insertions(+), 46 deletions(-) -- 2.7.4 -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch index 60e9199..f0768de 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch @@ -1,4 +1,4 @@ -From 5bc3e7ef9700d12054e0125a126f1bb093f01ef9 Mon Sep 17 00:00:00 2001 +From 48d3da164a14d59f09e2b8c7ef73343859ae5d32 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 26 Mar 2017 14:30:33 -0700 Subject: [PATCH] disable ucontext on musl @@ -6,6 +6,7 @@ Subject: [PATCH] disable ucontext on musl musl does not have *contex() APIs even though it has ucontext.h header Signed-off-by: Khem Raj + --- include/my_context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -23,6 +24,3 @@ index dd44103..9b28c17 100644 #define MY_CONTEXT_USE_UCONTEXT #else #define MY_CONTEXT_DISABLE --- -2.12.1 - diff --git a/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch b/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch index 02bda24..2951234 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch @@ -1,4 +1,8 @@ -mariadb: replace the CC with CC_VERSION and CXX with CXX_VERSION +From 9f3e0d8c8fc874bc13e1a34f92c8df6b31914e83 Mon Sep 17 00:00:00 2001 +From: Yue Tao +Date: Wed, 28 Sep 2016 22:49:11 -0400 +Subject: [PATCH] mariadb: replace the CC with CC_VERSION and CXX with + CXX_VERSION mysqlbug.sh is a bug report script. It makes a report with the build information, including gcc version. The CC is the local path of gcc, which is useless for bug @@ -9,9 +13,14 @@ Upstream-Status: Pending Signed-off-by: Yue Tao Signed-off-by: Wenzong Fan ================================ -diff --git a/scripts/mysqlbug.sh.old b/scripts/mysqlbug.sh -index e9df210..d4b8d53 100644 ---- a/scripts/mysqlbug.sh.old + +--- + scripts/mysqlbug.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/scripts/mysqlbug.sh b/scripts/mysqlbug.sh +index e9df210..7177915 100644 +--- a/scripts/mysqlbug.sh +++ b/scripts/mysqlbug.sh @@ -24,8 +24,8 @@ VERSION="@VERSION@@MYSQL_SERVER_SUFFIX@" COMPILATION_COMMENT="@COMPILATION_COMMENT@" diff --git a/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch b/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch index e97def6..9448b6e 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch @@ -1,4 +1,4 @@ -From 5effba0d7d47071a3f1bca56823190d5a95bb1a6 Mon Sep 17 00:00:00 2001 +From eda09f35a23a2580f1e6f9667387e1d198a7cca7 Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Wed, 12 Nov 2014 03:09:10 -0500 Subject: [PATCH] configure.cmake: fix valgrind @@ -15,15 +15,16 @@ PACKAGECONFIG to decide if valgrind is needed or not. Upstream-Status: Inappropriate [oe specific] Signed-off-by: Jackie Huang + --- configure.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.cmake b/configure.cmake -index 0bd7bbe..51a098f 100644 +index 4051b55..01410ad 100644 --- a/configure.cmake +++ b/configure.cmake -@@ -1047,10 +1047,10 @@ MARK_AS_ADVANCED(WITH_ATOMIC_LOCKS MY_ATOMIC_MODE_RWLOCK MY_ATOMIC_MODE_DUMMY) +@@ -1057,10 +1057,10 @@ MARK_AS_ADVANCED(WITH_ATOMIC_LOCKS MY_ATOMIC_MODE_RWLOCK MY_ATOMIC_MODE_DUMMY) IF(WITH_VALGRIND) SET(HAVE_valgrind 1) @@ -36,6 +37,3 @@ index 0bd7bbe..51a098f 100644 #-------------------------------------------------------------------- # Check for IPv6 support --- -2.0.0 - diff --git a/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch index 0c4e102..3811029 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch @@ -1,4 +1,7 @@ -[PATCH] fix a building failure +From b36d327b12a3e2f7b712b22fdd4e69f941bdd01d Mon Sep 17 00:00:00 2001 +From: Roy Li +Date: Wed, 6 May 2015 11:05:40 +0800 +Subject: [PATCH] [PATCH] fix a building failure Upstream-Status: Inappropriate [configuration] @@ -6,15 +9,16 @@ building failed since native does not generate import_executables.cmake In fact, our building system will export the needed commands Signed-off-by: Roy Li + --- CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index c1ce1c5..83b3a7e 100644 +index 11103c8..7557a00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -350,11 +350,6 @@ MYSQL_CHECK_READLINE() +@@ -352,11 +352,6 @@ MYSQL_CHECK_READLINE() CHECK_JEMALLOC() @@ -26,6 +30,3 @@ index c1ce1c5..83b3a7e 100644 # # Setup maintainer mode options by the end. Platform checks are # not run with the warning options as to not perturb fragile checks --- -1.9.1 - diff --git a/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch index 8d9f558..a4fe02b 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch @@ -1,4 +1,7 @@ -Avoid CMAKE_MODULE_PATH being overwritten +From 8bd396589ffe0e68181e92995a27cd30acd4f8a8 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton +Date: Fri, 8 Aug 2014 15:16:40 +0100 +Subject: [PATCH] Avoid CMAKE_MODULE_PATH being overwritten OE-Core's setting of CMAKE_MODULE_PATH stomps on MariaDB's value unless we set it after setting the project name. @@ -7,9 +10,133 @@ Signed-off-by: Paul Eggleton Upstream-Status: Inappropriate [working around OE-Core bug] ---- mariadb/CMakeLists.txt 2014-07-17 11:01:07.676353047 +0100 -+++ mariadb/CMakeLists.txt 2014-07-17 11:01:31.299353107 +0100 -@@ -28,8 +28,6 @@ +--- + CMakeLists.txt | 4 +- + Docs/INFO_SRC | 8 + + dbug/user.r | 1121 + + sql/sql_yacc.cc | 37809 +++++++++++++++++++ + sql/sql_yacc.h | 1348 + + storage/maria/unittest/ma_test_all-t | 766 + + storage/ndb/ndbapi-examples/Makefile | 27 + + .../ndb/ndbapi-examples/mgmapi_logevent/Makefile | 24 + + .../ndb/ndbapi-examples/mgmapi_logevent2/Makefile | 24 + + storage/ndb/ndbapi-examples/ndbapi_async/Makefile | 24 + + storage/ndb/ndbapi-examples/ndbapi_async1/Makefile | 23 + + storage/ndb/ndbapi-examples/ndbapi_event/Makefile | 24 + + .../ndb/ndbapi-examples/ndbapi_retries/Makefile | 23 + + storage/ndb/ndbapi-examples/ndbapi_scan/Makefile | 24 + + storage/ndb/ndbapi-examples/ndbapi_simple/Makefile | 24 + + .../ndbapi-examples/ndbapi_simple_dual/Makefile | 24 + + .../ndbapi-examples/ndbapi_simple_index/Makefile | 24 + + storage/ndb/src/common/logger/listtest/Makefile | 14 + + storage/ndb/src/common/logger/loggertest/Makefile | 16 + + .../ndb/src/common/mgmcommon/printConfig/Makefile | 16 + + .../ndb/src/common/transporter/basictest/Makefile | 15 + + .../src/common/transporter/failoverSCI/Makefile | 18 + + .../ndb/src/common/transporter/perftest/Makefile | 15 + + .../ndb/src/common/transporter/priotest/Makefile | 15 + + .../common/transporter/priotest/prioSCI/Makefile | 17 + + .../common/transporter/priotest/prioSHM/Makefile | 13 + + .../common/transporter/priotest/prioTCP/Makefile | 13 + + storage/ndb/src/common/util/filetest/Makefile | 14 + + .../ndb/src/common/util/testConfigValues/Makefile | 12 + + .../ndb/src/common/util/testProperties/Makefile | 9 + + .../src/common/util/testSimpleProperties/Makefile | 12 + + storage/ndb/src/cw/test/socketclient/Makefile | 24 + + storage/ndb/src/cw/util/Makefile | 10 + + .../src/kernel/blocks/dbdih/printSysfile/Makefile | 12 + + .../src/kernel/blocks/ndbfs/AsyncFileTest/Makefile | 27 + + .../kernel/blocks/ndbfs/MemoryChannelTest/Makefile | 13 + + storage/ndb/src/kernel/vm/al_test/Makefile | 12 + + storage/ndb/src/kernel/vm/testCopy/Makefile | 9 + + storage/ndb/src/kernel/vm/testDataBuffer/Makefile | 10 + + storage/ndb/src/kernel/vm/testLongSig/Makefile | 9 + + .../kernel/vm/testSimplePropertiesSection/Makefile | 10 + + storage/ndb/src/mgmapi/test/Makefile | 13 + + storage/ndb/src/mgmclient/test_cpcd/Makefile | 17 + + storage/ndb/src/mgmsrv/mkconfig/Makefile | 13 + + storage/ndb/src/ndbapi/signal-sender/Makefile | 19 + + storage/ndb/test/newtonapi/basic_test/Makefile | 25 + + .../ndb/test/newtonapi/basic_test/basic/Makefile | 14 + + .../test/newtonapi/basic_test/bulk_read/Makefile | 14 + + .../test/newtonapi/basic_test/ptr_binding/Makefile | 14 + + storage/ndb/test/newtonapi/perf_test/Makefile | 14 + + storage/ndb/test/odbc/SQL99_test/Makefile | 26 + + storage/ndb/test/odbc/client/Makefile | 95 + + storage/ndb/test/odbc/dm-iodbc/Makefile | 38 + + storage/ndb/test/odbc/dm-unixodbc/Makefile | 39 + + storage/ndb/test/odbc/driver/Makefile | 30 + + storage/ndb/test/odbc/test_compiler/Makefile | 21 + + .../ft-index/third_party/xz-4.999.9beta/configure | 23074 +++++++++++ + .../third_party/xz-4.999.9beta/dos/Makefile | 255 + + .../third_party/xz-4.999.9beta/windows/Makefile | 308 + + storage/tokudb/tests/Makefile | 53 + + 60 files changed, 65736 insertions(+), 2 deletions(-) + create mode 100644 Docs/INFO_SRC + create mode 100644 dbug/user.r + create mode 100644 sql/sql_yacc.cc + create mode 100644 sql/sql_yacc.h + create mode 100755 storage/maria/unittest/ma_test_all-t + create mode 100644 storage/ndb/ndbapi-examples/Makefile + create mode 100644 storage/ndb/ndbapi-examples/mgmapi_logevent/Makefile + create mode 100644 storage/ndb/ndbapi-examples/mgmapi_logevent2/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_async/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_async1/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_event/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_retries/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_scan/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_simple/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_simple_dual/Makefile + create mode 100644 storage/ndb/ndbapi-examples/ndbapi_simple_index/Makefile + create mode 100644 storage/ndb/src/common/logger/listtest/Makefile + create mode 100644 storage/ndb/src/common/logger/loggertest/Makefile + create mode 100644 storage/ndb/src/common/mgmcommon/printConfig/Makefile + create mode 100644 storage/ndb/src/common/transporter/basictest/Makefile + create mode 100644 storage/ndb/src/common/transporter/failoverSCI/Makefile + create mode 100644 storage/ndb/src/common/transporter/perftest/Makefile + create mode 100644 storage/ndb/src/common/transporter/priotest/Makefile + create mode 100644 storage/ndb/src/common/transporter/priotest/prioSCI/Makefile + create mode 100644 storage/ndb/src/common/transporter/priotest/prioSHM/Makefile + create mode 100644 storage/ndb/src/common/transporter/priotest/prioTCP/Makefile + create mode 100644 storage/ndb/src/common/util/filetest/Makefile + create mode 100644 storage/ndb/src/common/util/testConfigValues/Makefile + create mode 100644 storage/ndb/src/common/util/testProperties/Makefile + create mode 100644 storage/ndb/src/common/util/testSimpleProperties/Makefile + create mode 100644 storage/ndb/src/cw/test/socketclient/Makefile + create mode 100644 storage/ndb/src/cw/util/Makefile + create mode 100644 storage/ndb/src/kernel/blocks/dbdih/printSysfile/Makefile + create mode 100644 storage/ndb/src/kernel/blocks/ndbfs/AsyncFileTest/Makefile + create mode 100644 storage/ndb/src/kernel/blocks/ndbfs/MemoryChannelTest/Makefile + create mode 100644 storage/ndb/src/kernel/vm/al_test/Makefile + create mode 100644 storage/ndb/src/kernel/vm/testCopy/Makefile + create mode 100644 storage/ndb/src/kernel/vm/testDataBuffer/Makefile + create mode 100644 storage/ndb/src/kernel/vm/testLongSig/Makefile + create mode 100644 storage/ndb/src/kernel/vm/testSimplePropertiesSection/Makefile + create mode 100644 storage/ndb/src/mgmapi/test/Makefile + create mode 100644 storage/ndb/src/mgmclient/test_cpcd/Makefile + create mode 100644 storage/ndb/src/mgmsrv/mkconfig/Makefile + create mode 100644 storage/ndb/src/ndbapi/signal-sender/Makefile + create mode 100644 storage/ndb/test/newtonapi/basic_test/Makefile + create mode 100644 storage/ndb/test/newtonapi/basic_test/basic/Makefile + create mode 100644 storage/ndb/test/newtonapi/basic_test/bulk_read/Makefile + create mode 100644 storage/ndb/test/newtonapi/basic_test/ptr_binding/Makefile + create mode 100644 storage/ndb/test/newtonapi/perf_test/Makefile + create mode 100644 storage/ndb/test/odbc/SQL99_test/Makefile + create mode 100644 storage/ndb/test/odbc/client/Makefile + create mode 100644 storage/ndb/test/odbc/dm-iodbc/Makefile + create mode 100644 storage/ndb/test/odbc/dm-unixodbc/Makefile + create mode 100644 storage/ndb/test/odbc/driver/Makefile + create mode 100644 storage/ndb/test/odbc/test_compiler/Makefile + create mode 100755 storage/tokudb/ft-index/third_party/xz-4.999.9beta/configure + create mode 100644 storage/tokudb/ft-index/third_party/xz-4.999.9beta/dos/Makefile + create mode 100644 storage/tokudb/ft-index/third_party/xz-4.999.9beta/windows/Makefile + create mode 100644 storage/tokudb/tests/Makefile + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6ab17eb..11103c8 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,8 +38,6 @@ ENDIF() MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}") @@ -18,7 +145,7 @@ Upstream-Status: Inappropriate [working around OE-Core bug] # Distinguish between community and non-community builds, with the # default being a community build. This does not impact the feature # set that will be compiled in; it's merely provided as a hint to -@@ -77,6 +75,8 @@ +@@ -87,6 +85,8 @@ ELSE() ENDIF() PROJECT(${MYSQL_PROJECT_NAME}) @@ -27,3 +154,66092 @@ Upstream-Status: Inappropriate [working around OE-Core bug] IF(BUILD_CONFIG) INCLUDE( ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake) +diff --git a/Docs/INFO_SRC b/Docs/INFO_SRC +new file mode 100644 +index 0000000..7887ce5 +--- /dev/null ++++ b/Docs/INFO_SRC +@@ -0,0 +1,8 @@ ++commit: 59fca5806af65c8379a993f9e604cb0b20a76e2b ++date: 2017-07-18 19:50:11 +0200 ++build-date: 2017-07-18 20:33:21 +0000 ++short: 59fca58 ++branch: HEAD ++ ++ ++MySQL source 5.5.57 +diff --git a/dbug/user.r b/dbug/user.r +new file mode 100644 +index 0000000..8d8a9ce +--- /dev/null ++++ b/dbug/user.r +@@ -0,0 +1,1121 @@ ++.\" @(#)user.r 1.13 10/29/86 ++.\" ++.\" 2004-10-29: documented features implemented since 10/29/86 ++.\" formatting cleanup ++.\" - Sergei Golubchik ++.\" ++.\" DBUG (Macro Debugger Package) nroff source ++.\" ++.\" nroff -mm user.r >user.t ++.\" groff -mm user.r >user.ps ++.\" ++.\" =================================================== ++.\" ++.\" === Some sort of black magic, but I forget... ++.tr ~ ++.\" === Hyphenation control (1 = on) ++.\".nr Hy 1 ++.\" === Force all first level headings to start on new page ++.nr Ej 1 ++.\" === Set for breaks after headings for levels 1-3 ++.nr Hb 3 ++.\" === Set for space after headings for levels 1-3 ++.nr Hs 3 ++.\" === Set standard indent for one/half inch ++.nr Si 10 ++.\" === Set page header ++.PH "/DBUG User Manual//\*(DT/" ++.\" === Set page footer ++.PF "// - % - //" ++.\" === Set page offset ++.\".po 0.60i ++.\" === Set line length ++.\".ll 6.5i ++.TL ++.warn 0 ++D B U G ++.P 0 ++C Program Debugging Package ++.P 0 ++by ++.AU "Fred Fish" ++.AF "" ++.SA 1 ++.\" === All paragraphs indented. ++.nr Pt 1 ++.AS 1 ++This document introduces ++.I dbug , ++a macro based C debugging ++package which has proven to be a very flexible and useful tool ++for debugging, testing, and porting C programs. ++ ++.P ++All of the features of the ++.I dbug ++package can be enabled or disabled dynamically at execution time. ++This means that production programs will run normally when ++debugging is not enabled, and eliminates the need to maintain two ++separate versions of a program. ++ ++.P ++Many of the things easily accomplished with conventional debugging ++tools, such as symbolic debuggers, are difficult or impossible with this ++package, and vice versa. ++Thus the ++.I dbug ++package should ++.I not ++be thought of as a replacement or substitute for ++other debugging tools, but simply as a useful ++.I addition ++to the ++program development and maintenance environment. ++ ++.AE ++.MT 4 ++.SK ++.B ++INTRODUCTION ++.R ++ ++.P ++Almost every program development environment worthy of the name ++provides some sort of debugging facility. ++Usually this takes the form of a program which is capable of ++controlling execution of other programs and examining the internal ++state of other executing programs. ++These types of programs will be referred to as external debuggers ++since the debugger is not part of the executing program. ++Examples of this type of debugger include the ++.B adb ++and ++.B sdb ++debuggers provided with the ++.B UNIX\*F ++.FS ++UNIX is a trademark of AT&T Bell Laboratories. ++.FE ++operating system. ++ ++.P ++One of the problems associated with developing programs in an environment ++with good external debuggers is that developed programs tend to have ++little or no internal instrumentation. ++This is usually not a problem for the developer since he is, ++or at least should be, intimately familiar with the internal organization, ++data structures, and control flow of the program being debugged. ++It is a serious problem for maintenance programmers, who ++are unlikely to have such familiarity with the program being ++maintained, modified, or ported to another environment. ++It is also a problem, even for the developer, when the program is ++moved to an environment with a primitive or unfamiliar debugger, ++or even no debugger. ++ ++.P ++On the other hand, ++.I dbug ++is an example of an internal debugger. ++Because it requires internal instrumentation of a program, ++and its usage does not depend on any special capabilities of ++the execution environment, it is always available and will ++execute in any environment that the program itself will ++execute in. ++In addition, since it is a complete package with a specific ++user interface, all programs which use it will be provided ++with similar debugging capabilities. ++This is in sharp contrast to other forms of internal instrumentation ++where each developer has their own, usually less capable, form ++of internal debugger. ++In summary, ++because ++.I dbug ++is an internal debugger it provides consistency across operating ++environments, ++and because it is available to all developers it provides ++consistency across all programs in the same environment. ++ ++.P ++The ++.I dbug ++package imposes only a slight speed penalty on executing ++programs, typically much less than 10 percent, and a modest size ++penalty, typically 10 to 20 percent. ++By defining a specific C preprocessor symbol both of these ++can be reduced to zero with no changes required to the ++source code. ++ ++.P ++The following list is a quick summary of the capabilities ++of the ++.I dbug ++package. ++Each capability can be individually enabled or disabled ++at the time a program is invoked by specifying the appropriate ++command line arguments. ++.SP 1 ++.ML o 1i ++.LI ++Execution trace showing function level control flow in a ++semi-graphically manner using indentation to indicate nesting ++depth. ++.LI ++Output the values of all, or any subset of, key internal variables. ++.LI ++Limit actions to a specific set of named functions. ++.LI ++Limit function trace to a specified nesting depth. ++.LI ++Label each output line with source file name and line number. ++.LI ++Label each output line with name of current process. ++.LI ++Push or pop internal debugging state to allow execution with ++built in debugging defaults. ++.LI ++Redirect the debug output stream to standard output (stdout) ++or a named file. ++The default output stream is standard error (stderr). ++The redirection mechanism is completely independent of ++normal command line redirection to avoid output conflicts. ++.LE ++ ++.SK ++.B ++PRIMITIVE DEBUGGING TECHNIQUES ++.R ++ ++.P ++Internal instrumentation is already a familiar concept ++to most programmers, since it is usually the first debugging ++technique learned. ++Typically, "print\ statements" are inserted in the source ++code at interesting points, the code is recompiled and executed, ++and the resulting output is examined in an attempt to determine ++where the problem is. ++ ++The procedure is iterative, with each iteration yielding more ++and more output, and hopefully the source of the problem is ++discovered before the output becomes too large to deal with ++or previously inserted statements need to be removed. ++Figure 1 is an example of this type of primitive debugging ++technique. ++.DS I N ++.SP 2 ++\fC ++.so example1.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 1 ++.ce ++Primitive Debugging Technique ++.ll +5 ++.SP 2 ++.DE ++ ++.P ++Eventually, and usually after at least several iterations, the ++problem will be found and corrected. ++At this point, the newly inserted print statements must be ++dealt with. ++One obvious solution is to simply delete them all. ++Beginners usually do this a few times until they have to ++repeat the entire process every time a new bug pops up. ++The second most obvious solution is to somehow disable ++the output, either through the source code comment facility, ++creation of a debug variable to be switched on or off, or by using the ++C preprocessor. ++Figure 2 is an example of all three techniques. ++.DS I N ++.SP 2 ++\fC ++.so example2.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 2 ++.ce ++Debug Disable Techniques ++.ll +5 ++.SP 2 ++.DE ++ ++.P ++Each technique has its advantages and disadvantages with respect ++to dynamic vs static activation, source code overhead, recompilation ++requirements, ease of use, program readability, etc. ++Overuse of the preprocessor solution quickly leads to problems with ++source code readability and maintainability when multiple ++.B #ifdef ++symbols are to be defined or undefined based on specific types ++of debug desired. ++The source code can be made slightly more readable by suitable indentation ++of the ++.B #ifdef ++arguments to match the indentation of the code, but ++not all C preprocessors allow this. ++The only requirement for the standard ++.B UNIX ++C preprocessor is for the '#' character to appear ++in the first column, but even this seems ++like an arbitrary and unreasonable restriction. ++Figure 3 is an example of this usage. ++.DS I N ++.SP 2 ++\fC ++.so example3.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 3 ++.ce ++More Readable Preprocessor Usage ++.ll +5 ++.SP 2 ++.DE ++ ++.SK ++.B ++FUNCTION TRACE EXAMPLE ++.R ++ ++.P ++We will start off learning about the capabilities of the ++.I dbug ++package by using a simple minded program which computes the ++factorial of a number. ++In order to better demonstrate the function trace mechanism, this ++program is implemented recursively. ++Figure 4 is the main function for this factorial program. ++.DS I N ++.SP 2 ++\fC ++.so main.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 4 ++.ce ++Factorial Program Mainline ++.ll +5 ++.SP 2 ++.DE ++ ++.P ++The ++.B main ++function is responsible for processing any command line ++option arguments and then computing and printing the factorial of ++each non-option argument. ++.P ++First of all, notice that all of the debugger functions are implemented ++via preprocessor macros. ++This does not detract from the readability of the code and makes disabling ++all debug compilation trivial (a single preprocessor symbol, ++.B DBUG_OFF , ++forces the macro expansions to be null). ++.P ++Also notice the inclusion of the header file ++.B dbug.h ++from the local header file directory. ++(The version included here is the test version in the dbug source ++distribution directory). ++This file contains all the definitions for the debugger macros, which ++all have the form ++.B DBUG_XX...XX . ++ ++.P ++The ++.B DBUG_ENTER ++macro informs that debugger that we have entered the ++function named ++.B main . ++It must be the very first "executable" line in a function, after ++all declarations and before any other executable line. ++The ++.B DBUG_PROCESS ++macro is generally used only once per program to ++inform the debugger what name the program was invoked with. ++The ++.B DBUG_PUSH ++macro modifies the current debugger state by ++saving the previous state and setting a new state based on the ++control string passed as its argument. ++The ++.B DBUG_PRINT ++macro is used to print the values of each argument ++for which a factorial is to be computed. ++The ++.B DBUG_RETURN ++macro tells the debugger that the end of the current ++function has been reached and returns a value to the calling ++function. ++All of these macros will be fully explained in subsequent sections. ++.P ++To use the debugger, the factorial program is invoked with a command ++line of the form: ++.DS CB N ++\fCfactorial -#d:t 1 2 3 ++.DE ++The ++.B main ++function recognizes the "-#d:t" string as a debugger control ++string, and passes the debugger arguments ("d:t") to the ++.I dbug ++runtime support routines via the ++.B DBUG_PUSH ++macro. ++This particular string enables output from the ++.B DBUG_PRINT ++macro with the 'd' flag and enables function tracing with the 't' flag. ++The factorial function is then called three times, with the arguments ++"1", "2", and "3". ++Note that the DBUG_PRINT takes exactly ++.B two ++arguments, with the second argument (a format string and list ++of printable values) enclosed in parentheses. ++.P ++Debug control strings consist of a header, the "-#", followed ++by a colon separated list of debugger arguments. ++Each debugger argument is a single character flag followed ++by an optional comma separated list of arguments specific ++to the given flag. ++Some examples are: ++.DS CB N ++\fC ++-#d:t:o ++-#d,in,out:f,main:F:L ++.DE ++Note that previously enabled debugger actions can be disabled by the ++control string "-#". ++ ++.P ++The definition of the factorial function, symbolized as "N!", is ++given by: ++.DS CB N ++N! = N * N-1 * ... 2 * 1 ++.DE ++Figure 5 is the factorial function which implements this algorithm ++recursively. ++Note that this is not necessarily the best way to do factorials ++and error conditions are ignored completely. ++.DS I N ++.SP 2 ++\fC ++.so factorial.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 5 ++.ce ++Factorial Function ++.ll +5 ++.SP 2 ++.DE ++ ++.P ++One advantage (some may not consider it so) to using the ++.I dbug ++package is that it strongly encourages fully structured coding ++with only one entry and one exit point in each function. ++Multiple exit points, such as early returns to escape a loop, ++may be used, but each such point requires the use of an ++appropriate ++.B DBUG_RETURN ++or ++.B DBUG_VOID_RETURN ++macro. ++ ++.P ++To build the factorial program on a ++.B UNIX ++system, compile and ++link with the command: ++.DS CB N ++\fCcc -o factorial main.c factorial.c -ldbug ++.DE ++The "-ldbug" argument tells the loader to link in the ++runtime support modules for the ++.I dbug ++package. ++Executing the factorial program with a command of the form: ++.DS CB N ++\fCfactorial 1 2 3 4 5 ++.DE ++generates the output shown in figure 6. ++.DS I N ++.SP 2 ++\fC ++.so output1.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 6 ++.ce ++\fCfactorial 1 2 3 4 5 ++.ll +5 ++.SP 2 ++.DE ++ ++.P ++Function level tracing is enabled by passing the debugger ++the 't' flag in the debug control string. ++Figure 7 is the output resulting from the command ++"factorial\ -#t:o\ 2\ 3". ++.DS I N ++.SP 2 ++\fC ++.so output2.r ++\fR ++.SP 2 ++.ll -5 ++.ce ++Figure 7 ++.ce ++\fCfactorial -#t:o 2 3 ++.ll +5 ++.SP 2 ++.DE ++ ++.P ++Each entry to or return from a function is indicated by '>' for the ++entry point and '<' for the exit point, connected by ++vertical bars to allow matching points to be easily found ++when separated by large distances. ++ ++.P ++This trace output indicates that there was an initial call ++to factorial from main (to compute 2!), followed by ++a single recursive call to factorial to compute 1!. ++The main program then output the result for 2! and called the ++factorial function again with the second argument, 3. ++Factorial called itself recursively to compute 2! and 1!, then ++returned control to main, which output the value for 3! and exited. ++ ++.P ++Note that there is no matching entry point "main>" for the ++return point "\ %s", stp, stp\ ->\ name));\fR ++.SP 1 ++.LI DBUG_DUMP\ ++Used to dump a memory block in hex via the "fprintf" library function ++on the current debug stream, DBUG_FILE. The first argument is a debug ++keyword, the second is a pointer to a memory to dump, the third is a ++number of bytes to dump. ++.SP 1 ++EX: \fCDBUG_DBUG\ ("net",\ packet,\ len);\fR ++.SP 1 ++.LI DBUG_LOCK_FILE\ ++Used in multi-threaded environment to lock DBUG_FILE stream. ++It can be used, for example, in functions that need to write something to a ++debug stream more than in one fprintf() call and want to ensure that no other ++thread will write something in between. ++.SP 1 ++EX:\fC ++.br ++ DBUG_LOCK_FILE; ++.br ++ fprintf (DBUG_FILE, "a=["); ++.br ++ for (int i=0; i < a_length; i++) ++.br ++ fprintf (DBUG_FILE, "0x%03x ", a[i]); ++.br ++ fprintf (DBUG_FILE, "]"); ++.br ++ DBUG_UNLOCK_FILE;\fR ++.SP 1 ++.LI DBUG_UNLOCK_FILE\ ++Unlocks DBUG_FILE stream, that was locked with a DBUG_LOCK_FILE. ++.LI DBUG_ASSERT\ ++This macro just does a regular assert(). The difference is that it will be ++disabled by DBUG_OFF togeher with the ++.I dbug ++library. So there will be no need to disable asserts separately with NDEBUG. ++.SP 1 ++EX:\ \fCDBUG_ASSERT(\ a\ >\ 0\ );\fR ++.SP 1 ++.LI DBUG_ABORT\ ++This macro could be used instead of abort(). It flushes DBUG_FILE stream ++to ensure that no ++.I dbug ++output is lost and then calls abort(). ++.SP 1 ++.LI DBUG_EXPLAIN\ ++Generates control string corresponding to the current debug state. ++The macro takes two arguments - a buffer to store the result string ++into and its length. The macro (which could be used as a function) ++returns 1 if the control string didn't fit into the buffer and was ++truncated and 0 otherwise. ++.SP 1 ++EX:\fC ++.br ++ char buf[256]; ++.br ++ DBUG_EXPLAIN( buf, sizeof(buf) );\fR ++.SP 1 ++.LI DBUG_SET_INITIAL\ ++.LI DBUG_EXPLAIN_INITIAL\ ++.br ++These two macros are identical to DBUG_SET and DBUG_EXPLAIN, but they ++operate on the debug state that any new thread starts from. ++Modifying ++.I initial ++value does not affect threads that are already running. Obviously, ++these macros are only useful in the multi-threaded environment. ++.LE ++ ++.SK ++.B ++DEBUG CONTROL STRING ++.R ++ ++.P ++The debug control string is used to set the state of the debugger ++via the ++.B DBUG_PUSH ++or ++.B DBUG_SET ++macros. Control string consists of colon separated flags. Colons ++that are part of ':\\', ':/', or '::' are not considered flag ++separators. A flag may take an argument or a list of arguments. ++If a control string starts from a '+' sign it works ++.I incrementally, ++that is, it can modify existing state without overriding it. Every ++flag may be preceded by a '+' or '-' to enable or disable a ++corresponding option in the debugger state or to add or remove ++arguments to the list. This section summarizes the currently available ++debugger options and the flag characters which enable or disable them. ++Argument lists enclosed in '[' and ']' are optional. ++.SP 2 ++.BL 22 ++.LI a[,file] ++Redirect the debugger output stream and append it to the specified ++file. The default output stream is stderr. A null argument list ++causes output to be redirected to stdout. ++.SP 1 ++EX: \fCa,C:\\tmp\\log\fR ++.LI A[,file] ++Like 'a[,file]' but ensure that data are written after each write ++(this typically implies flush or close/reopen). It helps to get ++a complete log file in case of crashes. This mode is implicit in ++multi-threaded environment. ++.LI d[,keywords] ++Enable output from macros with specified keywords. ++Every keyword can be a ++.I glob(7) ++pattern. ++An empty list of keywords implies that all keywords are selected. ++.LI D[,time] ++Delay for specified time after each output line, to let output drain. ++Time is given in tenths of a second (value of 10 is one second). ++Default is zero. ++.LI f[,functions] ++Limit debugger actions to the specified list of functions. ++Every function can be a ++.I glob(7) ++pattern. ++An empty list of functions implies that all functions are selected. ++Every function in the list may optionally be followed by a '/' - ++this will implicitly select all the functions down the call stack. ++.SP 1 ++EX: \fCf,func1,func2/:-f,func3,func4/\fR ++.SP 1 ++This would enable debugger in functions 'func1()', 'func2()' and all ++functions called from it (directly or indirectly). But not in ++functions 'func3()' or 'func4()' and all functions called from ++it. ++.LI F ++Mark each debugger output line with the name of the source file ++containing the macro causing the output. ++.LI i ++Mark each debugger output line with the PID (or thread ID) of the ++current process. ++.LI L ++Mark each debugger output line with the source file line number of ++the macro causing the output. ++.LI n ++Mark each debugger output line with the current function nesting depth. ++.LI N ++Sequentially number each debugger output line starting at 1. ++This is useful for reference purposes when debugger output is ++interspersed with program output. ++.LI o[,file] ++Like 'a[,file]' but overwrite old file, do not append. ++.LI O[,file] ++Like 'A[,file]' but overwrite old file, do not append. ++.LI p[,processes] ++Limit debugger actions to the specified processes. ++Every name can be a ++.I glob(7) ++pattern. ++An empty list ++implies all processes. This is useful for processes which run child ++processes. Note that each debugger output line can be marked with the ++name of the current process via the 'P' flag. The process name must ++match the argument passed to the ++.B DBUG_PROCESS ++macro. ++.LI P ++Mark each debugger output line with the name of the current process. ++Most useful when used with a process which runs child processes that ++are also being debugged. Note that the parent process must arrange ++for the debugger control string to be passed to the child processes. ++.LI r ++Used in conjunction with the ++.B DBUG_PUSH ++macro to reset the current ++indentation level back to zero. ++Most useful with ++.B DBUG_PUSH ++macros used to temporarily alter the ++debugger state. ++.LI S ++When compiled with ++.I safemalloc ++this flag invokes "sanity" memory checks (for overwrites/underwrites) ++on each ++.B DBUG_ENTER ++and ++.B DBUG_RETURN. ++.LI t[,N] ++Enable function control flow tracing. ++The maximum nesting depth is specified by N, and defaults to ++200. ++.LI T ++Mark each debugger output line with the current timestamp. ++The value is printed with microsecond resolution, as returned by ++.I gettimeofday() ++system call. The actual resolution is OS- and hardware-dependent. ++.LE ++ ++.SK ++.B ++MULTI-THREADED DEBUGGING ++.R ++ ++.P ++When ++.I dbug ++is used in a multi-threaded environment there are few differences from a single-threaded ++case to keep in mind. This section tries to summarize them. ++.SP 2 ++.BL 5 ++.LI ++Every thread has its own stack of debugger states. ++.B DBUG_PUSH ++and ++.B DBUG_POP ++affect only the thread that executed them. ++.LI ++At the bottom of the stack for all threads there is the common ++.I initial ++state. Changes to this state (for example, with ++.B DBUG_SET_INITIAL ++macro) affect all new threads and all running threads that didn't ++.B DBUG_PUSH ++yet. ++.LI ++Every thread can have its own name, that can be set with ++.B DBUG_PROCESS ++macro. Thus, "-#p,name1,name2" can be used to limit the output to specific threads. ++.LI ++When printing directly to ++.B DBUG_FILE ++it may be necessary to prevent other threads from writing something between two parts ++of logically indivisible output. It is done with ++.B DBUG_LOCK_FILE ++and ++.B DBUG_UNLOCK_FILE ++macors. See the appropriate section for examples. ++.LI ++"-#o,file" and "-#O,file" are treated as "-#a,file" and "-#A,file" respectively. That is ++all writes to a file are always followed by a flush. ++.LI ++"-#i" prints not a PID but a thread id in the form of "T@nnn" ++.LE ++ ++.SK ++.B ++ ++HINTS AND MISCELLANEOUS ++.R ++ ++.P ++One of the most useful capabilities of the ++.I dbug ++package is to compare the executions of a given program in two ++different environments. ++This is typically done by executing the program in the environment ++where it behaves properly and saving the debugger output in a ++reference file. ++The program is then run with identical inputs in the environment where ++it misbehaves and the output is again captured in a reference file. ++The two reference files can then be differentially compared to ++determine exactly where execution of the two processes diverges. ++ ++.P ++A related usage is regression testing where the execution of a current ++version is compared against executions of previous versions. ++This is most useful when there are only minor changes. ++ ++.P ++It is not difficult to modify an existing compiler to implement ++some of the functionality of the ++.I dbug ++package automatically, without source code changes to the ++program being debugged. ++In fact, such changes were implemented in a version of the ++Portable C Compiler by the author in less than a day. ++However, it is strongly encouraged that all newly ++developed code continue to use the debugger macros ++for the portability reasons noted earlier. ++The modified compiler should be used only for testing existing ++programs. ++ ++.SK ++.B ++CAVEATS ++.R ++ ++.P ++The ++.I dbug ++package works best with programs which have "line\ oriented" ++output, such as text processors, general purpose utilities, etc. ++It can be interfaced with screen oriented programs such as ++visual editors by redefining the appropriate macros to call ++special functions for displaying the debugger results. ++Of course, this caveat is not applicable if the debugger output ++is simply dumped into a file for post-execution examination. ++ ++.P ++Programs which use memory allocation functions other than ++.B malloc ++will usually have problems using the standard ++.I dbug ++package. ++The most common problem is multiply allocated memory. ++.SP 2 ++.\" .DE nroff dident like this. davida 900108 ++.CS ++ ++.\" vim:filetype=nroff +diff --git a/sql/sql_yacc.cc b/sql/sql_yacc.cc +new file mode 100644 +index 0000000..9234796 +--- /dev/null ++++ b/sql/sql_yacc.cc +@@ -0,0 +1,37809 @@ ++/* A Bison parser, made by GNU Bison 3.0.2. */ ++ ++/* Bison implementation for Yacc-like parsers in C ++ ++ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. ++ ++ This program is free software: you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . */ ++ ++/* As a special exception, you may create a larger work that contains ++ part or all of the Bison parser skeleton and distribute that work ++ under terms of your choice, so long as that work isn't itself a ++ parser generator using the skeleton or a modified version thereof ++ as a parser skeleton. Alternatively, if you modify or redistribute ++ the parser skeleton itself, you may (at your option) remove this ++ special exception, which will cause the skeleton and the resulting ++ Bison output files to be licensed under the GNU General Public ++ License without this special exception. ++ ++ This special exception was added by the Free Software Foundation in ++ version 2.2 of Bison. */ ++ ++/* C LALR(1) parser skeleton written by Richard Stallman, by ++ simplifying the original so-called "semantic" parser. */ ++ ++/* All symbols defined below should begin with yy or YY, to avoid ++ infringing on user name space. This should be done even for local ++ variables, as they might otherwise be expanded by user macros. ++ There are some unavoidable exceptions within include files to ++ define necessary library symbols; they are noted "INFRINGES ON ++ USER NAME SPACE" below. */ ++ ++/* Identify Bison output. */ ++#define YYBISON 1 ++ ++/* Bison version. */ ++#define YYBISON_VERSION "3.0.2" ++ ++/* Skeleton name. */ ++#define YYSKELETON_NAME "yacc.c" ++ ++/* Pure parsers. */ ++#define YYPURE 1 ++ ++/* Push parsers. */ ++#define YYPUSH 0 ++ ++/* Pull parsers. */ ++#define YYPULL 1 ++ ++ ++/* Substitute the variable and function names. */ ++#define yyparse MYSQLparse ++#define yylex MYSQLlex ++#define yyerror MYSQLerror ++#define yydebug MYSQLdebug ++#define yynerrs MYSQLnerrs ++ ++ ++/* Copy the first part of user declarations. */ ++#line 25 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:339 */ ++ ++#define YYLIP (& thd->m_parser_state->m_lip) ++#define YYPS (& thd->m_parser_state->m_yacc) ++ ++#define MYSQL_YACC ++#define YYINITDEPTH 100 ++#define YYMAXDEPTH 3200 /* Because of 64K stack */ ++#define Lex (thd->lex) ++ ++#define Select Lex->current_select ++#include "sql_priv.h" ++#include "unireg.h" // REQUIRED: for other includes ++#include "sql_parse.h" /* comp_*_creator */ ++#include "sql_table.h" /* primary_key_name */ ++#include "sql_partition.h" /* mem_alloc_error, partition_info, HASH_PARTITION */ ++#include "sql_acl.h" /* *_ACL */ ++#include "password.h" /* my_make_scrambled_password_323, my_make_scrambled_password */ ++#include "sql_class.h" /* Key_part_spec, enum_filetype, Diag_condition_item_name */ ++#include "slave.h" ++#include "lex_symbol.h" ++#include "item_create.h" ++#include "sp_head.h" ++#include "sp_pcontext.h" ++#include "sp_rcontext.h" ++#include "sp.h" ++#include "sql_alter.h" // Alter_table*_statement ++#include "sql_truncate.h" // Truncate_statement ++#include "sql_admin.h" // Analyze/Check..._table_stmt ++#include "sql_partition_admin.h" // Alter_table_*_partition_stmt ++#include "sql_signal.h" ++#include "event_parse_data.h" ++#include "create_options.h" ++#include ++#include ++#include "keycaches.h" ++#include "set_var.h" ++ ++/* this is to get the bison compilation windows warnings out */ ++#ifdef _MSC_VER ++/* warning C4065: switch statement contains 'default' but no 'case' labels */ ++#pragma warning (disable : 4065) ++#endif ++ ++int yylex(void *yylval, void *yythd); ++ ++#define yyoverflow(A,B,C,D,E,F) \ ++ { \ ++ ulong val= *(F); \ ++ if (my_yyoverflow((B), (D), &val)) \ ++ { \ ++ yyerror(thd, (char*) (A)); \ ++ return 2; \ ++ } \ ++ else \ ++ { \ ++ *(F)= (YYSIZE_T)val; \ ++ } \ ++ } ++ ++#define MYSQL_YYABORT \ ++ do \ ++ { \ ++ LEX::cleanup_lex_after_parse_error(thd); \ ++ YYABORT; \ ++ } while (0) ++ ++#define MYSQL_YYABORT_UNLESS(A) \ ++ if (!(A)) \ ++ { \ ++ my_parse_error(ER(ER_SYNTAX_ERROR));\ ++ MYSQL_YYABORT; \ ++ } ++ ++/* ++ Work around for broken code generated by bison 1.875. ++ ++ The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok. ++ With bison 1.875 however, the generated code contains: ++
++  yyerrlab1:
++  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
++    __attribute__ ((__unused__))
++  #endif
++
++ This usage of __attribute__ is illegal, so we remove it. ++ See the following references for details: ++ http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html ++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273 ++*/ ++ ++#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) ++#undef __attribute__ ++#define __attribute__(X) ++#endif ++ ++ ++#ifndef DBUG_OFF ++#define YYDEBUG 1 ++#else ++#define YYDEBUG 0 ++#endif ++ ++/** ++ @brief Push an error message into MySQL error stack with line ++ and position information. ++ ++ This function provides semantic action implementers with a way ++ to push the famous "You have a syntax error near..." error ++ message into the error stack, which is normally produced only if ++ a parse error is discovered internally by the Bison generated ++ parser. ++*/ ++ ++void my_parse_error(const char *s) ++{ ++ THD *thd= current_thd; ++ Lex_input_stream *lip= & thd->m_parser_state->m_lip; ++ ++ const char *yytext= lip->get_tok_start(); ++ if (!yytext) ++ yytext= ""; ++ ++ /* Push an error into the error stack */ ++ ErrConvString err(yytext, strlen(yytext), thd->variables.character_set_client); ++ my_printf_error(ER_PARSE_ERROR, ER(ER_PARSE_ERROR), MYF(0), s, ++ err.ptr(), lip->yylineno); ++} ++ ++/** ++ @brief Bison callback to report a syntax/OOM error ++ ++ This function is invoked by the bison-generated parser ++ when a syntax error, a parse error or an out-of-memory ++ condition occurs. This function is not invoked when the ++ parser is requested to abort by semantic action code ++ by means of YYABORT or YYACCEPT macros. This is why these ++ macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT ++ instead). ++ ++ The parser will abort immediately after invoking this callback. ++ ++ This function is not for use in semantic actions and is internal to ++ the parser, as it performs some pre-return cleanup. ++ In semantic actions, please use my_parse_error or my_error to ++ push an error into the error stack and MYSQL_YYABORT ++ to abort from the parser. ++*/ ++ ++void MYSQLerror(THD *thd, const char *s) ++{ ++ /* ++ Restore the original LEX if it was replaced when parsing ++ a stored procedure. We must ensure that a parsing error ++ does not leave any side effects in the THD. ++ */ ++ LEX::cleanup_lex_after_parse_error(thd); ++ ++ /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */ ++ if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0) ++ s= ER(ER_SYNTAX_ERROR); ++ my_parse_error(s); ++} ++ ++ ++#ifndef DBUG_OFF ++void turn_parser_debug_on() ++{ ++ /* ++ MYSQLdebug is in sql/sql_yacc.cc, in bison generated code. ++ Turning this option on is **VERY** verbose, and should be ++ used when investigating a syntax error problem only. ++ ++ The syntax to run with bison traces is as follows : ++ - Starting a server manually : ++ mysqld --debug-dbug="d,parser_debug" ... ++ - Running a test : ++ mysql-test-run.pl --mysqld="--debug-dbug=d,parser_debug" ... ++ ++ The result will be in the process stderr (var/log/master.err) ++ */ ++ ++ extern int yydebug; ++ yydebug= 1; ++} ++#endif ++ ++static bool is_native_function(THD *thd, const LEX_STRING *name) ++{ ++ if (find_native_function_builder(thd, *name)) ++ return true; ++ ++ if (is_lex_native_function(name)) ++ return true; ++ ++ return false; ++} ++ ++ ++/** ++ Helper action for a case statement (entering the CASE). ++ This helper is used for both 'simple' and 'searched' cases. ++ This helper, with the other case_stmt_action_..., is executed when ++ the following SQL code is parsed: ++
++CREATE PROCEDURE proc_19194_simple(i int)
++BEGIN
++  DECLARE str CHAR(10);
++
++  CASE i
++    WHEN 1 THEN SET str="1";
++    WHEN 2 THEN SET str="2";
++    WHEN 3 THEN SET str="3";
++    ELSE SET str="unknown";
++  END CASE;
++
++  SELECT str;
++END
++
++ The actions are used to generate the following code: ++
++SHOW PROCEDURE CODE proc_19194_simple;
++Pos     Instruction
++0       set str@1 NULL
++1       set_case_expr (12) 0 i@0
++2       jump_if_not 5(12) (case_expr@0 = 1)
++3       set str@1 _latin1'1'
++4       jump 12
++5       jump_if_not 8(12) (case_expr@0 = 2)
++6       set str@1 _latin1'2'
++7       jump 12
++8       jump_if_not 11(12) (case_expr@0 = 3)
++9       set str@1 _latin1'3'
++10      jump 12
++11      set str@1 _latin1'unknown'
++12      stmt 0 "SELECT str"
++
++ ++ @param lex the parser lex context ++*/ ++ ++void case_stmt_action_case(LEX *lex) ++{ ++ lex->sphead->new_cont_backpatch(NULL); ++ ++ /* ++ BACKPATCH: Creating target label for the jump to ++ "case_stmt_action_end_case" ++ (Instruction 12 in the example) ++ */ ++ ++ lex->spcont->push_label((char *)"", lex->sphead->instructions()); ++} ++ ++/** ++ Helper action for a case expression statement (the expr in 'CASE expr'). ++ This helper is used for 'searched' cases only. ++ @param lex the parser lex context ++ @param expr the parsed expression ++ @return 0 on success ++*/ ++ ++int case_stmt_action_expr(LEX *lex, Item* expr) ++{ ++ sp_head *sp= lex->sphead; ++ sp_pcontext *parsing_ctx= lex->spcont; ++ int case_expr_id= parsing_ctx->register_case_expr(); ++ sp_instr_set_case_expr *i; ++ ++ if (parsing_ctx->push_case_expr_id(case_expr_id)) ++ return 1; ++ ++ i= new sp_instr_set_case_expr(sp->instructions(), ++ parsing_ctx, case_expr_id, expr, lex); ++ ++ sp->add_cont_backpatch(i); ++ return sp->add_instr(i); ++} ++ ++/** ++ Helper action for a case when condition. ++ This helper is used for both 'simple' and 'searched' cases. ++ @param lex the parser lex context ++ @param when the parsed expression for the WHEN clause ++ @param simple true for simple cases, false for searched cases ++*/ ++ ++int case_stmt_action_when(LEX *lex, Item *when, bool simple) ++{ ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ uint ip= sp->instructions(); ++ sp_instr_jump_if_not *i; ++ Item_case_expr *var; ++ Item *expr; ++ ++ if (simple) ++ { ++ var= new Item_case_expr(ctx->get_current_case_expr_id()); ++ ++#ifndef DBUG_OFF ++ if (var) ++ { ++ var->m_sp= sp; ++ } ++#endif ++ ++ expr= new Item_func_eq(var, when); ++ i= new sp_instr_jump_if_not(ip, ctx, expr, lex); ++ } ++ else ++ i= new sp_instr_jump_if_not(ip, ctx, when, lex); ++ ++ /* ++ BACKPATCH: Registering forward jump from ++ "case_stmt_action_when" to "case_stmt_action_then" ++ (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example) ++ */ ++ ++ return !test(i) || ++ sp->push_backpatch(i, ctx->push_label((char *)"", 0)) || ++ sp->add_cont_backpatch(i) || ++ sp->add_instr(i); ++} ++ ++/** ++ Helper action for a case then statements. ++ This helper is used for both 'simple' and 'searched' cases. ++ @param lex the parser lex context ++*/ ++ ++int case_stmt_action_then(LEX *lex) ++{ ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ uint ip= sp->instructions(); ++ sp_instr_jump *i = new sp_instr_jump(ip, ctx); ++ if (!test(i) || sp->add_instr(i)) ++ return 1; ++ ++ /* ++ BACKPATCH: Resolving forward jump from ++ "case_stmt_action_when" to "case_stmt_action_then" ++ (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example) ++ */ ++ ++ sp->backpatch(ctx->pop_label()); ++ ++ /* ++ BACKPATCH: Registering forward jump from ++ "case_stmt_action_then" to "case_stmt_action_end_case" ++ (jump from instruction 4 to 12, 7 to 12 ... in the example) ++ */ ++ ++ return sp->push_backpatch(i, ctx->last_label()); ++} ++ ++/** ++ Helper action for an end case. ++ This helper is used for both 'simple' and 'searched' cases. ++ @param lex the parser lex context ++ @param simple true for simple cases, false for searched cases ++*/ ++ ++void case_stmt_action_end_case(LEX *lex, bool simple) ++{ ++ /* ++ BACKPATCH: Resolving forward jump from ++ "case_stmt_action_then" to "case_stmt_action_end_case" ++ (jump from instruction 4 to 12, 7 to 12 ... in the example) ++ */ ++ lex->sphead->backpatch(lex->spcont->pop_label()); ++ ++ if (simple) ++ lex->spcont->pop_case_expr_id(); ++ ++ lex->sphead->do_cont_backpatch(); ++} ++ ++ ++static bool ++find_sys_var_null_base(THD *thd, struct sys_var_with_base *tmp) ++{ ++ tmp->var= find_sys_var(thd, tmp->base_name.str, tmp->base_name.length); ++ ++ if (tmp->var == NULL) ++ my_error(ER_UNKNOWN_SYSTEM_VARIABLE, MYF(0), tmp->base_name.str); ++ else ++ tmp->base_name= null_lex_str; ++ ++ return thd->is_error(); ++} ++ ++ ++/** ++ Helper action for a SET statement. ++ Used to push a system variable into the assignment list. ++ ++ @param thd the current thread ++ @param tmp the system variable with base name ++ @param var_type the scope of the variable ++ @param val the value being assigned to the variable ++ ++ @return TRUE if error, FALSE otherwise. ++*/ ++ ++static bool ++set_system_variable(THD *thd, struct sys_var_with_base *tmp, ++ enum enum_var_type var_type, Item *val) ++{ ++ set_var *var; ++ LEX *lex= thd->lex; ++ ++ /* No AUTOCOMMIT from a stored function or trigger. */ ++ if (lex->spcont && tmp->var == Sys_autocommit_ptr) ++ lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; ++ ++ if (val && val->type() == Item::FIELD_ITEM && ++ ((Item_field*)val)->table_name) ++ { ++ my_error(ER_WRONG_TYPE_FOR_VAR, MYF(0), tmp->var->name.str); ++ return TRUE; ++ } ++ ++ if (! (var= new set_var(var_type, tmp->var, &tmp->base_name, val))) ++ return TRUE; ++ ++ return lex->var_list.push_back(var); ++} ++ ++ ++/** ++ Helper action for a SET statement. ++ Used to push a SP local variable into the assignment list. ++ ++ @param thd the current thread ++ @param var_type the SP local variable ++ @param val the value being assigned to the variable ++ ++ @return TRUE if error, FALSE otherwise. ++*/ ++ ++static bool ++set_local_variable(THD *thd, sp_variable_t *spv, Item *val) ++{ ++ Item *it; ++ LEX *lex= thd->lex; ++ sp_instr_set *sp_set; ++ ++ if (val) ++ it= val; ++ else if (spv->dflt) ++ it= spv->dflt; ++ else ++ { ++ it= new (thd->mem_root) Item_null(); ++ if (it == NULL) ++ return TRUE; ++ } ++ ++ sp_set= new sp_instr_set(lex->sphead->instructions(), lex->spcont, ++ spv->offset, it, spv->type, lex, TRUE); ++ ++ return (sp_set == NULL || lex->sphead->add_instr(sp_set)); ++} ++ ++ ++/** ++ Helper action for a SET statement. ++ Used to SET a field of NEW row. ++ ++ @param thd the current thread ++ @param name the field name ++ @param val the value being assigned to the row ++ ++ @return TRUE if error, FALSE otherwise. ++*/ ++ ++static bool ++set_trigger_new_row(THD *thd, LEX_STRING *name, Item *val) ++{ ++ LEX *lex= thd->lex; ++ Item_trigger_field *trg_fld; ++ sp_instr_set_trigger_field *sp_fld; ++ ++ /* QQ: Shouldn't this be field's default value ? */ ++ if (! val) ++ val= new Item_null(); ++ ++ DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE && ++ (lex->trg_chistics.event == TRG_EVENT_INSERT || ++ lex->trg_chistics.event == TRG_EVENT_UPDATE)); ++ ++ trg_fld= new (thd->mem_root) ++ Item_trigger_field(lex->current_context(), ++ Item_trigger_field::NEW_ROW, ++ name->str, UPDATE_ACL, FALSE); ++ ++ if (trg_fld == NULL) ++ return TRUE; ++ ++ sp_fld= new sp_instr_set_trigger_field(lex->sphead->instructions(), ++ lex->spcont, trg_fld, val, lex); ++ ++ if (sp_fld == NULL) ++ return TRUE; ++ ++ /* ++ Let us add this item to list of all Item_trigger_field ++ objects in trigger. ++ */ ++ lex->trg_table_fields.link_in_list(trg_fld, &trg_fld->next_trg_field); ++ ++ return lex->sphead->add_instr(sp_fld); ++} ++ ++ ++/** ++ Helper to resolve the SQL:2003 Syntax exception 1) in . ++ See SQL:2003, Part 2, section 8.4 , Note 184, page 383. ++ This function returns the proper item for the SQL expression ++ left [NOT] IN ( expr ) ++ @param thd the current thread ++ @param left the in predicand ++ @param equal true for IN predicates, false for NOT IN predicates ++ @param expr first and only expression of the in value list ++ @return an expression representing the IN predicate. ++*/ ++Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal, ++ Item *expr) ++{ ++ /* ++ Relevant references for this issue: ++ - SQL:2003, Part 2, section 8.4 , page 383, ++ - SQL:2003, Part 2, section 7.2 , page 296, ++ - SQL:2003, Part 2, section 6.3 , page 174, ++ - SQL:2003, Part 2, section 7.15 , page 370, ++ - SQL:2003 Feature F561, "Full value expressions". ++ ++ The exception in SQL:2003 Note 184 means: ++ Item_singlerow_subselect, which corresponds to a , ++ should be re-interpreted as an Item_in_subselect, which corresponds ++ to a when used inside an . ++ ++ Our reading of Note 184 is reccursive, so that all: ++ - IN (( )) ++ - IN ((( ))) ++ - IN '('^N ')'^N ++ - etc ++ should be interpreted as a
, no matter how deep in the ++ expression the is. ++ */ ++ ++ Item *result; ++ ++ DBUG_ENTER("handle_sql2003_note184_exception"); ++ ++ if (expr->type() == Item::SUBSELECT_ITEM) ++ { ++ Item_subselect *expr2 = (Item_subselect*) expr; ++ ++ if (expr2->substype() == Item_subselect::SINGLEROW_SUBS) ++ { ++ Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2; ++ st_select_lex *subselect; ++ ++ /* ++ Implement the mandated change, by altering the semantic tree: ++ left IN Item_singlerow_subselect(subselect) ++ is modified to ++ left IN (subselect) ++ which is represented as ++ Item_in_subselect(left, subselect) ++ */ ++ subselect= expr3->invalidate_and_restore_select_lex(); ++ result= new (thd->mem_root) Item_in_subselect(left, subselect); ++ ++ if (! equal) ++ result = negate_expression(thd, result); ++ ++ DBUG_RETURN(result); ++ } ++ } ++ ++ if (equal) ++ result= new (thd->mem_root) Item_func_eq(left, expr); ++ else ++ result= new (thd->mem_root) Item_func_ne(left, expr); ++ ++ DBUG_RETURN(result); ++} ++ ++/** ++ @brief Creates a new SELECT_LEX for a UNION branch. ++ ++ Sets up and initializes a SELECT_LEX structure for a query once the parser ++ discovers a UNION token. The current SELECT_LEX is pushed on the stack and ++ the new SELECT_LEX becomes the current one. ++ ++ @param lex The parser state. ++ ++ @param is_union_distinct True if the union preceding the new select statement ++ uses UNION DISTINCT. ++ ++ @param is_top_level This should be @c TRUE if the newly created SELECT_LEX ++ is a non-nested statement. ++ ++ @return false if successful, true if an error was ++ reported. In the latter case parsing should stop. ++ */ ++bool add_select_to_union_list(LEX *lex, bool is_union_distinct, ++ bool is_top_level) ++{ ++ /* ++ Only the last SELECT can have INTO. Since the grammar won't allow INTO in ++ a nested SELECT, we make this check only when creating a top-level SELECT. ++ */ ++ if (is_top_level && lex->result) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO"); ++ return TRUE; ++ } ++ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ return TRUE; ++ } ++ /* This counter shouldn't be incremented for UNION parts */ ++ lex->nest_level--; ++ if (mysql_new_select(lex, 0)) ++ return TRUE; ++ mysql_init_select(lex); ++ lex->current_select->linkage=UNION_TYPE; ++ if (is_union_distinct) /* UNION DISTINCT - remember position */ ++ lex->current_select->master_unit()->union_distinct= ++ lex->current_select; ++ return FALSE; ++} ++ ++/** ++ @brief Initializes a SELECT_LEX for a query within parentheses (aka ++ braces). ++ ++ @return false if successful, true if an error was reported. In the latter ++ case parsing should stop. ++ */ ++bool setup_select_in_parentheses(LEX *lex) ++{ ++ SELECT_LEX * sel= lex->current_select; ++ if (sel->set_braces(1)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ return TRUE; ++ } ++ if (sel->linkage == UNION_TYPE && ++ !sel->master_unit()->first_select()->braces && ++ sel->master_unit()->first_select()->linkage == ++ UNION_TYPE) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ return TRUE; ++ } ++ if (sel->linkage == UNION_TYPE && ++ sel->olap != UNSPECIFIED_OLAP_TYPE && ++ sel->master_unit()->fake_select_lex) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "CUBE/ROLLUP", "ORDER BY"); ++ return TRUE; ++ } ++ /* select in braces, can't contain global parameters */ ++ if (sel->master_unit()->fake_select_lex) ++ sel->master_unit()->global_parameters= ++ sel->master_unit()->fake_select_lex; ++ return FALSE; ++} ++ ++static bool add_create_index_prepare (LEX *lex, Table_ident *table) ++{ ++ lex->sql_command= SQLCOM_CREATE_INDEX; ++ if (!lex->current_select->add_table_to_list(lex->thd, table, NULL, ++ TL_OPTION_UPDATING, ++ TL_READ_NO_INSERT, ++ MDL_SHARED_NO_WRITE)) ++ return TRUE; ++ lex->alter_info.reset(); ++ lex->alter_info.flags= ALTER_ADD_INDEX; ++ lex->col_list.empty(); ++ lex->change= NullS; ++ lex->option_list= NULL; ++ return FALSE; ++} ++ ++static bool add_create_index (LEX *lex, Key::Keytype type, ++ const LEX_STRING &name, ++ KEY_CREATE_INFO *info= NULL, bool generated= 0) ++{ ++ Key *key; ++ key= new Key(type, name, info ? info : &lex->key_create_info, generated, ++ lex->col_list, lex->option_list); ++ if (key == NULL) ++ return TRUE; ++ ++ lex->alter_info.key_list.push_back(key); ++ lex->col_list.empty(); ++ return FALSE; ++} ++ ++ ++#line 780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:339 */ ++ ++# ifndef YY_NULLPTR ++# if defined __cplusplus && 201103L <= __cplusplus ++# define YY_NULLPTR nullptr ++# else ++# define YY_NULLPTR 0 ++# endif ++# endif ++ ++/* Enabling verbose error messages. */ ++#ifdef YYERROR_VERBOSE ++# undef YYERROR_VERBOSE ++# define YYERROR_VERBOSE 1 ++#else ++# define YYERROR_VERBOSE 0 ++#endif ++ ++/* In a future release of Bison, this section will be replaced ++ by #include "sql_yacc.h". */ ++#ifndef YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED ++# define YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED ++/* Debug traces. */ ++#ifndef YYDEBUG ++# define YYDEBUG 0 ++#endif ++#if YYDEBUG ++extern int MYSQLdebug; ++#endif ++ ++/* Token type. */ ++#ifndef YYTOKENTYPE ++# define YYTOKENTYPE ++ enum yytokentype ++ { ++ ABORT_SYM = 258, ++ ACCESSIBLE_SYM = 259, ++ ACTION = 260, ++ ADD = 261, ++ ADDDATE_SYM = 262, ++ AFTER_SYM = 263, ++ AGAINST = 264, ++ AGGREGATE_SYM = 265, ++ ALGORITHM_SYM = 266, ++ ALL = 267, ++ ALTER = 268, ++ ALWAYS_SYM = 269, ++ ANALYZE_SYM = 270, ++ AND_AND_SYM = 271, ++ AND_SYM = 272, ++ ANY_SYM = 273, ++ AS = 274, ++ ASC = 275, ++ ASCII_SYM = 276, ++ ASENSITIVE_SYM = 277, ++ AT_SYM = 278, ++ AUTHORS_SYM = 279, ++ AUTOEXTEND_SIZE_SYM = 280, ++ AUTO_INC = 281, ++ AVG_ROW_LENGTH = 282, ++ AVG_SYM = 283, ++ BACKUP_SYM = 284, ++ BEFORE_SYM = 285, ++ BEGIN_SYM = 286, ++ BETWEEN_SYM = 287, ++ BIGINT = 288, ++ BINARY = 289, ++ BINLOG_SYM = 290, ++ BIN_NUM = 291, ++ BIT_AND = 292, ++ BIT_OR = 293, ++ BIT_SYM = 294, ++ BIT_XOR = 295, ++ BLOB_SYM = 296, ++ BLOCK_SYM = 297, ++ BOOLEAN_SYM = 298, ++ BOOL_SYM = 299, ++ BOTH = 300, ++ BTREE_SYM = 301, ++ BY = 302, ++ BYTE_SYM = 303, ++ CACHE_SYM = 304, ++ CALL_SYM = 305, ++ CASCADE = 306, ++ CASCADED = 307, ++ CASE_SYM = 308, ++ CAST_SYM = 309, ++ CATALOG_NAME_SYM = 310, ++ CHAIN_SYM = 311, ++ CHANGE = 312, ++ CHANGED = 313, ++ CHARSET = 314, ++ CHAR_SYM = 315, ++ CHECKPOINT_SYM = 316, ++ CHECKSUM_SYM = 317, ++ CHECK_SYM = 318, ++ CIPHER_SYM = 319, ++ CLASS_ORIGIN_SYM = 320, ++ CLIENT_SYM = 321, ++ CLIENT_STATS_SYM = 322, ++ CLOSE_SYM = 323, ++ COALESCE = 324, ++ CODE_SYM = 325, ++ COLLATE_SYM = 326, ++ COLLATION_SYM = 327, ++ COLUMNS = 328, ++ COLUMN_ADD_SYM = 329, ++ COLUMN_CREATE_SYM = 330, ++ COLUMN_DELETE_SYM = 331, ++ COLUMN_EXISTS_SYM = 332, ++ COLUMN_GET_SYM = 333, ++ COLUMN_LIST_SYM = 334, ++ COLUMN_SYM = 335, ++ COLUMN_NAME_SYM = 336, ++ COMMENT_SYM = 337, ++ COMMITTED_SYM = 338, ++ COMMIT_SYM = 339, ++ COMPACT_SYM = 340, ++ COMPLETION_SYM = 341, ++ COMPRESSED_SYM = 342, ++ CONCURRENT = 343, ++ CONDITION_SYM = 344, ++ CONNECTION_SYM = 345, ++ CONSISTENT_SYM = 346, ++ CONSTRAINT = 347, ++ CONSTRAINT_CATALOG_SYM = 348, ++ CONSTRAINT_NAME_SYM = 349, ++ CONSTRAINT_SCHEMA_SYM = 350, ++ CONTAINS_SYM = 351, ++ CONTEXT_SYM = 352, ++ CONTINUE_SYM = 353, ++ CONTRIBUTORS_SYM = 354, ++ CONVERT_SYM = 355, ++ COUNT_SYM = 356, ++ CPU_SYM = 357, ++ CREATE = 358, ++ CROSS = 359, ++ CUBE_SYM = 360, ++ CURDATE = 361, ++ CURRENT_USER = 362, ++ CURSOR_SYM = 363, ++ CURSOR_NAME_SYM = 364, ++ CURTIME = 365, ++ DATABASE = 366, ++ DATABASES = 367, ++ DATAFILE_SYM = 368, ++ DATA_SYM = 369, ++ DATETIME = 370, ++ DATE_ADD_INTERVAL = 371, ++ DATE_SUB_INTERVAL = 372, ++ DATE_SYM = 373, ++ DAY_HOUR_SYM = 374, ++ DAY_MICROSECOND_SYM = 375, ++ DAY_MINUTE_SYM = 376, ++ DAY_SECOND_SYM = 377, ++ DAY_SYM = 378, ++ DEALLOCATE_SYM = 379, ++ DECIMAL_NUM = 380, ++ DECIMAL_SYM = 381, ++ DECLARE_SYM = 382, ++ DEFAULT = 383, ++ DEFINER_SYM = 384, ++ DELAYED_SYM = 385, ++ DELAY_KEY_WRITE_SYM = 386, ++ DELETE_SYM = 387, ++ DESC = 388, ++ DESCRIBE = 389, ++ DES_KEY_FILE = 390, ++ DETERMINISTIC_SYM = 391, ++ DIRECTORY_SYM = 392, ++ DISABLE_SYM = 393, ++ DISCARD = 394, ++ DISK_SYM = 395, ++ DISTINCT = 396, ++ DIV_SYM = 397, ++ DOUBLE_SYM = 398, ++ DO_SYM = 399, ++ DROP = 400, ++ DUAL_SYM = 401, ++ DUMPFILE = 402, ++ DUPLICATE_SYM = 403, ++ DYNAMIC_SYM = 404, ++ EACH_SYM = 405, ++ ELSE = 406, ++ ELSEIF_SYM = 407, ++ ENABLE_SYM = 408, ++ ENCLOSED = 409, ++ END = 410, ++ ENDS_SYM = 411, ++ END_OF_INPUT = 412, ++ ENGINES_SYM = 413, ++ ENGINE_SYM = 414, ++ ENUM = 415, ++ EQUAL_SYM = 416, ++ ERROR_SYM = 417, ++ ERRORS = 418, ++ ESCAPED = 419, ++ ESCAPE_SYM = 420, ++ EVENTS_SYM = 421, ++ EVENT_SYM = 422, ++ EVERY_SYM = 423, ++ EXAMINED_SYM = 424, ++ EXECUTE_SYM = 425, ++ EXISTS = 426, ++ EXIT_SYM = 427, ++ EXPANSION_SYM = 428, ++ EXTENDED_SYM = 429, ++ EXTENT_SIZE_SYM = 430, ++ EXTRACT_SYM = 431, ++ FALSE_SYM = 432, ++ FAST_SYM = 433, ++ FAULTS_SYM = 434, ++ FETCH_SYM = 435, ++ FILE_SYM = 436, ++ FIRST_SYM = 437, ++ FIXED_SYM = 438, ++ FLOAT_NUM = 439, ++ FLOAT_SYM = 440, ++ FLUSH_SYM = 441, ++ FORCE_SYM = 442, ++ FOREIGN = 443, ++ FOR_SYM = 444, ++ FOUND_SYM = 445, ++ FROM = 446, ++ FULL = 447, ++ FULLTEXT_SYM = 448, ++ FUNCTION_SYM = 449, ++ GE = 450, ++ GENERAL = 451, ++ GENERATED_SYM = 452, ++ GEOMETRYCOLLECTION = 453, ++ GEOMETRY_SYM = 454, ++ GET_FORMAT = 455, ++ GLOBAL_SYM = 456, ++ GRANT = 457, ++ GRANTS = 458, ++ GROUP_SYM = 459, ++ GROUP_CONCAT_SYM = 460, ++ HANDLER_SYM = 461, ++ HARD_SYM = 462, ++ HASH_SYM = 463, ++ HAVING = 464, ++ HELP_SYM = 465, ++ HEX_NUM = 466, ++ HEX_STRING = 467, ++ HIGH_PRIORITY = 468, ++ HOST_SYM = 469, ++ HOSTS_SYM = 470, ++ HOUR_MICROSECOND_SYM = 471, ++ HOUR_MINUTE_SYM = 472, ++ HOUR_SECOND_SYM = 473, ++ HOUR_SYM = 474, ++ IDENT = 475, ++ IDENTIFIED_SYM = 476, ++ IDENT_QUOTED = 477, ++ IF = 478, ++ IGNORE_SYM = 479, ++ IGNORE_SERVER_IDS_SYM = 480, ++ IMPORT = 481, ++ INDEXES = 482, ++ INDEX_SYM = 483, ++ INDEX_STATS_SYM = 484, ++ INFILE = 485, ++ INITIAL_SIZE_SYM = 486, ++ INNER_SYM = 487, ++ INOUT_SYM = 488, ++ INSENSITIVE_SYM = 489, ++ INSERT = 490, ++ INSERT_METHOD = 491, ++ INSTALL_SYM = 492, ++ INTERVAL_SYM = 493, ++ INTO = 494, ++ INT_SYM = 495, ++ INVOKER_SYM = 496, ++ IN_SYM = 497, ++ IO_SYM = 498, ++ IPC_SYM = 499, ++ IS = 500, ++ ISOLATION = 501, ++ ISSUER_SYM = 502, ++ ITERATE_SYM = 503, ++ JOIN_SYM = 504, ++ KEYS = 505, ++ KEY_BLOCK_SIZE = 506, ++ KEY_SYM = 507, ++ KILL_SYM = 508, ++ LANGUAGE_SYM = 509, ++ LAST_SYM = 510, ++ LAST_VALUE = 511, ++ LE = 512, ++ LEADING = 513, ++ LEAVES = 514, ++ LEAVE_SYM = 515, ++ LEFT = 516, ++ LESS_SYM = 517, ++ LEVEL_SYM = 518, ++ LEX_HOSTNAME = 519, ++ LIKE = 520, ++ LIMIT = 521, ++ LINEAR_SYM = 522, ++ LINES = 523, ++ LINESTRING = 524, ++ LIST_SYM = 525, ++ LOAD = 526, ++ LOCAL_SYM = 527, ++ LOCATOR_SYM = 528, ++ LOCKS_SYM = 529, ++ LOCK_SYM = 530, ++ LOGFILE_SYM = 531, ++ LOGS_SYM = 532, ++ LONGBLOB = 533, ++ LONGTEXT = 534, ++ LONG_NUM = 535, ++ LONG_SYM = 536, ++ LOOP_SYM = 537, ++ LOW_PRIORITY = 538, ++ MASTER_CONNECT_RETRY_SYM = 539, ++ MASTER_HOST_SYM = 540, ++ MASTER_LOG_FILE_SYM = 541, ++ MASTER_LOG_POS_SYM = 542, ++ MASTER_PASSWORD_SYM = 543, ++ MASTER_PORT_SYM = 544, ++ MASTER_SERVER_ID_SYM = 545, ++ MASTER_SSL_CAPATH_SYM = 546, ++ MASTER_SSL_CA_SYM = 547, ++ MASTER_SSL_CERT_SYM = 548, ++ MASTER_SSL_CIPHER_SYM = 549, ++ MASTER_SSL_KEY_SYM = 550, ++ MASTER_SSL_SYM = 551, ++ MASTER_SSL_VERIFY_SERVER_CERT_SYM = 552, ++ MASTER_SYM = 553, ++ MASTER_USER_SYM = 554, ++ MASTER_HEARTBEAT_PERIOD_SYM = 555, ++ MATCH = 556, ++ MAX_CONNECTIONS_PER_HOUR = 557, ++ MAX_QUERIES_PER_HOUR = 558, ++ MAX_ROWS = 559, ++ MAX_SIZE_SYM = 560, ++ MAX_SYM = 561, ++ MAX_UPDATES_PER_HOUR = 562, ++ MAX_USER_CONNECTIONS_SYM = 563, ++ MAX_VALUE_SYM = 564, ++ MEDIUMBLOB = 565, ++ MEDIUMINT = 566, ++ MEDIUMTEXT = 567, ++ MEDIUM_SYM = 568, ++ MEMORY_SYM = 569, ++ MERGE_SYM = 570, ++ MESSAGE_TEXT_SYM = 571, ++ MICROSECOND_SYM = 572, ++ MIGRATE_SYM = 573, ++ MINUTE_MICROSECOND_SYM = 574, ++ MINUTE_SECOND_SYM = 575, ++ MINUTE_SYM = 576, ++ MIN_ROWS = 577, ++ MIN_SYM = 578, ++ MODE_SYM = 579, ++ MODIFIES_SYM = 580, ++ MODIFY_SYM = 581, ++ MOD_SYM = 582, ++ MONTH_SYM = 583, ++ MULTILINESTRING = 584, ++ MULTIPOINT = 585, ++ MULTIPOLYGON = 586, ++ MUTEX_SYM = 587, ++ MYSQL_SYM = 588, ++ MYSQL_ERRNO_SYM = 589, ++ NAMES_SYM = 590, ++ NAME_SYM = 591, ++ NATIONAL_SYM = 592, ++ NATURAL = 593, ++ NCHAR_STRING = 594, ++ NCHAR_SYM = 595, ++ NDBCLUSTER_SYM = 596, ++ NE = 597, ++ NEG = 598, ++ NEW_SYM = 599, ++ NEXT_SYM = 600, ++ NODEGROUP_SYM = 601, ++ NONE_SYM = 602, ++ NOT2_SYM = 603, ++ NOT_SYM = 604, ++ NOW_SYM = 605, ++ NO_SYM = 606, ++ NO_WAIT_SYM = 607, ++ NO_WRITE_TO_BINLOG = 608, ++ NULL_SYM = 609, ++ NUM = 610, ++ NUMERIC_SYM = 611, ++ NVARCHAR_SYM = 612, ++ OFFSET_SYM = 613, ++ OLD_PASSWORD = 614, ++ ON = 615, ++ ONE_SHOT_SYM = 616, ++ ONE_SYM = 617, ++ ONLINE_SYM = 618, ++ OPEN_SYM = 619, ++ OPTIMIZE = 620, ++ OPTIONS_SYM = 621, ++ OPTION = 622, ++ OPTIONALLY = 623, ++ OR2_SYM = 624, ++ ORDER_SYM = 625, ++ OR_OR_SYM = 626, ++ OR_SYM = 627, ++ OUTER = 628, ++ OUTFILE = 629, ++ OUT_SYM = 630, ++ OWNER_SYM = 631, ++ PACK_KEYS_SYM = 632, ++ PAGE_SYM = 633, ++ PAGE_CHECKSUM_SYM = 634, ++ PARAM_MARKER = 635, ++ PARSER_SYM = 636, ++ PARSE_VCOL_EXPR_SYM = 637, ++ PARTIAL = 638, ++ PARTITIONING_SYM = 639, ++ PARTITIONS_SYM = 640, ++ PARTITION_SYM = 641, ++ PASSWORD = 642, ++ PERSISTENT_SYM = 643, ++ PHASE_SYM = 644, ++ PLUGINS_SYM = 645, ++ PLUGIN_SYM = 646, ++ POINT_SYM = 647, ++ POLYGON = 648, ++ PORT_SYM = 649, ++ POSITION_SYM = 650, ++ PRECISION = 651, ++ PREPARE_SYM = 652, ++ PRESERVE_SYM = 653, ++ PREV_SYM = 654, ++ PRIMARY_SYM = 655, ++ PRIVILEGES = 656, ++ PROCEDURE_SYM = 657, ++ PROCESS = 658, ++ PROCESSLIST_SYM = 659, ++ PROFILE_SYM = 660, ++ PROFILES_SYM = 661, ++ PROXY_SYM = 662, ++ PURGE = 663, ++ QUARTER_SYM = 664, ++ QUERY_SYM = 665, ++ QUICK = 666, ++ RANGE_SYM = 667, ++ READS_SYM = 668, ++ READ_ONLY_SYM = 669, ++ READ_SYM = 670, ++ READ_WRITE_SYM = 671, ++ REAL = 672, ++ REBUILD_SYM = 673, ++ RECOVER_SYM = 674, ++ REDOFILE_SYM = 675, ++ REDO_BUFFER_SIZE_SYM = 676, ++ REDUNDANT_SYM = 677, ++ REFERENCES = 678, ++ REGEXP = 679, ++ RELAY = 680, ++ RELAYLOG_SYM = 681, ++ RELAY_LOG_FILE_SYM = 682, ++ RELAY_LOG_POS_SYM = 683, ++ RELAY_THREAD = 684, ++ RELEASE_SYM = 685, ++ RELOAD = 686, ++ REMOVE_SYM = 687, ++ RENAME = 688, ++ REORGANIZE_SYM = 689, ++ REPAIR = 690, ++ REPEATABLE_SYM = 691, ++ REPEAT_SYM = 692, ++ REPLACE = 693, ++ REPLICATION = 694, ++ REQUIRE_SYM = 695, ++ RESET_SYM = 696, ++ RESIGNAL_SYM = 697, ++ RESOURCES = 698, ++ RESTORE_SYM = 699, ++ RESTRICT = 700, ++ RESUME_SYM = 701, ++ RETURNS_SYM = 702, ++ RETURN_SYM = 703, ++ REVOKE = 704, ++ RIGHT = 705, ++ ROLLBACK_SYM = 706, ++ ROLLUP_SYM = 707, ++ ROUTINE_SYM = 708, ++ ROWS_SYM = 709, ++ ROW_FORMAT_SYM = 710, ++ ROW_SYM = 711, ++ RTREE_SYM = 712, ++ SAVEPOINT_SYM = 713, ++ SCHEDULE_SYM = 714, ++ SCHEMA_NAME_SYM = 715, ++ SECOND_MICROSECOND_SYM = 716, ++ SECOND_SYM = 717, ++ SECURITY_SYM = 718, ++ SELECT_SYM = 719, ++ SENSITIVE_SYM = 720, ++ SEPARATOR_SYM = 721, ++ SERIALIZABLE_SYM = 722, ++ SERIAL_SYM = 723, ++ SESSION_SYM = 724, ++ SERVER_SYM = 725, ++ SERVER_OPTIONS = 726, ++ SET = 727, ++ SET_VAR = 728, ++ SHARE_SYM = 729, ++ SHIFT_LEFT = 730, ++ SHIFT_RIGHT = 731, ++ SHOW = 732, ++ SHUTDOWN = 733, ++ SIGNAL_SYM = 734, ++ SIGNED_SYM = 735, ++ SIMPLE_SYM = 736, ++ SLAVE = 737, ++ SLOW = 738, ++ SMALLINT = 739, ++ SNAPSHOT_SYM = 740, ++ SOCKET_SYM = 741, ++ SOFT_SYM = 742, ++ SONAME_SYM = 743, ++ SOUNDS_SYM = 744, ++ SOURCE_SYM = 745, ++ SPATIAL_SYM = 746, ++ SPECIFIC_SYM = 747, ++ SQLEXCEPTION_SYM = 748, ++ SQLSTATE_SYM = 749, ++ SQLWARNING_SYM = 750, ++ SQL_BIG_RESULT = 751, ++ SQL_BUFFER_RESULT = 752, ++ SQL_CACHE_SYM = 753, ++ SQL_CALC_FOUND_ROWS = 754, ++ SQL_NO_CACHE_SYM = 755, ++ SQL_SMALL_RESULT = 756, ++ SQL_SYM = 757, ++ SQL_THREAD = 758, ++ SSL_SYM = 759, ++ STARTING = 760, ++ STARTS_SYM = 761, ++ START_SYM = 762, ++ STATUS_SYM = 763, ++ STDDEV_SAMP_SYM = 764, ++ STD_SYM = 765, ++ STOP_SYM = 766, ++ STORAGE_SYM = 767, ++ STRAIGHT_JOIN = 768, ++ STRING_SYM = 769, ++ SUBCLASS_ORIGIN_SYM = 770, ++ SUBDATE_SYM = 771, ++ SUBJECT_SYM = 772, ++ SUBPARTITIONS_SYM = 773, ++ SUBPARTITION_SYM = 774, ++ SUBSTRING = 775, ++ SUM_SYM = 776, ++ SUPER_SYM = 777, ++ SUSPEND_SYM = 778, ++ SWAPS_SYM = 779, ++ SWITCHES_SYM = 780, ++ SYSDATE = 781, ++ TABLES = 782, ++ TABLESPACE = 783, ++ TABLE_REF_PRIORITY = 784, ++ TABLE_STATS_SYM = 785, ++ TABLE_SYM = 786, ++ TABLE_CHECKSUM_SYM = 787, ++ TABLE_NAME_SYM = 788, ++ TEMPORARY = 789, ++ TEMPTABLE_SYM = 790, ++ TERMINATED = 791, ++ TEXT_STRING = 792, ++ TEXT_SYM = 793, ++ THAN_SYM = 794, ++ THEN_SYM = 795, ++ TIMESTAMP = 796, ++ TIMESTAMP_ADD = 797, ++ TIMESTAMP_DIFF = 798, ++ TIME_SYM = 799, ++ TINYBLOB = 800, ++ TINYINT = 801, ++ TINYTEXT = 802, ++ TO_SYM = 803, ++ TRAILING = 804, ++ TRANSACTION_SYM = 805, ++ TRANSACTIONAL_SYM = 806, ++ TRIGGERS_SYM = 807, ++ TRIGGER_SYM = 808, ++ TRIM = 809, ++ TRUE_SYM = 810, ++ TRUNCATE_SYM = 811, ++ TYPES_SYM = 812, ++ TYPE_SYM = 813, ++ UDF_RETURNS_SYM = 814, ++ ULONGLONG_NUM = 815, ++ UNCOMMITTED_SYM = 816, ++ UNDEFINED_SYM = 817, ++ UNDERSCORE_CHARSET = 818, ++ UNDOFILE_SYM = 819, ++ UNDO_BUFFER_SIZE_SYM = 820, ++ UNDO_SYM = 821, ++ UNICODE_SYM = 822, ++ UNINSTALL_SYM = 823, ++ UNION_SYM = 824, ++ UNIQUE_SYM = 825, ++ UNKNOWN_SYM = 826, ++ UNLOCK_SYM = 827, ++ UNSIGNED = 828, ++ UNTIL_SYM = 829, ++ UPDATE_SYM = 830, ++ UPGRADE_SYM = 831, ++ USAGE = 832, ++ USER = 833, ++ USER_STATS_SYM = 834, ++ USE_FRM = 835, ++ USE_SYM = 836, ++ USING = 837, ++ UTC_DATE_SYM = 838, ++ UTC_TIMESTAMP_SYM = 839, ++ UTC_TIME_SYM = 840, ++ VALUES = 841, ++ VALUE_SYM = 842, ++ VARBINARY = 843, ++ VARCHAR = 844, ++ VARIABLES = 845, ++ VARIANCE_SYM = 846, ++ VARYING = 847, ++ VAR_SAMP_SYM = 848, ++ VIA_SYM = 849, ++ VIEW_SYM = 850, ++ VIRTUAL_SYM = 851, ++ WAIT_SYM = 852, ++ WARNINGS = 853, ++ WEEK_SYM = 854, ++ WHEN_SYM = 855, ++ WHERE = 856, ++ WHILE_SYM = 857, ++ WITH = 858, ++ WITH_CUBE_SYM = 859, ++ WITH_ROLLUP_SYM = 860, ++ WORK_SYM = 861, ++ WRAPPER_SYM = 862, ++ WRITE_SYM = 863, ++ X509_SYM = 864, ++ XA_SYM = 865, ++ XML_SYM = 866, ++ XOR = 867, ++ YEAR_MONTH_SYM = 868, ++ YEAR_SYM = 869, ++ ZEROFILL = 870, ++ IMPOSSIBLE_ACTION = 871 ++ }; ++#endif ++/* Tokens. */ ++#define ABORT_SYM 258 ++#define ACCESSIBLE_SYM 259 ++#define ACTION 260 ++#define ADD 261 ++#define ADDDATE_SYM 262 ++#define AFTER_SYM 263 ++#define AGAINST 264 ++#define AGGREGATE_SYM 265 ++#define ALGORITHM_SYM 266 ++#define ALL 267 ++#define ALTER 268 ++#define ALWAYS_SYM 269 ++#define ANALYZE_SYM 270 ++#define AND_AND_SYM 271 ++#define AND_SYM 272 ++#define ANY_SYM 273 ++#define AS 274 ++#define ASC 275 ++#define ASCII_SYM 276 ++#define ASENSITIVE_SYM 277 ++#define AT_SYM 278 ++#define AUTHORS_SYM 279 ++#define AUTOEXTEND_SIZE_SYM 280 ++#define AUTO_INC 281 ++#define AVG_ROW_LENGTH 282 ++#define AVG_SYM 283 ++#define BACKUP_SYM 284 ++#define BEFORE_SYM 285 ++#define BEGIN_SYM 286 ++#define BETWEEN_SYM 287 ++#define BIGINT 288 ++#define BINARY 289 ++#define BINLOG_SYM 290 ++#define BIN_NUM 291 ++#define BIT_AND 292 ++#define BIT_OR 293 ++#define BIT_SYM 294 ++#define BIT_XOR 295 ++#define BLOB_SYM 296 ++#define BLOCK_SYM 297 ++#define BOOLEAN_SYM 298 ++#define BOOL_SYM 299 ++#define BOTH 300 ++#define BTREE_SYM 301 ++#define BY 302 ++#define BYTE_SYM 303 ++#define CACHE_SYM 304 ++#define CALL_SYM 305 ++#define CASCADE 306 ++#define CASCADED 307 ++#define CASE_SYM 308 ++#define CAST_SYM 309 ++#define CATALOG_NAME_SYM 310 ++#define CHAIN_SYM 311 ++#define CHANGE 312 ++#define CHANGED 313 ++#define CHARSET 314 ++#define CHAR_SYM 315 ++#define CHECKPOINT_SYM 316 ++#define CHECKSUM_SYM 317 ++#define CHECK_SYM 318 ++#define CIPHER_SYM 319 ++#define CLASS_ORIGIN_SYM 320 ++#define CLIENT_SYM 321 ++#define CLIENT_STATS_SYM 322 ++#define CLOSE_SYM 323 ++#define COALESCE 324 ++#define CODE_SYM 325 ++#define COLLATE_SYM 326 ++#define COLLATION_SYM 327 ++#define COLUMNS 328 ++#define COLUMN_ADD_SYM 329 ++#define COLUMN_CREATE_SYM 330 ++#define COLUMN_DELETE_SYM 331 ++#define COLUMN_EXISTS_SYM 332 ++#define COLUMN_GET_SYM 333 ++#define COLUMN_LIST_SYM 334 ++#define COLUMN_SYM 335 ++#define COLUMN_NAME_SYM 336 ++#define COMMENT_SYM 337 ++#define COMMITTED_SYM 338 ++#define COMMIT_SYM 339 ++#define COMPACT_SYM 340 ++#define COMPLETION_SYM 341 ++#define COMPRESSED_SYM 342 ++#define CONCURRENT 343 ++#define CONDITION_SYM 344 ++#define CONNECTION_SYM 345 ++#define CONSISTENT_SYM 346 ++#define CONSTRAINT 347 ++#define CONSTRAINT_CATALOG_SYM 348 ++#define CONSTRAINT_NAME_SYM 349 ++#define CONSTRAINT_SCHEMA_SYM 350 ++#define CONTAINS_SYM 351 ++#define CONTEXT_SYM 352 ++#define CONTINUE_SYM 353 ++#define CONTRIBUTORS_SYM 354 ++#define CONVERT_SYM 355 ++#define COUNT_SYM 356 ++#define CPU_SYM 357 ++#define CREATE 358 ++#define CROSS 359 ++#define CUBE_SYM 360 ++#define CURDATE 361 ++#define CURRENT_USER 362 ++#define CURSOR_SYM 363 ++#define CURSOR_NAME_SYM 364 ++#define CURTIME 365 ++#define DATABASE 366 ++#define DATABASES 367 ++#define DATAFILE_SYM 368 ++#define DATA_SYM 369 ++#define DATETIME 370 ++#define DATE_ADD_INTERVAL 371 ++#define DATE_SUB_INTERVAL 372 ++#define DATE_SYM 373 ++#define DAY_HOUR_SYM 374 ++#define DAY_MICROSECOND_SYM 375 ++#define DAY_MINUTE_SYM 376 ++#define DAY_SECOND_SYM 377 ++#define DAY_SYM 378 ++#define DEALLOCATE_SYM 379 ++#define DECIMAL_NUM 380 ++#define DECIMAL_SYM 381 ++#define DECLARE_SYM 382 ++#define DEFAULT 383 ++#define DEFINER_SYM 384 ++#define DELAYED_SYM 385 ++#define DELAY_KEY_WRITE_SYM 386 ++#define DELETE_SYM 387 ++#define DESC 388 ++#define DESCRIBE 389 ++#define DES_KEY_FILE 390 ++#define DETERMINISTIC_SYM 391 ++#define DIRECTORY_SYM 392 ++#define DISABLE_SYM 393 ++#define DISCARD 394 ++#define DISK_SYM 395 ++#define DISTINCT 396 ++#define DIV_SYM 397 ++#define DOUBLE_SYM 398 ++#define DO_SYM 399 ++#define DROP 400 ++#define DUAL_SYM 401 ++#define DUMPFILE 402 ++#define DUPLICATE_SYM 403 ++#define DYNAMIC_SYM 404 ++#define EACH_SYM 405 ++#define ELSE 406 ++#define ELSEIF_SYM 407 ++#define ENABLE_SYM 408 ++#define ENCLOSED 409 ++#define END 410 ++#define ENDS_SYM 411 ++#define END_OF_INPUT 412 ++#define ENGINES_SYM 413 ++#define ENGINE_SYM 414 ++#define ENUM 415 ++#define EQUAL_SYM 416 ++#define ERROR_SYM 417 ++#define ERRORS 418 ++#define ESCAPED 419 ++#define ESCAPE_SYM 420 ++#define EVENTS_SYM 421 ++#define EVENT_SYM 422 ++#define EVERY_SYM 423 ++#define EXAMINED_SYM 424 ++#define EXECUTE_SYM 425 ++#define EXISTS 426 ++#define EXIT_SYM 427 ++#define EXPANSION_SYM 428 ++#define EXTENDED_SYM 429 ++#define EXTENT_SIZE_SYM 430 ++#define EXTRACT_SYM 431 ++#define FALSE_SYM 432 ++#define FAST_SYM 433 ++#define FAULTS_SYM 434 ++#define FETCH_SYM 435 ++#define FILE_SYM 436 ++#define FIRST_SYM 437 ++#define FIXED_SYM 438 ++#define FLOAT_NUM 439 ++#define FLOAT_SYM 440 ++#define FLUSH_SYM 441 ++#define FORCE_SYM 442 ++#define FOREIGN 443 ++#define FOR_SYM 444 ++#define FOUND_SYM 445 ++#define FROM 446 ++#define FULL 447 ++#define FULLTEXT_SYM 448 ++#define FUNCTION_SYM 449 ++#define GE 450 ++#define GENERAL 451 ++#define GENERATED_SYM 452 ++#define GEOMETRYCOLLECTION 453 ++#define GEOMETRY_SYM 454 ++#define GET_FORMAT 455 ++#define GLOBAL_SYM 456 ++#define GRANT 457 ++#define GRANTS 458 ++#define GROUP_SYM 459 ++#define GROUP_CONCAT_SYM 460 ++#define HANDLER_SYM 461 ++#define HARD_SYM 462 ++#define HASH_SYM 463 ++#define HAVING 464 ++#define HELP_SYM 465 ++#define HEX_NUM 466 ++#define HEX_STRING 467 ++#define HIGH_PRIORITY 468 ++#define HOST_SYM 469 ++#define HOSTS_SYM 470 ++#define HOUR_MICROSECOND_SYM 471 ++#define HOUR_MINUTE_SYM 472 ++#define HOUR_SECOND_SYM 473 ++#define HOUR_SYM 474 ++#define IDENT 475 ++#define IDENTIFIED_SYM 476 ++#define IDENT_QUOTED 477 ++#define IF 478 ++#define IGNORE_SYM 479 ++#define IGNORE_SERVER_IDS_SYM 480 ++#define IMPORT 481 ++#define INDEXES 482 ++#define INDEX_SYM 483 ++#define INDEX_STATS_SYM 484 ++#define INFILE 485 ++#define INITIAL_SIZE_SYM 486 ++#define INNER_SYM 487 ++#define INOUT_SYM 488 ++#define INSENSITIVE_SYM 489 ++#define INSERT 490 ++#define INSERT_METHOD 491 ++#define INSTALL_SYM 492 ++#define INTERVAL_SYM 493 ++#define INTO 494 ++#define INT_SYM 495 ++#define INVOKER_SYM 496 ++#define IN_SYM 497 ++#define IO_SYM 498 ++#define IPC_SYM 499 ++#define IS 500 ++#define ISOLATION 501 ++#define ISSUER_SYM 502 ++#define ITERATE_SYM 503 ++#define JOIN_SYM 504 ++#define KEYS 505 ++#define KEY_BLOCK_SIZE 506 ++#define KEY_SYM 507 ++#define KILL_SYM 508 ++#define LANGUAGE_SYM 509 ++#define LAST_SYM 510 ++#define LAST_VALUE 511 ++#define LE 512 ++#define LEADING 513 ++#define LEAVES 514 ++#define LEAVE_SYM 515 ++#define LEFT 516 ++#define LESS_SYM 517 ++#define LEVEL_SYM 518 ++#define LEX_HOSTNAME 519 ++#define LIKE 520 ++#define LIMIT 521 ++#define LINEAR_SYM 522 ++#define LINES 523 ++#define LINESTRING 524 ++#define LIST_SYM 525 ++#define LOAD 526 ++#define LOCAL_SYM 527 ++#define LOCATOR_SYM 528 ++#define LOCKS_SYM 529 ++#define LOCK_SYM 530 ++#define LOGFILE_SYM 531 ++#define LOGS_SYM 532 ++#define LONGBLOB 533 ++#define LONGTEXT 534 ++#define LONG_NUM 535 ++#define LONG_SYM 536 ++#define LOOP_SYM 537 ++#define LOW_PRIORITY 538 ++#define MASTER_CONNECT_RETRY_SYM 539 ++#define MASTER_HOST_SYM 540 ++#define MASTER_LOG_FILE_SYM 541 ++#define MASTER_LOG_POS_SYM 542 ++#define MASTER_PASSWORD_SYM 543 ++#define MASTER_PORT_SYM 544 ++#define MASTER_SERVER_ID_SYM 545 ++#define MASTER_SSL_CAPATH_SYM 546 ++#define MASTER_SSL_CA_SYM 547 ++#define MASTER_SSL_CERT_SYM 548 ++#define MASTER_SSL_CIPHER_SYM 549 ++#define MASTER_SSL_KEY_SYM 550 ++#define MASTER_SSL_SYM 551 ++#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 552 ++#define MASTER_SYM 553 ++#define MASTER_USER_SYM 554 ++#define MASTER_HEARTBEAT_PERIOD_SYM 555 ++#define MATCH 556 ++#define MAX_CONNECTIONS_PER_HOUR 557 ++#define MAX_QUERIES_PER_HOUR 558 ++#define MAX_ROWS 559 ++#define MAX_SIZE_SYM 560 ++#define MAX_SYM 561 ++#define MAX_UPDATES_PER_HOUR 562 ++#define MAX_USER_CONNECTIONS_SYM 563 ++#define MAX_VALUE_SYM 564 ++#define MEDIUMBLOB 565 ++#define MEDIUMINT 566 ++#define MEDIUMTEXT 567 ++#define MEDIUM_SYM 568 ++#define MEMORY_SYM 569 ++#define MERGE_SYM 570 ++#define MESSAGE_TEXT_SYM 571 ++#define MICROSECOND_SYM 572 ++#define MIGRATE_SYM 573 ++#define MINUTE_MICROSECOND_SYM 574 ++#define MINUTE_SECOND_SYM 575 ++#define MINUTE_SYM 576 ++#define MIN_ROWS 577 ++#define MIN_SYM 578 ++#define MODE_SYM 579 ++#define MODIFIES_SYM 580 ++#define MODIFY_SYM 581 ++#define MOD_SYM 582 ++#define MONTH_SYM 583 ++#define MULTILINESTRING 584 ++#define MULTIPOINT 585 ++#define MULTIPOLYGON 586 ++#define MUTEX_SYM 587 ++#define MYSQL_SYM 588 ++#define MYSQL_ERRNO_SYM 589 ++#define NAMES_SYM 590 ++#define NAME_SYM 591 ++#define NATIONAL_SYM 592 ++#define NATURAL 593 ++#define NCHAR_STRING 594 ++#define NCHAR_SYM 595 ++#define NDBCLUSTER_SYM 596 ++#define NE 597 ++#define NEG 598 ++#define NEW_SYM 599 ++#define NEXT_SYM 600 ++#define NODEGROUP_SYM 601 ++#define NONE_SYM 602 ++#define NOT2_SYM 603 ++#define NOT_SYM 604 ++#define NOW_SYM 605 ++#define NO_SYM 606 ++#define NO_WAIT_SYM 607 ++#define NO_WRITE_TO_BINLOG 608 ++#define NULL_SYM 609 ++#define NUM 610 ++#define NUMERIC_SYM 611 ++#define NVARCHAR_SYM 612 ++#define OFFSET_SYM 613 ++#define OLD_PASSWORD 614 ++#define ON 615 ++#define ONE_SHOT_SYM 616 ++#define ONE_SYM 617 ++#define ONLINE_SYM 618 ++#define OPEN_SYM 619 ++#define OPTIMIZE 620 ++#define OPTIONS_SYM 621 ++#define OPTION 622 ++#define OPTIONALLY 623 ++#define OR2_SYM 624 ++#define ORDER_SYM 625 ++#define OR_OR_SYM 626 ++#define OR_SYM 627 ++#define OUTER 628 ++#define OUTFILE 629 ++#define OUT_SYM 630 ++#define OWNER_SYM 631 ++#define PACK_KEYS_SYM 632 ++#define PAGE_SYM 633 ++#define PAGE_CHECKSUM_SYM 634 ++#define PARAM_MARKER 635 ++#define PARSER_SYM 636 ++#define PARSE_VCOL_EXPR_SYM 637 ++#define PARTIAL 638 ++#define PARTITIONING_SYM 639 ++#define PARTITIONS_SYM 640 ++#define PARTITION_SYM 641 ++#define PASSWORD 642 ++#define PERSISTENT_SYM 643 ++#define PHASE_SYM 644 ++#define PLUGINS_SYM 645 ++#define PLUGIN_SYM 646 ++#define POINT_SYM 647 ++#define POLYGON 648 ++#define PORT_SYM 649 ++#define POSITION_SYM 650 ++#define PRECISION 651 ++#define PREPARE_SYM 652 ++#define PRESERVE_SYM 653 ++#define PREV_SYM 654 ++#define PRIMARY_SYM 655 ++#define PRIVILEGES 656 ++#define PROCEDURE_SYM 657 ++#define PROCESS 658 ++#define PROCESSLIST_SYM 659 ++#define PROFILE_SYM 660 ++#define PROFILES_SYM 661 ++#define PROXY_SYM 662 ++#define PURGE 663 ++#define QUARTER_SYM 664 ++#define QUERY_SYM 665 ++#define QUICK 666 ++#define RANGE_SYM 667 ++#define READS_SYM 668 ++#define READ_ONLY_SYM 669 ++#define READ_SYM 670 ++#define READ_WRITE_SYM 671 ++#define REAL 672 ++#define REBUILD_SYM 673 ++#define RECOVER_SYM 674 ++#define REDOFILE_SYM 675 ++#define REDO_BUFFER_SIZE_SYM 676 ++#define REDUNDANT_SYM 677 ++#define REFERENCES 678 ++#define REGEXP 679 ++#define RELAY 680 ++#define RELAYLOG_SYM 681 ++#define RELAY_LOG_FILE_SYM 682 ++#define RELAY_LOG_POS_SYM 683 ++#define RELAY_THREAD 684 ++#define RELEASE_SYM 685 ++#define RELOAD 686 ++#define REMOVE_SYM 687 ++#define RENAME 688 ++#define REORGANIZE_SYM 689 ++#define REPAIR 690 ++#define REPEATABLE_SYM 691 ++#define REPEAT_SYM 692 ++#define REPLACE 693 ++#define REPLICATION 694 ++#define REQUIRE_SYM 695 ++#define RESET_SYM 696 ++#define RESIGNAL_SYM 697 ++#define RESOURCES 698 ++#define RESTORE_SYM 699 ++#define RESTRICT 700 ++#define RESUME_SYM 701 ++#define RETURNS_SYM 702 ++#define RETURN_SYM 703 ++#define REVOKE 704 ++#define RIGHT 705 ++#define ROLLBACK_SYM 706 ++#define ROLLUP_SYM 707 ++#define ROUTINE_SYM 708 ++#define ROWS_SYM 709 ++#define ROW_FORMAT_SYM 710 ++#define ROW_SYM 711 ++#define RTREE_SYM 712 ++#define SAVEPOINT_SYM 713 ++#define SCHEDULE_SYM 714 ++#define SCHEMA_NAME_SYM 715 ++#define SECOND_MICROSECOND_SYM 716 ++#define SECOND_SYM 717 ++#define SECURITY_SYM 718 ++#define SELECT_SYM 719 ++#define SENSITIVE_SYM 720 ++#define SEPARATOR_SYM 721 ++#define SERIALIZABLE_SYM 722 ++#define SERIAL_SYM 723 ++#define SESSION_SYM 724 ++#define SERVER_SYM 725 ++#define SERVER_OPTIONS 726 ++#define SET 727 ++#define SET_VAR 728 ++#define SHARE_SYM 729 ++#define SHIFT_LEFT 730 ++#define SHIFT_RIGHT 731 ++#define SHOW 732 ++#define SHUTDOWN 733 ++#define SIGNAL_SYM 734 ++#define SIGNED_SYM 735 ++#define SIMPLE_SYM 736 ++#define SLAVE 737 ++#define SLOW 738 ++#define SMALLINT 739 ++#define SNAPSHOT_SYM 740 ++#define SOCKET_SYM 741 ++#define SOFT_SYM 742 ++#define SONAME_SYM 743 ++#define SOUNDS_SYM 744 ++#define SOURCE_SYM 745 ++#define SPATIAL_SYM 746 ++#define SPECIFIC_SYM 747 ++#define SQLEXCEPTION_SYM 748 ++#define SQLSTATE_SYM 749 ++#define SQLWARNING_SYM 750 ++#define SQL_BIG_RESULT 751 ++#define SQL_BUFFER_RESULT 752 ++#define SQL_CACHE_SYM 753 ++#define SQL_CALC_FOUND_ROWS 754 ++#define SQL_NO_CACHE_SYM 755 ++#define SQL_SMALL_RESULT 756 ++#define SQL_SYM 757 ++#define SQL_THREAD 758 ++#define SSL_SYM 759 ++#define STARTING 760 ++#define STARTS_SYM 761 ++#define START_SYM 762 ++#define STATUS_SYM 763 ++#define STDDEV_SAMP_SYM 764 ++#define STD_SYM 765 ++#define STOP_SYM 766 ++#define STORAGE_SYM 767 ++#define STRAIGHT_JOIN 768 ++#define STRING_SYM 769 ++#define SUBCLASS_ORIGIN_SYM 770 ++#define SUBDATE_SYM 771 ++#define SUBJECT_SYM 772 ++#define SUBPARTITIONS_SYM 773 ++#define SUBPARTITION_SYM 774 ++#define SUBSTRING 775 ++#define SUM_SYM 776 ++#define SUPER_SYM 777 ++#define SUSPEND_SYM 778 ++#define SWAPS_SYM 779 ++#define SWITCHES_SYM 780 ++#define SYSDATE 781 ++#define TABLES 782 ++#define TABLESPACE 783 ++#define TABLE_REF_PRIORITY 784 ++#define TABLE_STATS_SYM 785 ++#define TABLE_SYM 786 ++#define TABLE_CHECKSUM_SYM 787 ++#define TABLE_NAME_SYM 788 ++#define TEMPORARY 789 ++#define TEMPTABLE_SYM 790 ++#define TERMINATED 791 ++#define TEXT_STRING 792 ++#define TEXT_SYM 793 ++#define THAN_SYM 794 ++#define THEN_SYM 795 ++#define TIMESTAMP 796 ++#define TIMESTAMP_ADD 797 ++#define TIMESTAMP_DIFF 798 ++#define TIME_SYM 799 ++#define TINYBLOB 800 ++#define TINYINT 801 ++#define TINYTEXT 802 ++#define TO_SYM 803 ++#define TRAILING 804 ++#define TRANSACTION_SYM 805 ++#define TRANSACTIONAL_SYM 806 ++#define TRIGGERS_SYM 807 ++#define TRIGGER_SYM 808 ++#define TRIM 809 ++#define TRUE_SYM 810 ++#define TRUNCATE_SYM 811 ++#define TYPES_SYM 812 ++#define TYPE_SYM 813 ++#define UDF_RETURNS_SYM 814 ++#define ULONGLONG_NUM 815 ++#define UNCOMMITTED_SYM 816 ++#define UNDEFINED_SYM 817 ++#define UNDERSCORE_CHARSET 818 ++#define UNDOFILE_SYM 819 ++#define UNDO_BUFFER_SIZE_SYM 820 ++#define UNDO_SYM 821 ++#define UNICODE_SYM 822 ++#define UNINSTALL_SYM 823 ++#define UNION_SYM 824 ++#define UNIQUE_SYM 825 ++#define UNKNOWN_SYM 826 ++#define UNLOCK_SYM 827 ++#define UNSIGNED 828 ++#define UNTIL_SYM 829 ++#define UPDATE_SYM 830 ++#define UPGRADE_SYM 831 ++#define USAGE 832 ++#define USER 833 ++#define USER_STATS_SYM 834 ++#define USE_FRM 835 ++#define USE_SYM 836 ++#define USING 837 ++#define UTC_DATE_SYM 838 ++#define UTC_TIMESTAMP_SYM 839 ++#define UTC_TIME_SYM 840 ++#define VALUES 841 ++#define VALUE_SYM 842 ++#define VARBINARY 843 ++#define VARCHAR 844 ++#define VARIABLES 845 ++#define VARIANCE_SYM 846 ++#define VARYING 847 ++#define VAR_SAMP_SYM 848 ++#define VIA_SYM 849 ++#define VIEW_SYM 850 ++#define VIRTUAL_SYM 851 ++#define WAIT_SYM 852 ++#define WARNINGS 853 ++#define WEEK_SYM 854 ++#define WHEN_SYM 855 ++#define WHERE 856 ++#define WHILE_SYM 857 ++#define WITH 858 ++#define WITH_CUBE_SYM 859 ++#define WITH_ROLLUP_SYM 860 ++#define WORK_SYM 861 ++#define WRAPPER_SYM 862 ++#define WRITE_SYM 863 ++#define X509_SYM 864 ++#define XA_SYM 865 ++#define XML_SYM 866 ++#define XOR 867 ++#define YEAR_MONTH_SYM 868 ++#define YEAR_SYM 869 ++#define ZEROFILL 870 ++#define IMPOSSIBLE_ACTION 871 ++ ++/* Value type. */ ++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED ++typedef union YYSTYPE YYSTYPE; ++union YYSTYPE ++{ ++#line 732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:355 */ ++ ++ int num; ++ ulong ulong_num; ++ ulonglong ulonglong_number; ++ longlong longlong_number; ++ LEX_STRING lex_str; ++ LEX_STRING *lex_str_ptr; ++ LEX_SYMBOL symbol; ++ LEX_TYPE lex_type; ++ Table_ident *table; ++ char *simple_string; ++ Item *item; ++ Item_num *item_num; ++ List *item_list; ++ List *string_list; ++ String *string; ++ Key_part_spec *key_part; ++ TABLE_LIST *table_list; ++ udf_func *udf; ++ LEX_USER *lex_user; ++ struct sys_var_with_base variable; ++ enum enum_var_type var_type; ++ Key::Keytype key_type; ++ enum ha_key_alg key_alg; ++ handlerton *db_type; ++ enum row_type row_type; ++ enum ha_rkey_function ha_rkey_mode; ++ enum enum_tx_isolation tx_isolation; ++ enum Cast_target cast_type; ++ enum Item_udftype udf_type; ++ enum ha_choice choice; ++ CHARSET_INFO *charset; ++ thr_lock_type lock_type; ++ interval_type interval, interval_time_st; ++ timestamp_type date_time_type; ++ st_select_lex *select_lex; ++ chooser_compare_func_creator boolfunc2creator; ++ struct sp_cond_type *spcondtype; ++ struct { int vars, conds, hndlrs, curs; } spblock; ++ sp_name *spname; ++ LEX *lex; ++ sp_head *sphead; ++ struct p_elem_val *p_elem_value; ++ enum index_hint_type index_hint; ++ enum enum_filetype filetype; ++ enum Foreign_key::fk_option m_fk_option; ++ enum enum_yes_no_unknown m_yes_no_unk; ++ Diag_condition_item_name diag_condition_item_name; ++ DYNCALL_CREATE_DEF *dyncol_def; ++ List *dyncol_def_list; ++ bool is_not_empty; ++ ++#line 2105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:355 */ ++}; ++# define YYSTYPE_IS_TRIVIAL 1 ++# define YYSTYPE_IS_DECLARED 1 ++#endif ++ ++ ++ ++int MYSQLparse (THD *thd); ++ ++#endif /* !YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED */ ++ ++/* Copy the second part of user declarations. */ ++#line 785 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:358 */ ++ ++bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ++ ++#line 2122 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:358 */ ++ ++#ifdef short ++# undef short ++#endif ++ ++#ifdef YYTYPE_UINT8 ++typedef YYTYPE_UINT8 yytype_uint8; ++#else ++typedef unsigned char yytype_uint8; ++#endif ++ ++#ifdef YYTYPE_INT8 ++typedef YYTYPE_INT8 yytype_int8; ++#else ++typedef signed char yytype_int8; ++#endif ++ ++#ifdef YYTYPE_UINT16 ++typedef YYTYPE_UINT16 yytype_uint16; ++#else ++typedef unsigned short int yytype_uint16; ++#endif ++ ++#ifdef YYTYPE_INT16 ++typedef YYTYPE_INT16 yytype_int16; ++#else ++typedef short int yytype_int16; ++#endif ++ ++#ifndef YYSIZE_T ++# ifdef __SIZE_TYPE__ ++# define YYSIZE_T __SIZE_TYPE__ ++# elif defined size_t ++# define YYSIZE_T size_t ++# elif ! defined YYSIZE_T ++# include /* INFRINGES ON USER NAME SPACE */ ++# define YYSIZE_T size_t ++# else ++# define YYSIZE_T unsigned int ++# endif ++#endif ++ ++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) ++ ++#ifndef YY_ ++# if defined YYENABLE_NLS && YYENABLE_NLS ++# if ENABLE_NLS ++# include /* INFRINGES ON USER NAME SPACE */ ++# define YY_(Msgid) dgettext ("bison-runtime", Msgid) ++# endif ++# endif ++# ifndef YY_ ++# define YY_(Msgid) Msgid ++# endif ++#endif ++ ++#ifndef YY_ATTRIBUTE ++# if (defined __GNUC__ \ ++ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ ++ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C ++# define YY_ATTRIBUTE(Spec) __attribute__(Spec) ++# else ++# define YY_ATTRIBUTE(Spec) /* empty */ ++# endif ++#endif ++ ++#ifndef YY_ATTRIBUTE_PURE ++# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) ++#endif ++ ++#ifndef YY_ATTRIBUTE_UNUSED ++# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) ++#endif ++ ++#if !defined _Noreturn \ ++ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) ++# if defined _MSC_VER && 1200 <= _MSC_VER ++# define _Noreturn __declspec (noreturn) ++# else ++# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) ++# endif ++#endif ++ ++/* Suppress unused-variable warnings by "using" E. */ ++#if ! defined lint || defined __GNUC__ ++# define YYUSE(E) ((void) (E)) ++#else ++# define YYUSE(E) /* empty */ ++#endif ++ ++#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ ++/* Suppress an incorrect diagnostic about yylval being uninitialized. */ ++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ ++ _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ ++ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") ++# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ ++ _Pragma ("GCC diagnostic pop") ++#else ++# define YY_INITIAL_VALUE(Value) Value ++#endif ++#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++# define YY_IGNORE_MAYBE_UNINITIALIZED_END ++#endif ++#ifndef YY_INITIAL_VALUE ++# define YY_INITIAL_VALUE(Value) /* Nothing. */ ++#endif ++ ++ ++#if ! defined yyoverflow || YYERROR_VERBOSE ++ ++/* The parser invokes alloca or malloc; define the necessary symbols. */ ++ ++# ifdef YYSTACK_USE_ALLOCA ++# if YYSTACK_USE_ALLOCA ++# ifdef __GNUC__ ++# define YYSTACK_ALLOC __builtin_alloca ++# elif defined __BUILTIN_VA_ARG_INCR ++# include /* INFRINGES ON USER NAME SPACE */ ++# elif defined _AIX ++# define YYSTACK_ALLOC __alloca ++# elif defined _MSC_VER ++# include /* INFRINGES ON USER NAME SPACE */ ++# define alloca _alloca ++# else ++# define YYSTACK_ALLOC alloca ++# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS ++# include /* INFRINGES ON USER NAME SPACE */ ++ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ ++# ifndef EXIT_SUCCESS ++# define EXIT_SUCCESS 0 ++# endif ++# endif ++# endif ++# endif ++# endif ++ ++# ifdef YYSTACK_ALLOC ++ /* Pacify GCC's 'empty if-body' warning. */ ++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) ++# ifndef YYSTACK_ALLOC_MAXIMUM ++ /* The OS might guarantee only one guard page at the bottom of the stack, ++ and a page size can be as small as 4096 bytes. So we cannot safely ++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number ++ to allow for a few compiler-allocated temporary stack slots. */ ++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ ++# endif ++# else ++# define YYSTACK_ALLOC YYMALLOC ++# define YYSTACK_FREE YYFREE ++# ifndef YYSTACK_ALLOC_MAXIMUM ++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM ++# endif ++# if (defined __cplusplus && ! defined EXIT_SUCCESS \ ++ && ! ((defined YYMALLOC || defined malloc) \ ++ && (defined YYFREE || defined free))) ++# include /* INFRINGES ON USER NAME SPACE */ ++# ifndef EXIT_SUCCESS ++# define EXIT_SUCCESS 0 ++# endif ++# endif ++# ifndef YYMALLOC ++# define YYMALLOC malloc ++# if ! defined malloc && ! defined EXIT_SUCCESS ++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ ++# endif ++# endif ++# ifndef YYFREE ++# define YYFREE free ++# if ! defined free && ! defined EXIT_SUCCESS ++void free (void *); /* INFRINGES ON USER NAME SPACE */ ++# endif ++# endif ++# endif ++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ ++ ++ ++#if (! defined yyoverflow \ ++ && (! defined __cplusplus \ ++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) ++ ++/* A type that is properly aligned for any stack member. */ ++union yyalloc ++{ ++ yytype_int16 yyss_alloc; ++ YYSTYPE yyvs_alloc; ++}; ++ ++/* The size of the maximum gap between one aligned stack and the next. */ ++# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) ++ ++/* The size of an array large to enough to hold all stacks, each with ++ N elements. */ ++# define YYSTACK_BYTES(N) \ ++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ ++ + YYSTACK_GAP_MAXIMUM) ++ ++# define YYCOPY_NEEDED 1 ++ ++/* Relocate STACK from its old location to the new one. The ++ local variables YYSIZE and YYSTACKSIZE give the old and new number of ++ elements in the stack, and YYPTR gives the new location of the ++ stack. Advance YYPTR to a properly aligned location for the next ++ stack. */ ++# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ ++ do \ ++ { \ ++ YYSIZE_T yynewbytes; \ ++ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ ++ Stack = &yyptr->Stack_alloc; \ ++ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ ++ yyptr += yynewbytes / sizeof (*yyptr); \ ++ } \ ++ while (0) ++ ++#endif ++ ++#if defined YYCOPY_NEEDED && YYCOPY_NEEDED ++/* Copy COUNT objects from SRC to DST. The source and destination do ++ not overlap. */ ++# ifndef YYCOPY ++# if defined __GNUC__ && 1 < __GNUC__ ++# define YYCOPY(Dst, Src, Count) \ ++ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) ++# else ++# define YYCOPY(Dst, Src, Count) \ ++ do \ ++ { \ ++ YYSIZE_T yyi; \ ++ for (yyi = 0; yyi < (Count); yyi++) \ ++ (Dst)[yyi] = (Src)[yyi]; \ ++ } \ ++ while (0) ++# endif ++# endif ++#endif /* !YYCOPY_NEEDED */ ++ ++/* YYFINAL -- State number of the termination state. */ ++#define YYFINAL 602 ++/* YYLAST -- Last index in YYTABLE. */ ++#define YYLAST 56329 ++ ++/* YYNTOKENS -- Number of terminals. */ ++#define YYNTOKENS 639 ++/* YYNNTS -- Number of nonterminals. */ ++#define YYNNTS 930 ++/* YYNRULES -- Number of rules. */ ++#define YYNRULES 2643 ++/* YYNSTATES -- Number of states. */ ++#define YYNSTATES 4474 ++ ++/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned ++ by yylex, with out-of-bounds checking. */ ++#define YYUNDEFTOK 2 ++#define YYMAXUTOK 871 ++ ++#define YYTRANSLATE(YYX) \ ++ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) ++ ++/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM ++ as returned by yylex, without out-of-bounds checking. */ ++static const yytype_uint16 yytranslate[] = ++{ ++ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 632, 2, 2, 2, 626, 621, 2, ++ 629, 630, 624, 623, 631, 622, 637, 625, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 638, 635, ++ 619, 617, 618, 2, 636, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 627, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 633, 620, 634, 628, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 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, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 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, ++ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, ++ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, ++ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, ++ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, ++ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, ++ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, ++ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, ++ 155, 156, 157, 158, 159, 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, 189, 190, 191, 192, 193, 194, ++ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, ++ 205, 206, 207, 208, 209, 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, 280, 281, 282, 283, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, ++ 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, 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, 513, 514, ++ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, ++ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, ++ 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, ++ 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, ++ 555, 556, 557, 558, 559, 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 ++}; ++ ++#if YYDEBUG ++ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ ++static const yytype_uint16 yyrline[] = ++{ ++ 0, 1707, 1707, 1719, 1718, 1743, 1750, 1752, 1756, 1757, ++ 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, ++ 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, ++ 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, ++ 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, ++ 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, ++ 1812, 1813, 1814, 1818, 1827, 1828, 1832, 1841, 1847, 1857, ++ 1856, 1866, 1868, 1872, 1873, 1877, 1890, 1889, 1909, 1908, ++ 1917, 1918, 1922, 1926, 1930, 1934, 1938, 1942, 1947, 1951, ++ 1955, 1959, 1963, 1967, 1973, 2004, 2009, 2012, 2014, 2015, ++ 2019, 2025, 2029, 2045, 2049, 2061, 2060, 2101, 2100, 2112, ++ 2110, 2123, 2121, 2133, 2132, 2145, 2144, 2152, 2156, 2160, ++ 2164, 2171, 2184, 2185, 2189, 2193, 2197, 2201, 2205, 2209, ++ 2213, 2221, 2220, 2251, 2250, 2257, 2264, 2265, 2271, 2277, ++ 2287, 2293, 2299, 2301, 2308, 2309, 2313, 2319, 2328, 2329, ++ 2337, 2337, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, ++ 2401, 2402, 2403, 2404, 2405, 2410, 2424, 2440, 2458, 2459, ++ 2463, 2464, 2469, 2471, 2473, 2475, 2477, 2479, 2481, 2487, ++ 2488, 2489, 2493, 2497, 2505, 2504, 2517, 2519, 2522, 2524, ++ 2528, 2532, 2539, 2541, 2545, 2546, 2551, 2571, 2597, 2599, ++ 2603, 2604, 2608, 2634, 2635, 2636, 2637, 2641, 2642, 2646, ++ 2647, 2652, 2655, 2682, 2681, 2745, 2761, 2760, 2814, 2840, ++ 2840, 2863, 2864, 2869, 2871, 2876, 2899, 2912, 2916, 2933, ++ 2934, 2938, 2942, 2951, 2958, 2965, 2975, 2989, 3012, 3018, ++ 3019, 3025, 3028, 3032, 3040, 3060, 3062, 3080, 3086, 3088, ++ 3090, 3092, 3094, 3096, 3098, 3100, 3102, 3104, 3106, 3108, ++ 3113, 3127, 3142, 3160, 3161, 3165, 3166, 3167, 3168, 3169, ++ 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3182, 3181, ++ 3188, 3188, 3243, 3242, 3271, 3271, 3285, 3338, 3381, 3402, ++ 3401, 3423, 3442, 3444, 3445, 3449, 3469, 3492, 3494, 3510, ++ 3492, 3529, 3531, 3532, 3536, 3537, 3542, 3548, 3541, 3569, ++ 3568, 3584, 3585, 3589, 3590, 3595, 3599, 3594, 3620, 3624, ++ 3619, 3643, 3653, 3658, 3657, 3693, 3694, 3699, 3698, 3731, ++ 3731, 3746, 3745, 3781, 3793, 3795, 3792, 3822, 3821, 3842, ++ 3844, 3849, 3851, 3853, 3870, 3875, 3881, 3888, 3889, 3897, ++ 3903, 3912, 3918, 3924, 3925, 3929, 3929, 3934, 3935, 3936, ++ 3940, 3941, 3942, 3946, 3950, 3951, 3952, 3956, 3957, 3958, ++ 3959, 3960, 3961, 3962, 3963, 3967, 3971, 3972, 3973, 3977, ++ 3978, 3979, 3980, 3981, 3985, 3989, 3990, 3991, 3995, 3996, ++ 3997, 3998, 3999, 4000, 4001, 4005, 4009, 4010, 4011, 4015, ++ 4016, 4017, 4022, 4030, 4038, 4046, 4058, 4070, 4075, 4080, ++ 4088, 4096, 4104, 4112, 4120, 4128, 4136, 4149, 4162, 4175, ++ 4177, 4181, 4186, 4199, 4200, 4251, 4252, 4255, 4269, 4287, ++ 4286, 4295, 4293, 4300, 4302, 4301, 4305, 4304, 4310, 4347, ++ 4348, 4353, 4352, 4371, 4390, 4389, 4406, 4410, 4418, 4417, ++ 4420, 4422, 4424, 4426, 4431, 4432, 4438, 4439, 4456, 4457, ++ 4461, 4462, 4466, 4485, 4495, 4506, 4515, 4516, 4532, 4534, ++ 4533, 4538, 4536, 4547, 4548, 4552, 4570, 4586, 4587, 4603, ++ 4618, 4640, 4641, 4646, 4645, 4669, 4681, 4703, 4702, 4720, ++ 4719, 4739, 4761, 4765, 4794, 4806, 4807, 4812, 4823, 4811, ++ 4848, 4849, 4853, 4866, 4887, 4900, 4926, 4927, 4932, 4931, ++ 4968, 4977, 4978, 4982, 4983, 4987, 4989, 4995, 5001, 5003, ++ 5005, 5007, 5009, 5011, 5021, 5036, 5020, 5050, 5051, 5055, ++ 5056, 5060, 5061, 5065, 5066, 5070, 5071, 5075, 5076, 5080, ++ 5084, 5085, 5088, 5090, 5094, 5095, 5099, 5100, 5101, 5105, ++ 5110, 5115, 5120, 5125, 5130, 5135, 5140, 5155, 5161, 5166, ++ 5171, 5176, 5181, 5187, 5186, 5212, 5213, 5214, 5219, 5224, ++ 5229, 5231, 5233, 5235, 5241, 5246, 5251, 5257, 5263, 5269, ++ 5278, 5296, 5313, 5336, 5350, 5351, 5352, 5353, 5354, 5355, ++ 5356, 5360, 5361, 5362, 5366, 5367, 5371, 5372, 5373, 5374, ++ 5379, 5386, 5387, 5391, 5392, 5396, 5397, 5405, 5404, 5413, ++ 5411, 5421, 5419, 5429, 5427, 5435, 5454, 5460, 5462, 5466, ++ 5470, 5471, 5475, 5480, 5479, 5505, 5508, 5507, 5517, 5519, ++ 5524, 5527, 5531, 5538, 5539, 5543, 5544, 5548, 5554, 5560, ++ 5564, 5580, 5596, 5597, 5598, 5599, 5604, 5608, 5613, 5618, ++ 5622, 5627, 5632, 5638, 5643, 5649, 5653, 5658, 5663, 5681, ++ 5683, 5685, 5698, 5700, 5705, 5710, 5722, 5727, 5732, 5737, ++ 5739, 5741, 5743, 5745, 5747, 5749, 5751, 5754, 5753, 5758, ++ 5757, 5761, 5763, 5772, 5773, 5774, 5780, 5781, 5782, 5783, ++ 5784, 5788, 5792, 5793, 5797, 5798, 5802, 5803, 5804, 5805, ++ 5806, 5810, 5811, 5812, 5813, 5814, 5818, 5823, 5825, 5831, ++ 5832, 5834, 5839, 5848, 5849, 5853, 5854, 5858, 5859, 5860, ++ 5864, 5865, 5866, 5867, 5870, 5871, 5875, 5876, 5880, 5881, ++ 5885, 5886, 5890, 5891, 5892, 5893, 5900, 5901, 5907, 5913, ++ 5919, 5925, 5926, 5939, 5945, 5951, 5957, 5966, 5987, 5993, ++ 5998, 5999, 6003, 6004, 6008, 6016, 6020, 6021, 6025, 6026, ++ 6030, 6039, 6043, 6044, 6048, 6059, 6060, 6064, 6065, 6069, ++ 6070, 6075, 6076, 6080, 6087, 6096, 6104, 6115, 6116, 6117, ++ 6118, 6119, 6120, 6125, 6133, 6134, 6138, 6140, 6144, 6156, ++ 6157, 6161, 6168, 6181, 6182, 6184, 6186, 6192, 6197, 6203, ++ 6209, 6216, 6226, 6227, 6228, 6229, 6230, 6234, 6238, 6239, ++ 6243, 6244, 6248, 6249, 6253, 6254, 6255, 6259, 6260, 6264, ++ 6268, 6281, 6293, 6294, 6298, 6299, 6303, 6304, 6308, 6309, ++ 6313, 6314, 6318, 6319, 6323, 6324, 6328, 6329, 6333, 6335, ++ 6336, 6342, 6348, 6354, 6362, 6363, 6367, 6371, 6372, 6385, ++ 6386, 6387, 6391, 6392, 6396, 6402, 6416, 6417, 6421, 6422, ++ 6426, 6427, 6435, 6434, 6471, 6470, 6484, 6496, 6495, 6514, ++ 6513, 6532, 6531, 6550, 6544, 6564, 6563, 6596, 6601, 6606, ++ 6611, 6616, 6626, 6627, 6628, 6629, 6633, 6634, 6646, 6647, ++ 6651, 6652, 6655, 6657, 6658, 6659, 6661, 6663, 6664, 6673, ++ 6674, 6678, 6687, 6685, 6698, 6711, 6710, 6723, 6721, 6734, ++ 6741, 6751, 6755, 6762, 6766, 6771, 6770, 6786, 6788, 6793, ++ 6801, 6800, 6816, 6820, 6819, 6831, 6832, 6836, 6851, 6852, ++ 6856, 6865, 6869, 6874, 6879, 6878, 6890, 6901, 6889, 6917, ++ 6926, 6930, 6939, 6948, 6954, 6960, 6969, 6978, 6997, 7017, ++ 7027, 7031, 7039, 7040, 7044, 7045, 7049, 7049, 7052, 7054, ++ 7058, 7059, 7063, 7064, 7068, 7069, 7070, 7074, 7075, 7076, ++ 7080, 7081, 7082, 7083, 7092, 7091, 7100, 7108, 7107, 7115, ++ 7124, 7133, 7134, 7141, 7141, 7147, 7148, 7152, 7153, 7154, ++ 7158, 7159, 7175, 7176, 7181, 7180, 7192, 7193, 7194, 7198, ++ 7199, 7199, 7204, 7203, 7224, 7225, 7229, 7230, 7234, 7235, ++ 7236, 7240, 7241, 7246, 7245, 7266, 7274, 7275, 7275, 7279, ++ 7278, 7304, 7305, 7309, 7310, 7314, 7315, 7316, 7317, 7318, ++ 7319, 7323, 7324, 7329, 7328, 7349, 7350, 7351, 7356, 7355, ++ 7361, 7368, 7373, 7381, 7382, 7386, 7400, 7399, 7412, 7413, ++ 7417, 7418, 7422, 7432, 7442, 7443, 7448, 7447, 7458, 7459, ++ 7463, 7464, 7468, 7478, 7489, 7488, 7496, 7496, 7505, 7506, ++ 7511, 7512, 7521, 7530, 7531, 7535, 7540, 7545, 7550, 7555, ++ 7554, 7574, 7582, 7574, 7589, 7590, 7591, 7592, 7593, 7597, ++ 7604, 7611, 7613, 7624, 7625, 7629, 7630, 7658, 7688, 7690, ++ 7696, 7706, 7707, 7708, 7722, 7727, 7752, 7758, 7764, 7765, ++ 7766, 7767, 7768, 7772, 7773, 7774, 7778, 7779, 7784, 7835, ++ 7842, 7885, 7891, 7897, 7903, 7909, 7915, 7921, 7927, 7931, ++ 7937, 7943, 7949, 7955, 7961, 7965, 7971, 7980, 7986, 7994, ++ 8000, 8010, 8016, 8025, 8035, 8041, 8051, 8057, 8066, 8070, ++ 8076, 8082, 8088, 8094, 8100, 8106, 8112, 8118, 8124, 8130, ++ 8136, 8142, 8148, 8154, 8158, 8159, 8163, 8164, 8168, 8169, ++ 8173, 8174, 8178, 8179, 8180, 8181, 8182, 8183, 8187, 8188, ++ 8193, 8199, 8203, 8210, 8217, 8224, 8231, 8238, 8243, 8249, ++ 8256, 8263, 8271, 8282, 8304, 8311, 8319, 8320, 8321, 8322, ++ 8323, 8324, 8335, 8336, 8337, 8338, 8339, 8345, 8349, 8355, ++ 8361, 8367, 8373, 8375, 8382, 8389, 8395, 8397, 8406, 8413, ++ 8421, 8427, 8434, 8440, 8454, 8461, 8477, 8483, 8489, 8497, ++ 8503, 8509, 8515, 8521, 8535, 8546, 8552, 8558, 8564, 8570, ++ 8576, 8582, 8588, 8594, 8600, 8606, 8612, 8618, 8624, 8630, ++ 8636, 8642, 8650, 8671, 8678, 8684, 8691, 8698, 8705, 8712, ++ 8718, 8724, 8731, 8737, 8744, 8750, 8756, 8762, 8768, 8774, ++ 8792, 8798, 8804, 8811, 8818, 8826, 8833, 8840, 8847, 8854, ++ 8861, 8878, 8884, 8890, 8896, 8902, 8909, 8915, 8921, 8927, ++ 8933, 8939, 8950, 8956, 8962, 8968, 8974, 8985, 8991, 9007, ++ 9013, 9020, 9027, 9034, 9041, 9048, 9052, 9072, 9071, 9143, ++ 9184, 9186, 9191, 9192, 9196, 9197, 9201, 9202, 9206, 9213, ++ 9221, 9248, 9254, 9260, 9266, 9272, 9278, 9287, 9294, 9296, ++ 9293, 9303, 9314, 9320, 9326, 9332, 9338, 9344, 9350, 9356, ++ 9362, 9369, 9368, 9388, 9387, 9402, 9412, 9420, 9436, 9437, ++ 9442, 9447, 9450, 9453, 9452, 9469, 9471, 9477, 9476, 9493, ++ 9495, 9497, 9499, 9501, 9503, 9505, 9507, 9509, 9511, 9517, ++ 9523, 9526, 9525, 9531, 9532, 9536, 9543, 9551, 9552, 9556, ++ 9563, 9571, 9572, 9576, 9577, 9581, 9589, 9600, 9601, 9613, ++ 9624, 9625, 9631, 9632, 9652, 9654, 9658, 9656, 9673, 9671, ++ 9689, 9687, 9694, 9703, 9701, 9719, 9718, 9728, 9739, 9737, ++ 9756, 9755, 9766, 9777, 9778, 9779, 9791, 9791, 9805, 9845, ++ 9930, 9941, 9946, 9938, 9965, 9985, 9993, 9985, 10002, 10001, ++ 10024, 10041, 10024, 10048, 10052, 10078, 10079, 10084, 10087, 10088, ++ 10089, 10093, 10094, 10099, 10098, 10104, 10103, 10111, 10112, 10115, ++ 10117, 10117, 10121, 10121, 10126, 10127, 10131, 10133, 10138, 10139, ++ 10143, 10154, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, ++ 10175, 10176, 10177, 10178, 10182, 10183, 10184, 10185, 10186, 10187, ++ 10188, 10189, 10190, 10194, 10195, 10196, 10197, 10200, 10202, 10203, ++ 10207, 10208, 10216, 10218, 10222, 10224, 10223, 10237, 10240, 10239, ++ 10254, 10260, 10274, 10276, 10280, 10282, 10287, 10288, 10308, 10333, ++ 10337, 10338, 10342, 10354, 10356, 10361, 10360, 10395, 10397, 10402, ++ 10403, 10404, 10409, 10416, 10420, 10421, 10425, 10429, 10433, 10440, ++ 10447, 10454, 10464, 10497, 10501, 10507, 10513, 10522, 10530, 10534, ++ 10541, 10542, 10546, 10547, 10548, 10552, 10553, 10554, 10555, 10556, ++ 10557, 10561, 10562, 10563, 10564, 10565, 10569, 10570, 10571, 10572, ++ 10573, 10577, 10578, 10579, 10580, 10581, 10585, 10590, 10591, 10595, ++ 10596, 10599, 10602, 10601, 10644, 10645, 10649, 10650, 10654, 10664, ++ 10664, 10674, 10675, 10679, 10698, 10731, 10730, 10743, 10751, 10742, ++ 10753, 10765, 10777, 10776, 10794, 10793, 10804, 10804, 10820, 10827, ++ 10849, 10869, 10881, 10886, 10885, 10895, 10901, 10908, 10913, 10918, ++ 10928, 10929, 10933, 10944, 10945, 10949, 10960, 10961, 10965, 10966, ++ 10974, 10982, 10973, 10992, 10999, 10991, 11009, 11017, 11018, 11026, ++ 11030, 11031, 11042, 11043, 11047, 11056, 11057, 11058, 11060, 11059, ++ 11070, 11071, 11075, 11076, 11078, 11077, 11081, 11080, 11086, 11087, ++ 11091, 11092, 11096, 11106, 11107, 11111, 11112, 11117, 11116, 11130, ++ 11131, 11135, 11140, 11148, 11149, 11157, 11159, 11159, 11167, 11175, ++ 11166, 11197, 11198, 11202, 11210, 11211, 11215, 11225, 11226, 11233, ++ 11232, 11248, 11247, 11259, 11258, 11270, 11269, 11283, 11284, 11288, ++ 11301, 11317, 11318, 11322, 11323, 11327, 11328, 11329, 11334, 11333, ++ 11354, 11356, 11359, 11361, 11364, 11365, 11368, 11372, 11376, 11380, ++ 11384, 11388, 11392, 11396, 11400, 11408, 11411, 11421, 11420, 11435, ++ 11442, 11450, 11458, 11466, 11474, 11482, 11489, 11491, 11493, 11502, ++ 11506, 11511, 11510, 11516, 11515, 11520, 11529, 11536, 11545, 11554, ++ 11559, 11561, 11563, 11565, 11567, 11569, 11576, 11584, 11586, 11594, ++ 11601, 11608, 11618, 11625, 11631, 11639, 11647, 11651, 11655, 11662, ++ 11669, 11676, 11683, 11690, 11697, 11703, 11710, 11717, 11722, 11727, ++ 11735, 11737, 11739, 11744, 11745, 11748, 11750, 11754, 11755, 11759, ++ 11760, 11764, 11765, 11769, 11770, 11774, 11775, 11778, 11780, 11787, ++ 11798, 11797, 11813, 11812, 11822, 11823, 11827, 11828, 11829, 11833, ++ 11834, 11835, 11850, 11849, 11862, 11871, 11861, 11873, 11877, 11878, ++ 11892, 11893, 11898, 11900, 11902, 11904, 11906, 11908, 11910, 11912, ++ 11914, 11916, 11918, 11920, 11925, 11927, 11929, 11931, 11933, 11935, ++ 11937, 11942, 11943, 11947, 11948, 11952, 11951, 11961, 11962, 11966, ++ 11966, 11968, 11969, 11973, 11974, 11979, 11978, 11989, 11993, 11997, ++ 12010, 12009, 12023, 12024, 12025, 12028, 12029, 12030, 12034, 12039, ++ 12049, 12061, 12072, 12082, 12092, 12060, 12100, 12101, 12105, 12106, ++ 12110, 12111, 12119, 12123, 12124, 12125, 12128, 12130, 12134, 12135, ++ 12139, 12144, 12151, 12156, 12163, 12165, 12169, 12170, 12174, 12179, ++ 12187, 12188, 12191, 12193, 12201, 12203, 12207, 12208, 12209, 12213, ++ 12215, 12220, 12221, 12230, 12231, 12235, 12236, 12240, 12253, 12276, ++ 12288, 12299, 12318, 12326, 12338, 12346, 12361, 12381, 12382, 12383, ++ 12391, 12392, 12393, 12400, 12406, 12412, 12418, 12424, 12430, 12459, ++ 12487, 12488, 12489, 12493, 12503, 12513, 12519, 12528, 12543, 12544, ++ 12548, 12557, 12572, 12576, 12622, 12626, 12643, 12647, 12725, 12749, ++ 12779, 12780, 12796, 12806, 12810, 12816, 12822, 12832, 12838, 12847, ++ 12857, 12858, 12886, 12900, 12914, 12929, 12930, 12940, 12941, 12951, ++ 12952, 12953, 12957, 12973, 12994, 13009, 13010, 13011, 13012, 13013, ++ 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, ++ 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, ++ 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, ++ 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, ++ 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, ++ 13064, 13065, 13066, 13067, 13077, 13078, 13079, 13080, 13081, 13082, ++ 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, ++ 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, ++ 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, ++ 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, ++ 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, ++ 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, ++ 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, ++ 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, ++ 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, ++ 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, ++ 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, ++ 13193, 13194, 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, ++ 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, ++ 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, ++ 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, ++ 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, ++ 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, ++ 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, ++ 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, ++ 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, ++ 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, ++ 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, ++ 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311, 13312, ++ 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, ++ 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, ++ 13333, 13334, 13335, 13336, 13337, 13338, 13339, 13340, 13341, 13342, ++ 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, ++ 13353, 13354, 13355, 13356, 13357, 13358, 13359, 13360, 13361, 13362, ++ 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13376, 13375, 13390, ++ 13391, 13395, 13396, 13400, 13400, 13480, 13481, 13482, 13483, 13487, ++ 13488, 13492, 13493, 13494, 13495, 13499, 13500, 13501, 13502, 13506, ++ 13507, 13511, 13552, 13570, 13581, 13593, 13606, 13621, 13640, 13666, ++ 13679, 13705, 13748, 13762, 13763, 13764, 13765, 13769, 13770, 13779, ++ 13791, 13792, 13793, 13799, 13805, 13817, 13816, 13832, 13833, 13837, ++ 13838, 13842, 13857, 13858, 13859, 13864, 13865, 13870, 13869, 13889, ++ 13901, 13914, 13913, 13947, 13948, 13952, 13953, 13957, 13958, 13959, ++ 13960, 13962, 13961, 13974, 13975, 13976, 13977, 13978, 13984, 13989, ++ 13995, 14006, 14017, 14021, 14031, 14036, 14043, 14055, 14067, 14076, ++ 14078, 14082, 14083, 14090, 14092, 14096, 14097, 14102, 14101, 14105, ++ 14104, 14108, 14107, 14111, 14110, 14113, 14114, 14115, 14116, 14117, ++ 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, ++ 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, ++ 14138, 14142, 14143, 14147, 14148, 14152, 14162, 14172, 14185, 14200, ++ 14213, 14226, 14238, 14243, 14251, 14256, 14263, 14263, 14264, 14264, ++ 14267, 14294, 14299, 14305, 14311, 14317, 14321, 14325, 14326, 14330, ++ 14357, 14359, 14363, 14367, 14371, 14378, 14379, 14383, 14384, 14388, ++ 14389, 14393, 14394, 14400, 14406, 14412, 14422, 14421, 14431, 14432, ++ 14437, 14438, 14439, 14444, 14445, 14446, 14450, 14451, 14455, 14467, ++ 14476, 14486, 14495, 14509, 14510, 14515, 14514, 14530, 14531, 14532, ++ 14536, 14537, 14541, 14541, 14563, 14564, 14568, 14569, 14570, 14574, ++ 14578, 14585, 14588, 14586, 14602, 14609, 14630, 14654, 14656, 14660, ++ 14661, 14665, 14666, 14674, 14675, 14676, 14677, 14683, 14689, 14699, ++ 14701, 14703, 14708, 14709, 14710, 14711, 14712, 14716, 14717, 14718, ++ 14719, 14720, 14721, 14731, 14732, 14737, 14750, 14763, 14765, 14767, ++ 14772, 14777, 14779, 14781, 14787, 14788, 14790, 14796, 14795, 14812, ++ 14813, 14817, 14822, 14830, 14830, 14854, 14855, 14860, 14861, 14863, ++ 14865, 14883, 14889, 14894, 14876, 14955, 14972, 14996, 15027, 15031, ++ 15040, 15063, 14992, 15126, 15150, 15159, 15166, 15125, 15186, 15190, ++ 15194, 15198, 15202, 15206, 15213, 15220, 15227, 15237, 15238, 15242, ++ 15243, 15244, 15248, 15249, 15254, 15256, 15255, 15261, 15262, 15266, ++ 15273, 15283, 15289, 15300 ++}; ++#endif ++ ++#if YYDEBUG || YYERROR_VERBOSE || 0 ++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. ++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */ ++static const char *const yytname[] = ++{ ++ "$end", "error", "$undefined", "ABORT_SYM", "ACCESSIBLE_SYM", "ACTION", ++ "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM", ++ "ALGORITHM_SYM", "ALL", "ALTER", "ALWAYS_SYM", "ANALYZE_SYM", ++ "AND_AND_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASCII_SYM", ++ "ASENSITIVE_SYM", "AT_SYM", "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM", ++ "AUTO_INC", "AVG_ROW_LENGTH", "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM", ++ "BEGIN_SYM", "BETWEEN_SYM", "BIGINT", "BINARY", "BINLOG_SYM", "BIN_NUM", ++ "BIT_AND", "BIT_OR", "BIT_SYM", "BIT_XOR", "BLOB_SYM", "BLOCK_SYM", ++ "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "BYTE_SYM", ++ "CACHE_SYM", "CALL_SYM", "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", ++ "CATALOG_NAME_SYM", "CHAIN_SYM", "CHANGE", "CHANGED", "CHARSET", ++ "CHAR_SYM", "CHECKPOINT_SYM", "CHECKSUM_SYM", "CHECK_SYM", "CIPHER_SYM", ++ "CLASS_ORIGIN_SYM", "CLIENT_SYM", "CLIENT_STATS_SYM", "CLOSE_SYM", ++ "COALESCE", "CODE_SYM", "COLLATE_SYM", "COLLATION_SYM", "COLUMNS", ++ "COLUMN_ADD_SYM", "COLUMN_CREATE_SYM", "COLUMN_DELETE_SYM", ++ "COLUMN_EXISTS_SYM", "COLUMN_GET_SYM", "COLUMN_LIST_SYM", "COLUMN_SYM", ++ "COLUMN_NAME_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM", ++ "COMPACT_SYM", "COMPLETION_SYM", "COMPRESSED_SYM", "CONCURRENT", ++ "CONDITION_SYM", "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", ++ "CONSTRAINT_CATALOG_SYM", "CONSTRAINT_NAME_SYM", "CONSTRAINT_SCHEMA_SYM", ++ "CONTAINS_SYM", "CONTEXT_SYM", "CONTINUE_SYM", "CONTRIBUTORS_SYM", ++ "CONVERT_SYM", "COUNT_SYM", "CPU_SYM", "CREATE", "CROSS", "CUBE_SYM", ++ "CURDATE", "CURRENT_USER", "CURSOR_SYM", "CURSOR_NAME_SYM", "CURTIME", ++ "DATABASE", "DATABASES", "DATAFILE_SYM", "DATA_SYM", "DATETIME", ++ "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DATE_SYM", "DAY_HOUR_SYM", ++ "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DAY_SYM", ++ "DEALLOCATE_SYM", "DECIMAL_NUM", "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", ++ "DEFINER_SYM", "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DELETE_SYM", ++ "DESC", "DESCRIBE", "DES_KEY_FILE", "DETERMINISTIC_SYM", "DIRECTORY_SYM", ++ "DISABLE_SYM", "DISCARD", "DISK_SYM", "DISTINCT", "DIV_SYM", ++ "DOUBLE_SYM", "DO_SYM", "DROP", "DUAL_SYM", "DUMPFILE", "DUPLICATE_SYM", ++ "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ELSEIF_SYM", "ENABLE_SYM", ++ "ENCLOSED", "END", "ENDS_SYM", "END_OF_INPUT", "ENGINES_SYM", ++ "ENGINE_SYM", "ENUM", "EQUAL_SYM", "ERROR_SYM", "ERRORS", "ESCAPED", ++ "ESCAPE_SYM", "EVENTS_SYM", "EVENT_SYM", "EVERY_SYM", "EXAMINED_SYM", ++ "EXECUTE_SYM", "EXISTS", "EXIT_SYM", "EXPANSION_SYM", "EXTENDED_SYM", ++ "EXTENT_SIZE_SYM", "EXTRACT_SYM", "FALSE_SYM", "FAST_SYM", "FAULTS_SYM", ++ "FETCH_SYM", "FILE_SYM", "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", ++ "FLOAT_SYM", "FLUSH_SYM", "FORCE_SYM", "FOREIGN", "FOR_SYM", "FOUND_SYM", ++ "FROM", "FULL", "FULLTEXT_SYM", "FUNCTION_SYM", "GE", "GENERAL", ++ "GENERATED_SYM", "GEOMETRYCOLLECTION", "GEOMETRY_SYM", "GET_FORMAT", ++ "GLOBAL_SYM", "GRANT", "GRANTS", "GROUP_SYM", "GROUP_CONCAT_SYM", ++ "HANDLER_SYM", "HARD_SYM", "HASH_SYM", "HAVING", "HELP_SYM", "HEX_NUM", ++ "HEX_STRING", "HIGH_PRIORITY", "HOST_SYM", "HOSTS_SYM", ++ "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM", "HOUR_SECOND_SYM", "HOUR_SYM", ++ "IDENT", "IDENTIFIED_SYM", "IDENT_QUOTED", "IF", "IGNORE_SYM", ++ "IGNORE_SERVER_IDS_SYM", "IMPORT", "INDEXES", "INDEX_SYM", ++ "INDEX_STATS_SYM", "INFILE", "INITIAL_SIZE_SYM", "INNER_SYM", ++ "INOUT_SYM", "INSENSITIVE_SYM", "INSERT", "INSERT_METHOD", "INSTALL_SYM", ++ "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", "IN_SYM", "IO_SYM", ++ "IPC_SYM", "IS", "ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "JOIN_SYM", ++ "KEYS", "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LANGUAGE_SYM", ++ "LAST_SYM", "LAST_VALUE", "LE", "LEADING", "LEAVES", "LEAVE_SYM", "LEFT", ++ "LESS_SYM", "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINEAR_SYM", ++ "LINES", "LINESTRING", "LIST_SYM", "LOAD", "LOCAL_SYM", "LOCATOR_SYM", ++ "LOCKS_SYM", "LOCK_SYM", "LOGFILE_SYM", "LOGS_SYM", "LONGBLOB", ++ "LONGTEXT", "LONG_NUM", "LONG_SYM", "LOOP_SYM", "LOW_PRIORITY", ++ "MASTER_CONNECT_RETRY_SYM", "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM", ++ "MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM", ++ "MASTER_SERVER_ID_SYM", "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM", ++ "MASTER_SSL_CERT_SYM", "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM", ++ "MASTER_SSL_SYM", "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MASTER_SYM", ++ "MASTER_USER_SYM", "MASTER_HEARTBEAT_PERIOD_SYM", "MATCH", ++ "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_ROWS", ++ "MAX_SIZE_SYM", "MAX_SYM", "MAX_UPDATES_PER_HOUR", ++ "MAX_USER_CONNECTIONS_SYM", "MAX_VALUE_SYM", "MEDIUMBLOB", "MEDIUMINT", ++ "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM", "MERGE_SYM", ++ "MESSAGE_TEXT_SYM", "MICROSECOND_SYM", "MIGRATE_SYM", ++ "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_ROWS", ++ "MIN_SYM", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM", ++ "MONTH_SYM", "MULTILINESTRING", "MULTIPOINT", "MULTIPOLYGON", ++ "MUTEX_SYM", "MYSQL_SYM", "MYSQL_ERRNO_SYM", "NAMES_SYM", "NAME_SYM", ++ "NATIONAL_SYM", "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM", ++ "NE", "NEG", "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM", ++ "NOT2_SYM", "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM", ++ "NO_WRITE_TO_BINLOG", "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM", ++ "OFFSET_SYM", "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM", ++ "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION", ++ "OPTIONALLY", "OR2_SYM", "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", ++ "OUTFILE", "OUT_SYM", "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", ++ "PAGE_CHECKSUM_SYM", "PARAM_MARKER", "PARSER_SYM", "PARSE_VCOL_EXPR_SYM", ++ "PARTIAL", "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM", ++ "PASSWORD", "PERSISTENT_SYM", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", ++ "POINT_SYM", "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION", ++ "PREPARE_SYM", "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", ++ "PROCEDURE_SYM", "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM", ++ "PROFILES_SYM", "PROXY_SYM", "PURGE", "QUARTER_SYM", "QUERY_SYM", ++ "QUICK", "RANGE_SYM", "READS_SYM", "READ_ONLY_SYM", "READ_SYM", ++ "READ_WRITE_SYM", "REAL", "REBUILD_SYM", "RECOVER_SYM", "REDOFILE_SYM", ++ "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM", "REFERENCES", "REGEXP", "RELAY", ++ "RELAYLOG_SYM", "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM", ++ "RELAY_THREAD", "RELEASE_SYM", "RELOAD", "REMOVE_SYM", "RENAME", ++ "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", ++ "REPLICATION", "REQUIRE_SYM", "RESET_SYM", "RESIGNAL_SYM", "RESOURCES", ++ "RESTORE_SYM", "RESTRICT", "RESUME_SYM", "RETURNS_SYM", "RETURN_SYM", ++ "REVOKE", "RIGHT", "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", ++ "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM", "RTREE_SYM", "SAVEPOINT_SYM", ++ "SCHEDULE_SYM", "SCHEMA_NAME_SYM", "SECOND_MICROSECOND_SYM", ++ "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM", "SENSITIVE_SYM", ++ "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM", "SESSION_SYM", ++ "SERVER_SYM", "SERVER_OPTIONS", "SET", "SET_VAR", "SHARE_SYM", ++ "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN", "SIGNAL_SYM", ++ "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SLOW", "SMALLINT", "SNAPSHOT_SYM", ++ "SOCKET_SYM", "SOFT_SYM", "SONAME_SYM", "SOUNDS_SYM", "SOURCE_SYM", ++ "SPATIAL_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM", "SQLSTATE_SYM", ++ "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_CACHE_SYM", ++ "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM", ++ "SQL_THREAD", "SSL_SYM", "STARTING", "STARTS_SYM", "START_SYM", ++ "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM", "STORAGE_SYM", ++ "STRAIGHT_JOIN", "STRING_SYM", "SUBCLASS_ORIGIN_SYM", "SUBDATE_SYM", ++ "SUBJECT_SYM", "SUBPARTITIONS_SYM", "SUBPARTITION_SYM", "SUBSTRING", ++ "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM", "SWITCHES_SYM", ++ "SYSDATE", "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", ++ "TABLE_STATS_SYM", "TABLE_SYM", "TABLE_CHECKSUM_SYM", "TABLE_NAME_SYM", ++ "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", ++ "THAN_SYM", "THEN_SYM", "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", ++ "TIME_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING", ++ "TRANSACTION_SYM", "TRANSACTIONAL_SYM", "TRIGGERS_SYM", "TRIGGER_SYM", ++ "TRIM", "TRUE_SYM", "TRUNCATE_SYM", "TYPES_SYM", "TYPE_SYM", ++ "UDF_RETURNS_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM", ++ "UNDERSCORE_CHARSET", "UNDOFILE_SYM", "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM", ++ "UNICODE_SYM", "UNINSTALL_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", ++ "UNLOCK_SYM", "UNSIGNED", "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM", ++ "USAGE", "USER", "USER_STATS_SYM", "USE_FRM", "USE_SYM", "USING", ++ "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM", "VALUES", ++ "VALUE_SYM", "VARBINARY", "VARCHAR", "VARIABLES", "VARIANCE_SYM", ++ "VARYING", "VAR_SAMP_SYM", "VIA_SYM", "VIEW_SYM", "VIRTUAL_SYM", ++ "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE", "WHILE_SYM", ++ "WITH", "WITH_CUBE_SYM", "WITH_ROLLUP_SYM", "WORK_SYM", "WRAPPER_SYM", ++ "WRITE_SYM", "X509_SYM", "XA_SYM", "XML_SYM", "XOR", "YEAR_MONTH_SYM", ++ "YEAR_SYM", "ZEROFILL", "IMPOSSIBLE_ACTION", "'='", "'>'", "'<'", "'|'", ++ "'&'", "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "'('", "')'", ++ "','", "'!'", "'{'", "'}'", "';'", "'@'", "'.'", "':'", "$accept", ++ "query", "$@1", "opt_end_of_input", "verb_clause", "statement", ++ "deallocate", "deallocate_or_drop", "prepare", "prepare_src", "execute", ++ "$@2", "execute_using", "execute_var_list", "execute_var_ident", "help", ++ "$@3", "change", "$@4", "master_defs", "master_def", ++ "ignore_server_id_list", "ignore_server_id", "master_file_def", "create", ++ "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "server_def", ++ "server_options_list", "server_option", "event_tail", "$@11", ++ "ev_schedule_time", "$@12", "opt_ev_status", "ev_starts", "ev_ends", ++ "opt_ev_on_completion", "ev_on_completion", "opt_ev_comment", ++ "ev_sql_stmt", "$@13", "ev_sql_stmt_inner", "clear_privileges", ++ "sp_name", "sp_a_chistics", "sp_c_chistics", "sp_chistic", ++ "sp_c_chistic", "sp_suid", "call", "$@14", "opt_sp_cparam_list", ++ "opt_sp_cparams", "sp_cparams", "sp_fdparam_list", "sp_fdparams", ++ "sp_init_param", "sp_fdparam", "sp_pdparam_list", "sp_pdparams", ++ "sp_pdparam", "sp_opt_inout", "sp_proc_stmts", "sp_proc_stmts1", ++ "sp_decls", "sp_decl", "$@15", "$@16", "sp_cursor_stmt", "$@17", ++ "sp_handler_type", "sp_hcond_list", "sp_hcond_element", "sp_cond", ++ "sqlstate", "opt_value", "sp_hcond", "signal_stmt", "signal_value", ++ "opt_signal_value", "opt_set_signal_information", ++ "signal_information_item_list", "signal_allowed_expr", ++ "signal_condition_information_item_name", "resignal_stmt", ++ "sp_decl_idents", "sp_opt_default", "sp_proc_stmt", "sp_proc_stmt_if", ++ "$@18", "sp_proc_stmt_statement", "$@19", "sp_proc_stmt_return", "$@20", ++ "sp_proc_stmt_unlabeled", "$@21", "sp_proc_stmt_leave", ++ "sp_proc_stmt_iterate", "sp_proc_stmt_open", "sp_proc_stmt_fetch", ++ "$@22", "sp_proc_stmt_close", "sp_opt_fetch_noise", "sp_fetch_list", ++ "sp_if", "$@23", "$@24", "$@25", "sp_elseifs", "case_stmt_specification", ++ "simple_case_stmt", "$@26", "$@27", "searched_case_stmt", "$@28", ++ "simple_when_clause_list", "searched_when_clause_list", ++ "simple_when_clause", "$@29", "$@30", "searched_when_clause", "$@31", ++ "$@32", "else_clause_opt", "sp_labeled_control", "$@33", "sp_opt_label", ++ "sp_labeled_block", "$@34", "sp_unlabeled_block", "$@35", ++ "sp_block_content", "$@36", "sp_unlabeled_control", "$@37", "$@38", ++ "$@39", "trg_action_time", "trg_event", "change_tablespace_access", ++ "change_tablespace_info", "tablespace_info", "opt_logfile_group_name", ++ "alter_tablespace_info", "logfile_group_info", ++ "alter_logfile_group_info", "add_log_file", "change_ts_option_list", ++ "$@40", "change_ts_options", "change_ts_option", ++ "tablespace_option_list", "tablespace_options", "tablespace_option", ++ "alter_tablespace_option_list", "alter_tablespace_options", ++ "alter_tablespace_option", "logfile_group_option_list", ++ "logfile_group_options", "logfile_group_option", ++ "alter_logfile_group_option_list", "alter_logfile_group_options", ++ "alter_logfile_group_option", "ts_datafile", "lg_undofile", ++ "lg_redofile", "tablespace_name", "logfile_group_name", "ts_access_mode", ++ "opt_ts_initial_size", "opt_ts_autoextend_size", "opt_ts_max_size", ++ "opt_ts_extent_size", "opt_ts_undo_buffer_size", ++ "opt_ts_redo_buffer_size", "opt_ts_nodegroup", "opt_ts_comment", ++ "opt_ts_engine", "opt_ts_wait", "ts_wait", "size_number", "create2", ++ "create2a", "$@41", "$@42", "create3", "$@43", "$@44", ++ "opt_create_partitioning", "opt_partitioning", "partitioning", "$@45", ++ "have_partitioning", "partition_entry", "$@46", "partition", ++ "part_type_def", "$@47", "opt_linear", "opt_key_algo", "part_field_list", ++ "part_field_item_list", "part_field_item", "part_column_list", ++ "part_func", "sub_part_func", "opt_num_parts", "opt_sub_part", "$@48", ++ "$@49", "sub_part_field_list", "sub_part_field_item", "part_func_expr", ++ "opt_num_subparts", "part_defs", "part_def_list", "part_definition", ++ "$@50", "part_name", "opt_part_values", "$@51", "$@52", "part_func_max", ++ "part_values_in", "part_value_list", "part_value_item", "$@53", "$@54", ++ "part_value_item_list", "part_value_expr_item", "opt_sub_partition", ++ "sub_part_list", "sub_part_definition", "$@55", "sub_name", ++ "opt_part_options", "opt_part_option_list", "opt_part_option", ++ "create_select", "$@56", "$@57", "opt_as", "opt_create_database_options", ++ "create_database_options", "create_database_option", "opt_table_options", ++ "table_options", "table_option", "opt_if_not_exists", ++ "opt_create_table_options", "create_table_options_space_separated", ++ "create_table_options", "create_table_option", "$@58", "default_charset", ++ "default_collation", "storage_engines", "known_storage_engines", ++ "row_types", "merge_insert_types", "opt_select_from", "udf_type", ++ "create_field_list", "field_list", "field_list_item", "column_def", ++ "key_def", "$@59", "$@60", "$@61", "$@62", "opt_check_constraint", ++ "check_constraint", "opt_constraint", "constraint", "field_spec", "$@63", ++ "field_def", "@64", "opt_generated_always", "vcol_opt_specifier", ++ "vcol_opt_attribute", "vcol_opt_attribute_list", "vcol_attribute", ++ "parse_vcol_expr", "virtual_column_func", "type", "$@65", "$@66", ++ "spatial_type", "char", "nchar", "varchar", "nvarchar", "int_type", ++ "real_type", "float_options", "precision", "field_options", ++ "field_opt_list", "field_option", "field_length", "opt_field_length", ++ "opt_precision", "opt_attribute", "opt_attribute_list", "attribute", ++ "type_with_opt_collate", "now_or_signed_literal", "hex_num_or_string", ++ "charset", "charset_name", "charset_name_or_default", ++ "opt_load_data_charset", "old_or_new_charset_name", ++ "old_or_new_charset_name_or_default", "collation_name", "opt_collate", ++ "collation_name_or_default", "opt_default", "ascii", "unicode", ++ "opt_binary", "opt_bin_mod", "opt_primary", "references", "opt_ref_list", ++ "ref_list", "opt_match_clause", "opt_on_update_delete", "delete_option", ++ "normal_key_type", "constraint_key_type", "key_or_index", ++ "opt_key_or_index", "keys_or_index", "opt_unique", "fulltext", "spatial", ++ "init_key_options", "key_alg", "normal_key_options", ++ "fulltext_key_options", "spatial_key_options", "normal_key_opts", ++ "spatial_key_opts", "fulltext_key_opts", "key_using_alg", "all_key_opt", ++ "normal_key_opt", "spatial_key_opt", "fulltext_key_opt", ++ "btree_or_rtree", "key_list", "key_part", "opt_ident", "opt_component", ++ "string_list", "alter", "$@67", "$@68", "$@69", "$@70", "$@71", "$@72", ++ "$@73", "ev_alter_on_schedule_completion", "opt_ev_rename_to", ++ "opt_ev_sql_stmt", "ident_or_empty", "alter_commands", "$@74", "$@75", ++ "$@76", "remove_partitioning", "all_or_alt_part_name_list", ++ "add_partition_rule", "$@77", "add_part_extra", "reorg_partition_rule", ++ "$@78", "reorg_parts_rule", "$@79", "alt_part_name_list", ++ "alt_part_name_item", "alter_list", "add_column", "alter_list_item", ++ "$@80", "$@81", "$@82", "opt_column", "opt_ignore", "alter_options", ++ "$@83", "alter_options_part2", "alter_option_list", "alter_option", ++ "opt_restrict", "opt_place", "opt_to", "slave", "$@84", "$@85", "start", ++ "start_transaction_opts", "slave_thread_opts", "$@86", ++ "slave_thread_opt_list", "slave_thread_opt", "slave_until", ++ "slave_until_opts", "checksum", "$@87", "opt_checksum_type", ++ "repair_table_or_view", "$@88", "repair", "$@89", "opt_mi_repair_type", ++ "mi_repair_types", "mi_repair_type", "opt_view_repair_type", "analyze", ++ "$@90", "binlog_base64_event", "check_view_or_table", "$@91", "check", ++ "$@92", "opt_mi_check_type", "mi_check_types", "mi_check_type", ++ "opt_view_check_type", "optimize", "$@93", "opt_no_write_to_binlog", ++ "rename", "$@94", "rename_list", "table_to_table_list", "table_to_table", ++ "keycache", "$@95", "keycache_list_or_parts", "keycache_list", ++ "assign_to_keycache", "assign_to_keycache_parts", "key_cache_name", ++ "preload", "$@96", "preload_list_or_parts", "preload_list", ++ "preload_keys", "preload_keys_parts", "adm_partition", "$@97", ++ "cache_keys_spec", "$@98", "cache_key_list_or_empty", ++ "opt_ignore_leaves", "select", "select_init", "select_paren", ++ "select_paren_derived", "select_init2", "$@99", "select_part2", "$@100", ++ "$@101", "select_into", "select_from", "select_options", ++ "select_option_list", "select_option", "select_lock_type", ++ "select_item_list", "select_item", "remember_name", "remember_end", ++ "select_alias", "opt_time_precision", "optional_braces", "expr", ++ "bool_pri", "predicate", "bit_expr", "or", "and", "not", "not2", ++ "comp_op", "all_or_any", "opt_dyncol_type", "dyncol_type", ++ "dyncall_create_element", "dyncall_create_list", "simple_expr", ++ "function_call_keyword", "function_call_nonkeyword", ++ "function_call_conflict", "geometry_function", "function_call_generic", ++ "@102", "fulltext_options", "opt_natural_language_mode", ++ "opt_query_expansion", "opt_udf_expr_list", "udf_expr_list", "udf_expr", ++ "sum_expr", "$@103", "$@104", "$@105", "variable", "$@106", ++ "variable_aux", "opt_distinct", "opt_gconcat_separator", ++ "opt_gorder_clause", "$@107", "gorder_list", "in_sum_expr", "$@108", ++ "cast_type", "$@109", "opt_expr_list", "expr_list", "ident_list_arg", ++ "ident_list", "opt_expr", "opt_else", "when_list", "table_ref", ++ "join_table_list", "esc_table_ref", "derived_table_list", "join_table", ++ "$@110", "$@111", "$@112", "$@113", "$@114", "$@115", "$@116", ++ "normal_join", "table_factor", "$@117", "select_derived_union", "$@118", ++ "$@119", "select_init2_derived", "select_part2_derived", "$@120", ++ "$@121", "select_derived", "$@122", "select_derived2", "$@123", "$@124", ++ "get_select_lex", "select_derived_init", "opt_outer", ++ "index_hint_clause", "index_hint_type", "index_hint_definition", "$@125", ++ "$@126", "index_hints_list", "opt_index_hints_list", "$@127", ++ "opt_key_definition", "$@128", "opt_key_usage_list", "key_usage_element", ++ "key_usage_list", "using_list", "interval", "interval_time_stamp", ++ "date_time_type", "table_alias", "opt_table_alias", "opt_all", ++ "where_clause", "$@129", "having_clause", "$@130", "opt_escape", ++ "group_clause", "group_list", "olap_opt", "alter_order_clause", ++ "alter_order_list", "alter_order_item", "opt_order_clause", ++ "order_clause", "$@131", "order_list", "order_dir", ++ "opt_limit_clause_init", "opt_limit_clause", "limit_clause", ++ "limit_options", "limit_option", "limit_rows_option", ++ "delete_limit_clause", "int_num", "ulong_num", "real_ulong_num", ++ "ulonglong_num", "real_ulonglong_num", "dec_num_error", "dec_num", ++ "choice", "procedure_clause", "$@132", "procedure_list", ++ "procedure_list2", "procedure_item", "select_var_list_init", "$@133", ++ "select_var_list", "select_var_ident", "into", "$@134", ++ "into_destination", "$@135", "$@136", "do", "$@137", "drop", "$@138", ++ "$@139", "$@140", "table_list", "table_name", "table_alias_ref_list", ++ "table_alias_ref", "if_exists", "opt_temporary", "insert", "$@141", ++ "$@142", "replace", "$@143", "$@144", "insert_lock_option", ++ "replace_lock_option", "insert2", "insert_table", "insert_field_spec", ++ "$@145", "fields", "insert_values", "$@146", "$@147", "values_list", ++ "ident_eq_list", "ident_eq_value", "equal", "opt_equal", "no_braces", ++ "$@148", "opt_values", "values", "expr_or_default", "opt_insert_update", ++ "$@149", "update", "$@150", "$@151", "update_list", "update_elem", ++ "insert_update_list", "insert_update_elem", "opt_low_priority", "delete", ++ "$@152", "single_multi", "$@153", "$@154", "$@155", "table_wild_list", ++ "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option", ++ "truncate", "$@156", "opt_table_sym", "opt_profile_defs", "profile_defs", ++ "profile_def", "opt_profile_args", "show", "$@157", "show_param", ++ "$@158", "$@159", "show_engine_param", "master_or_binary", "opt_storage", ++ "opt_db", "opt_full", "from_or_in", "binlog_in", "binlog_from", ++ "wild_and_where", "describe", "$@160", "$@161", "describe_command", ++ "opt_extended_describe", "opt_describe_column", "flush", "$@162", ++ "flush_options", "$@163", "$@164", "opt_with_read_lock", ++ "flush_options_list", "flush_option", "opt_table_list", ++ "optional_flush_tables_arguments", "reset", "$@165", "reset_options", ++ "reset_option", "$@166", "slave_reset_options", "purge", "$@167", ++ "purge_options", "purge_option", "kill", "$@168", "kill_type", ++ "kill_option", "kill_expr", "use", "load", "$@169", "$@170", "$@171", ++ "$@172", "data_or_xml", "opt_local", "load_data_lock", "opt_duplicate", ++ "opt_field_term", "field_term_list", "field_term", "opt_line_term", ++ "line_term_list", "line_term", "opt_xml_rows_identified_by", ++ "opt_ignore_lines", "lines_or_rows", "opt_field_or_var_spec", ++ "fields_or_vars", "field_or_var", "opt_load_data_set_spec", ++ "load_data_set_list", "load_data_set_elem", "text_literal", ++ "text_string", "param_marker", "signed_literal", "literal", ++ "NUM_literal", "insert_ident", "table_wild", "order_ident", ++ "simple_ident", "simple_ident_nospvar", "simple_ident_q", "field_ident", ++ "table_ident", "table_ident_opt_wild", "table_ident_nodb", "IDENT_sys", ++ "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem", ++ "ident", "label_ident", "ident_or_text", "user", "keyword", "keyword_sp", ++ "set", "$@173", "opt_option", "option_value_list", "option_type_value", ++ "$@174", "option_type", "option_type2", "opt_var_type", ++ "opt_var_ident_type", "ext_option_value", "sys_option_value", ++ "option_value", "internal_variable_name", "isolation_types", ++ "text_or_password", "set_expr_or_default", "lock", "$@175", ++ "table_or_tables", "table_lock_list", "table_lock", "lock_option", ++ "unlock", "$@176", "handler", "$@177", "handler_read_or_scan", ++ "handler_scan_function", "handler_rkey_function", "$@178", ++ "handler_rkey_mode", "revoke", "revoke_command", "grant", ++ "grant_command", "opt_table", "grant_privileges", "opt_privileges", ++ "object_privilege_list", "object_privilege", "$@179", "$@180", "$@181", ++ "$@182", "opt_and", "require_list", "require_list_element", ++ "grant_ident", "user_list", "grant_list", "via_or_with", "using_or_as", ++ "grant_user", "opt_column_list", "column_list", "column_list_id", ++ "require_clause", "grant_options", "opt_grant_option", ++ "grant_option_list", "grant_option", "begin", "$@183", "opt_work", ++ "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback", ++ "savepoint", "release", "union_clause", "union_list", "$@184", ++ "union_opt", "opt_union_order_or_limit", "union_order_or_limit", "$@185", ++ "order_or_limit", "union_option", "query_specification", ++ "query_expression_body", "$@186", "subselect", "subselect_start", ++ "subselect_end", "opt_query_expression_options", ++ "query_expression_option_list", "query_expression_option", ++ "view_or_trigger_or_sp_or_event", "definer_tail", "no_definer_tail", ++ "definer_opt", "no_definer", "definer", "view_replace_or_algorithm", ++ "view_replace", "view_algorithm", "view_suid", "view_tail", "$@187", ++ "view_list_opt", "view_list", "view_select", "$@188", "view_select_aux", ++ "view_check_option", "trigger_tail", "$@189", "$@190", "$@191", ++ "udf_tail", "sf_tail", "$@192", "$@193", "$@194", "$@195", "$@196", ++ "sp_tail", "$@197", "$@198", "$@199", "$@200", "xa", "xid", ++ "begin_or_start", "opt_join_or_resume", "opt_one_phase", "opt_suspend", ++ "$@201", "opt_migrate", "install", "uninstall", "keep_gcc_happy", YY_NULLPTR ++}; ++#endif ++ ++# ifdef YYPRINT ++/* YYTOKNUM[NUM] -- (External) token number corresponding to the ++ (internal) symbol number NUM (which must be that of a token). */ ++static const yytype_uint16 yytoknum[] = ++{ ++ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, ++ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, ++ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, ++ 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, 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, 513, 514, ++ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, ++ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, ++ 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, ++ 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, ++ 555, 556, 557, 558, 559, 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, 666, 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, 738, 739, 740, 741, 742, 743, 744, ++ 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, ++ 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, ++ 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, ++ 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, ++ 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, ++ 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, ++ 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, ++ 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, ++ 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, ++ 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, ++ 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, ++ 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, ++ 865, 866, 867, 868, 869, 870, 871, 61, 62, 60, ++ 124, 38, 45, 43, 42, 47, 37, 94, 126, 40, ++ 41, 44, 33, 123, 125, 59, 64, 46, 58 ++}; ++# endif ++ ++#define YYPACT_NINF -3798 ++ ++#define yypact_value_is_default(Yystate) \ ++ (!!((Yystate) == (-3798))) ++ ++#define YYTABLE_NINF -2585 ++ ++#define yytable_value_is_error(Yytable_value) \ ++ 0 ++ ++ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing ++ STATE-NUM. */ ++static const int yypact[] = ++{ ++ 4773, 2110, 1213, -3798, -167, 171, 48419, 85, 624, -3798, ++ -197, 3616, -3798, -3798, -3798, -3798, -3798, 3399, -3798, 48419, ++ 1213, -3798, 24653, -3798, -3798, -59, -3798, 112, 624, 1213, ++ 400, -3798, 48419, -3798, 669, 1467, 1213, -3798, -3798, 43555, ++ -3798, -197, 48419, -3798, 721, -3798, 43555, 1119, -145, 668, ++ 681, -56, -3798, -3798, 48419, 1756, -3798, 713, 1223, 1115, ++ -3798, -3798, 910, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 25268, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 714, 48419, ++ 742, 48419, 1164, 48419, 41731, 48419, 840, 841, 1272, -3798, ++ -3798, 1345, -3798, -3798, 624, -197, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 864, -3798, -3798, 1013, -3798, -3798, ++ -3798, 1651, -3798, 1547, 1353, -3798, 1397, 41731, -3798, 48419, ++ -3798, -3798, -3798, 915, -3798, 1130, -3798, 1145, 1441, 1479, ++ 1494, 84, 11527, 1509, 1509, 1509, 48419, 1538, 1509, 1509, ++ 48419, -3798, 1509, -3798, 1509, 624, -3798, -3798, 3649, 48419, ++ 1381, 167, -70, 41731, 1558, 48419, -167, 51, -3798, 1518, ++ -3798, -3798, -3798, 624, -3798, 1715, 1582, 938, 48419, -3798, ++ -3798, -3798, 1291, 922, 1218, -3798, -3798, 1304, -3798, 4179, ++ 139, -3798, -3798, -3798, 2120, -3798, -3798, 5219, 1304, -3798, ++ -3798, -3798, 1226, -3798, -3798, -3798, 48419, -167, 624, 1533, ++ -3798, -3798, 184, 184, 184, -3798, 184, -3798, 184, -3798, ++ 713, 1233, -3798, -3798, 1231, 48419, 728, 793, -3798, -3798, ++ 1241, 878, -3798, 1306, 39299, -3798, 48419, -3798, -3798, -3798, ++ -3798, 1529, -3798, -3798, -3798, 2503, -3798, 24653, -3798, -3798, ++ -3798, 841, -3798, 48419, 1399, -3798, -3798, -3798, 24653, 1281, ++ 48419, -3798, 24653, -3798, -3798, 24653, 185, -18, 1452, 48419, ++ 48419, 1726, -3798, 1945, 39299, 1484, -3798, 283, 1171, 1345, ++ 1963, -3798, 1353, -3798, 48419, 48419, 48419, -3798, -3798, -3798, ++ 44163, 84, 1337, 1362, 1367, 16591, -3798, 1370, 1387, 1405, ++ 11527, 1407, 1417, 1446, 1454, 1464, 1477, 1489, 1513, 1517, ++ 1522, 1543, 1563, 1565, 1568, 1593, 1593, 1604, 1616, 1620, ++ 1625, -80, 1627, -3798, 1637, 1643, 1645, -3798, -3798, 1652, ++ 1667, 1674, -3798, -3798, 1678, 1684, 1695, 12160, 1700, 1703, ++ 1714, -3798, 21569, 1717, 1719, 1724, 1727, 1731, 1737, 1743, ++ 1747, 1759, -3798, -3798, 11527, 1604, -3798, -3798, 1779, -3798, ++ 1784, 1788, 1798, 1824, 1826, 1833, 1835, 1837, 1839, 1849, ++ 1859, 1861, 1865, 1871, 1878, 1604, -3798, 1280, 1885, 1887, ++ 1409, 1890, -3798, 1902, -3798, 192, 1907, 1593, 1604, 1604, ++ 1921, 1926, 1932, 1942, 1948, 16591, 16591, 16591, 11527, -3798, ++ 48419, -3798, 48419, 1762, 1745, -3798, 2210, 16591, 173, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 1459, 1491, -3798, -3798, ++ -3798, -3798, -3798, 1952, 1434, 1877, 48419, 48419, 48419, 1690, ++ 48419, 48419, 41731, 1611, 48419, 39299, -3798, 1509, 1629, 3764, ++ 1816, 1672, 1704, -3798, -3798, -3798, -3798, -3798, 1869, -3798, ++ -3798, 1741, -3798, 2031, -3798, -3798, 143, -3798, 101, -3798, ++ -3798, -3798, -3798, -3798, -3798, 2132, 1653, -3798, -3798, 122, ++ -3798, -3798, 48419, -3798, -3798, -3798, -3798, 2068, 1993, -3798, ++ -3798, -3798, 919, 2535, 208, 24653, -3798, 1957, 11527, 1561, ++ -3798, -235, -3798, -3798, 2316, -3798, -3798, 39299, 24653, 1698, ++ -3798, -3798, 22186, -3798, -3798, 2547, -3798, 1984, -3798, -3798, ++ 1491, 3126, -3798, 1816, 2246, -3798, 2264, 2171, -18, 2062, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ 2011, 2120, -3798, -3798, -3798, -3798, 2471, -3798, 2170, -3798, ++ -28, -3798, 2020, 1431, -28, 39907, 2390, 1526, -3798, 392, ++ -3798, 2473, -3798, -3798, -3798, -3798, -3798, 2166, 2174, -3798, ++ -3798, 393, 1980, -3798, 2554, -3798, 739, -3798, -3798, 2229, ++ -3798, 2390, -28, 1526, -3798, 2484, 2619, 423, 1086, -3798, ++ -3798, -93, -3798, -3798, 2689, -3798, -3798, 24653, -3798, -3798, ++ -3798, 2068, -3798, -3798, -3798, -3798, 2151, -3798, 2425, 2266, ++ -3798, -3798, 24, -3798, 2164, 745, 2640, -3798, 951, 35651, ++ -3798, -3798, -3798, 2686, 2711, 1593, 2193, -3798, -3798, -3798, ++ 2833, -3798, -3798, 2216, 2738, 2738, 2738, 2857, -3798, -3798, ++ -3798, -3798, -3798, -3798, 2395, 2268, -3798, 1399, 24653, 2625, ++ 2238, -3798, -3798, 2486, 11527, -3798, -3798, 4506, 172, -3798, ++ -3798, 24653, 1804, -3798, 2822, 2458, -3798, -3798, -3798, -3798, ++ 2718, -3798, -3798, 2833, 2778, 2738, 2674, 2277, -3798, -3798, ++ -3798, -3798, -3798, -3798, 892, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, 1440, -3798, -3798, -3798, -3798, -3798, 1399, -3798, ++ 24653, -3798, -3798, -3798, 24653, -3798, 2279, -3798, 2260, -3798, ++ 11527, 11527, 308, 2827, 2897, 2897, 2897, 1762, 2312, 11527, ++ 11527, 11527, 11527, 11527, 11527, 11527, 11527, 11527, 11527, 11527, ++ 11527, 11527, 312, 2285, -3798, -3798, 1100, -3798, 2286, 11527, ++ 11527, 2389, 11527, 1491, 11527, 25883, -3798, 4211, 11527, 513, ++ 2779, 11527, 11527, 11527, 11527, 2324, 11527, 11527, 11527, 25883, ++ 2918, 2298, -3798, 2294, 993, 11527, 11527, 1326, 11527, 11527, ++ 11527, 11527, 11527, -3798, -3798, 11527, 11527, 11527, 11527, 16591, ++ 11527, 11527, 11527, 11527, 11527, 11527, 2897, 2897, 11527, 11527, ++ 1361, -3798, 11527, 1491, 2723, 2723, 11527, 1491, 8362, 11527, ++ -3798, -3798, -3798, -3798, -3798, 2304, -3798, -3798, -3798, 25883, ++ 2897, 2897, 11527, 11527, 2827, 2827, 2827, 254, 2309, 960, ++ 11527, 27113, 2307, -3798, -3798, -3798, -3798, 11527, 11527, 11527, ++ 16591, -3798, 847, -3798, -3798, -3798, -3798, -3798, 12793, 16591, ++ 16591, 2317, 16591, 16591, 16591, 16591, 16591, 2684, 16591, 16591, ++ 17224, 17857, 16591, 16591, 16591, 16591, 1466, 2827, 41731, 16591, ++ 11527, -3798, -3798, 48419, -3798, -3798, -3798, 2318, 24653, 1611, ++ -3798, -3798, 722, 2782, -3798, -3798, 2328, 24653, -3798, 2325, ++ -3798, 2692, -3798, -3798, 2693, 2694, 2696, -3798, -3798, -3798, ++ -3798, -3798, 2914, 2698, -3798, -3798, 2699, -3798, -3798, -3798, ++ -3798, 2347, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 2450, ++ -3798, -3798, -3798, 2354, -3798, 39299, 2354, -3798, -3798, 2354, ++ -3798, -3798, 2354, 39, 4184, -3798, -3798, 48419, -3798, 49027, ++ -3798, -3798, 22186, -167, -3798, -3798, 13426, -3798, -3798, -3798, ++ 2715, 331, 2357, -3798, 24653, -3798, 1762, -3798, 111, 111, ++ 2611, 135, 41731, -3798, -3798, 129, 2368, 2452, 2372, -3798, ++ 2469, -3798, -3798, 24653, 24653, -3798, -3798, -3798, -3798, 2994, ++ 922, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 2388, 2403, 2391, 39299, 962, -3798, ++ 48419, -3798, 1461, -3798, -3798, -3798, 2393, -3798, 11527, -3798, ++ 2396, -3798, 1740, 2787, -3798, -167, 11527, -3798, 2397, 1353, ++ 48419, 48419, 48419, 24653, 48419, 24653, -3798, -1, -1, -3798, ++ 36259, -3798, -3798, -3798, -3798, -28, 48419, 48419, -28, 39299, ++ -3798, 1526, 48419, -28, -3798, 2789, 2508, -3798, -3798, -3798, ++ 2855, -3798, -3798, 2846, 2405, -3798, 2787, -3798, -3798, 1526, ++ -3798, -3798, 24653, -3798, -3798, 1526, -3798, 1526, 1526, -28, ++ -28, 2465, -3798, -3798, 2414, -3798, 2465, 2568, -3798, 1186, ++ 184, 2665, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, 63, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ 155, -3798, -3798, -3798, 1853, 2922, -3798, 41731, 1390, 647, ++ 853, 1390, 2387, -167, 263, -3798, 263, -3798, 3393, 2700, ++ 194, 24653, -3798, 2431, 44771, 24653, -3798, -3798, -3798, 140, ++ 2426, 2435, 1762, 2451, 2453, 2455, 2456, 2476, 2477, 2478, ++ 2479, 2480, 2483, 2491, 2495, 2497, 2500, 2501, 2502, 2506, ++ 2507, 2444, -3798, -3798, -3798, -3798, 24653, -3798, 9, -3798, ++ -3798, -3798, 2510, -3798, -3798, -3798, -3798, 2225, -3798, -3798, ++ -3798, 164, 1822, 2475, 2530, 119, 39299, 2894, 48419, 48419, ++ 1353, 48419, 48419, -3798, -3798, 531, 2766, 2767, 2769, 2514, ++ -3798, -3798, -3798, 1271, 48419, 2940, 30176, -3798, 302, 481, ++ -3798, 2897, 2511, -3798, 2516, 2517, 2518, 11527, 218, 153, ++ 514, 1307, 1550, 731, 348, 355, -3798, 1571, 409, 465, ++ 471, 852, 473, 322, -3798, 2519, 2513, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, 2522, -3798, -3798, -3798, 483, ++ 489, 879, 899, 2525, 2526, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, 2968, -3798, 1617, -3798, -3798, ++ -3798, -3798, 2529, -3798, -3798, 1036, 559, 571, 335, 2538, ++ 1681, 630, 1696, 1720, 2534, 25883, 48419, 2897, 2544, 1082, ++ 1091, 2897, 2546, 725, 1108, 1739, 1765, 1770, 1123, 1200, ++ 794, 1776, 2740, 1212, 798, 822, 831, 891, 1214, 2548, ++ 2550, 895, 294, 2897, 2553, 339, 2537, 2555, 1227, 9628, ++ 10261, 10894, 200, 906, -3798, 2558, -3798, 2294, 2563, 2565, ++ 364, 1239, -3798, 11527, -3798, -3798, 966, 1157, 2608, 157, ++ 50, -3798, 2724, 48419, 2408, 141, -3798, -3798, -3798, -3798, ++ -3798, -3798, 1189, -3798, 2570, -3798, 2571, 1694, 2557, 11527, ++ 189, 2557, 2809, 1758, 1758, 16591, 3047, 2278, 12160, 1379, ++ 12160, 1379, 2557, 2557, 2557, -3798, 16591, 2576, 16591, 16591, ++ -3798, 2827, 1762, 2582, 839, 48419, -3798, 722, -3798, -3798, ++ -3798, -3798, 921, 39299, 100, 24653, 41731, 2583, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 4470, 24653, -3798, 48419, ++ -3798, 2669, -3798, -3798, -3798, 22801, 22801, -3798, 22801, -3798, ++ -3798, 869, 870, 2729, 2612, -3798, -3798, -3798, 29566, 1762, ++ -3798, 24653, -3798, 2988, 691, 24653, 2431, -3798, 2594, -3798, ++ -3798, -3798, -3798, -3798, 2383, 2705, -3798, 3214, -3798, 11527, ++ -167, -3798, 39299, 39299, 24653, 24653, 24653, 877, -3798, 1480, ++ -3798, -3798, -3798, 3126, 18490, 3024, 3036, 22801, 22801, 22801, ++ -3798, -3798, -3798, -3798, -3798, 1250, 1762, -3798, 2591, -3798, ++ -3798, -3798, -3798, -3798, 45379, 371, -3798, -3798, -167, 3039, ++ -3798, 1762, 2603, 48419, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, 3068, -3798, 2788, ++ -103, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -28, -3798, ++ -3798, -3798, -3798, -3798, 2835, 2390, 1980, 3039, -28, 1526, ++ 24653, -28, -28, -3798, -3798, 1432, -3798, -93, -3798, -3798, ++ -3798, -3798, 48419, 2441, 2774, -3798, 2616, -3798, -3798, 24653, ++ -3798, 2621, -3798, 3061, 3207, 2390, -3798, -3798, -3798, 921, ++ 921, 2920, -3798, -167, 2755, 2756, 2759, 2760, 2761, 2806, ++ -3798, -3798, -167, -167, -3798, -3798, 921, -3798, 897, -3798, ++ -3798, -3798, -3798, -167, -167, -167, -167, 2841, -167, -167, ++ 1809, -3798, -3798, 921, 921, -3798, 1201, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 1234, -3798, 2764, 3192, 2887, 921, ++ 921, 3192, 921, 2890, 2891, 921, 921, 2730, 3143, 921, ++ 3031, 2773, 3091, 3033, 921, -3798, 2775, 3150, 921, 921, ++ 921, 921, 3192, 2902, 3245, 921, 921, -3798, 921, 2921, ++ 2925, 144, 2927, 2928, 921, 134, 48419, 921, 921, 2929, ++ 921, -3798, -3798, 6509, -3798, -3798, -3798, -3798, -3798, -3798, ++ 786, 23419, -3798, -3798, 921, 461, -3798, 2872, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ 2677, -3798, -3798, 11527, 2682, 2841, -167, -167, 1955, -167, ++ 2841, -167, -167, -167, -167, -167, 2841, 2841, -167, 2042, ++ -167, 2841, 4506, -3798, 2736, -3798, -3798, -3798, -3798, 188, ++ 921, 921, 921, 921, -3798, 2367, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 41731, 3041, 1898, -53, -3798, -3798, ++ 41731, -3798, 48419, -3798, 1863, 48419, 2691, -165, 3564, 181, ++ 181, -3798, 24653, 24653, 24653, 48419, 2739, 2612, 30176, -3798, ++ -3798, 1186, -3798, 2681, 14059, -3798, 2695, -3798, 11527, -3798, ++ -3798, -3798, 401, 11527, 11527, 3169, 2311, -3798, 40515, -3798, ++ -3798, -3798, 11527, 11527, -3798, 11527, 11527, 11527, 11527, -3798, ++ 11527, 40515, 2311, 11527, -3798, 2697, -3798, 3092, 3098, -3798, ++ -3798, -3798, -3798, 11527, -3798, 11527, 11527, -3798, 11527, 11527, ++ 11527, 11527, -3798, 11527, -3798, -3798, 16591, -3798, 2701, 2710, ++ -3798, -3798, -3798, 2719, -3798, 11527, -3798, -3798, -3798, -3798, ++ -3798, -3798, 11527, -3798, 11527, -3798, 11527, 11527, 11527, 11527, ++ -3798, -3798, -3798, 14692, 11527, 11527, 2727, -3798, -3798, 11527, ++ 11527, 11527, -3798, 11527, 1162, 11527, 1778, 11527, 1780, 11527, ++ -3798, 11527, -3798, -3798, -3798, -3798, 11527, -3798, 1811, -3798, ++ -3798, 2263, -3798, 966, 2741, -3798, -3798, 1461, -3798, -3798, ++ 2704, 2717, 2722, 41731, 11527, -3798, -3798, -3798, -3798, -3798, ++ -3798, 16591, 411, 2742, 16591, -3798, 2809, 2324, 2324, 2195, ++ 11527, 189, 2809, 11527, 2743, 2744, -3798, 11527, 48419, -3798, ++ -3798, -3798, -3798, -3798, -3798, 41731, -3798, -3798, -3798, -3798, ++ 100, -3798, 2325, -3798, 2431, -3798, -3798, 1828, -3798, 39299, ++ 2732, -3798, 2733, 2781, 2829, 2830, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 2390, 1480, ++ -3798, -3798, 2748, -3798, -3798, 2486, 2843, 2785, 3109, 3294, ++ -3798, -3798, 48419, 16591, -3798, 3347, 2768, 2771, 2786, 2776, ++ 1762, -3798, 2847, -3798, -3798, -3798, 41, -3798, -3798, -3798, ++ -3798, -3798, 62, -3798, -3798, 2780, 2780, 20337, -3798, -3798, ++ -3798, 2793, 1117, 1117, 1117, -3798, -3798, -3798, -3798, 3029, ++ 39299, 3213, 3220, 3221, 951, -3798, 377, -3798, 1025, 3174, ++ 2390, -3798, 3224, 42339, -3798, 30784, -3798, 2790, 3172, 2791, ++ 921, 32608, 746, 27727, 36867, -3798, -3798, 1955, -3798, 311, ++ -3798, 37475, 3253, 37475, 37475, -3798, 3069, -3798, -3798, -3798, ++ -3798, 2612, 1526, -3798, -3798, -3798, 2792, -3798, -3798, 1104, ++ 3188, 3191, -3798, 3071, 42, 3071, 1104, 1104, 25883, 1186, ++ 2468, -3798, 2841, 3123, -3798, -3798, -3798, 41123, 38083, -3798, ++ -3798, -3798, -3798, 3333, -3798, 3334, 199, -3798, -3798, 2642, ++ 853, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 2387, 2642, 2642, 263, ++ -3798, 118, -3798, -3798, -3798, -3798, -3798, 26498, 1213, -3798, ++ 637, -3798, 26498, -3798, 140, 140, -3798, 26498, 1213, 1955, ++ 2841, 26498, 2841, 45987, 1213, -167, -167, 2443, 921, 2841, ++ -3798, -3798, 3199, 48419, 3200, 26498, 26498, -3798, 41731, -3798, ++ 921, 127, 2841, 1955, 1955, 26498, 1213, 25883, 1975, 2676, ++ -3798, -167, 1213, -3798, -3798, -3798, -3798, 24653, 1213, 1213, ++ 2961, -3798, -3798, -3798, 2841, 2676, 45987, -3798, -3798, 6256, ++ -3798, -3798, -3798, 19722, 48419, 287, 881, -3798, 2816, 33827, ++ 652, 278, 2906, 880, 2834, 2836, 46595, 1762, 2841, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -167, 2383, 2642, 2642, 1822, -3798, 3100, ++ 3260, 921, -3798, 2111, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, 2931, -3798, 133, 3022, 2842, -3798, -3798, ++ 282, -3798, -3798, 1132, 24653, 19107, -3798, 3084, -3798, 3080, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 2837, ++ 1186, 3102, 1457, 2612, 2849, -3798, 12160, 1249, -3798, 1762, ++ 11527, 1762, 1324, -3798, 2850, 2850, 2850, -3798, 2851, -3798, ++ -3798, 2850, 3236, 2850, 3241, 2852, -3798, 2856, -3798, 1875, ++ 1273, -3798, 1894, 1264, 1735, 1269, 2858, 2862, 1459, -3798, ++ 11527, 11527, 1305, 1309, 603, 929, 940, 448, -3798, 1317, ++ 2765, -3798, -3798, 1333, 1365, 1371, 1395, 946, 1411, 1916, ++ 12160, 1419, 232, 450, -3798, 1421, 975, 998, 1430, 11527, ++ 1442, 11527, 1483, 11527, 1496, 1498, 1503, -3798, 2011, 2263, ++ -3798, -3798, 2866, -3798, -3798, -3798, -3798, -3798, 2860, 1762, ++ 2868, -3798, -3798, 11527, -3798, 173, -3798, -3798, 16591, 460, ++ 2871, -3798, 1762, -3798, -3798, 2873, 1459, -3798, -3798, -3798, ++ -3798, -3798, 2881, -3798, 48419, -241, 2863, 31392, 39299, 39299, ++ 39299, 2875, 11527, -3798, -3798, 3142, 24653, -3798, 3281, -3798, ++ -3798, -3798, -3798, -3798, 2876, 2878, -3798, -3798, -3798, 2809, ++ 3244, 3127, -3798, -3798, 2383, 48419, 39299, 3179, -3798, -3798, ++ 2120, 25883, -3798, 2883, -3798, 2883, 1081, 2886, 1918, -3798, ++ -3798, -3798, 2888, 2062, 18490, 3327, 2328, 39299, 39299, 39299, ++ -3798, 2612, 2612, 137, 2945, 3284, -3798, -3798, -3798, -3798, ++ 47203, -3798, -3798, -3798, -3798, 941, 48419, 3267, 48419, 8995, ++ -3798, -3798, 3462, 11527, 39299, -82, 50, 921, -3798, -3798, ++ -3798, -3798, -3798, -3798, 2390, -3798, -3798, -3798, -3798, 37475, ++ -3798, -3798, -3798, 2390, -3798, -28, 1432, -210, 1157, -3798, ++ 2346, -3798, -3798, -3798, 3285, 1104, 3071, 3071, 3287, 3177, ++ 985, 2908, -3798, 921, -3798, -3798, -3798, 2120, -3798, -3798, ++ 11527, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, 1234, -3798, -3798, -3798, -3798, 2911, 3290, ++ 3292, 140, -3798, 26498, -3798, -3798, 26498, 26498, 102, 45987, ++ -3798, -3798, -3798, -3798, -3798, -3798, 2916, -3798, -3798, 2383, ++ -3798, -3798, 38083, -167, -3798, 26498, 2916, -3798, -3798, 435, ++ -3798, -167, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ 45987, 2923, -3798, 1413, -3798, -3798, -3798, -3798, -3798, 1715, ++ -3798, 45987, -3798, -3798, 45987, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 2924, 2678, 2595, -3798, ++ 2915, 2933, -3798, -3798, -3798, -3798, 48419, -3798, -3798, 24653, ++ -3798, -3798, -3798, 6264, 48419, -3798, -3798, -3798, -3798, 3151, ++ -3798, 11527, 11527, 3198, 48419, 3202, -3798, 3469, 48419, 3540, ++ 45987, -3798, 2938, -3798, 2939, -3798, 1933, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 2943, 48419, 2642, 1898, -3798, -3798, ++ -3798, -3798, -167, 1132, -3798, -3798, -3798, -3798, 3209, 3216, ++ 48419, -3798, -3798, -3798, -3798, 3085, -3798, 24653, 3530, -3798, ++ 3114, -3798, 2949, 814, 5178, -3798, 2953, 2954, 2955, 30176, ++ 2612, 3319, -3798, -3798, 2324, -3798, 1762, 11527, 1037, -3798, ++ -3798, 266, -3798, 1040, -3798, -3798, -3798, 2959, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, 2750, -3798, -3798, -3798, 2311, ++ -3798, -3798, -3798, 2964, 2324, 2324, -3798, -3798, 3548, 3130, ++ 11527, 11527, -3798, 11527, -3798, 202, 2970, 2998, -3798, -3798, ++ -3798, -3798, 11527, -3798, -3798, 2324, -3798, 11527, -3798, -3798, ++ 11527, -3798, 11527, 11527, -3798, 1508, -3798, 1546, -3798, 1588, ++ -3798, -3798, -3798, 2393, -3798, -3798, 960, 48419, -3798, -3798, ++ 1961, -3798, -3798, 11527, -3798, 42339, -3798, -3798, 3187, -3798, ++ -3798, 3401, -3798, -3798, -3798, -160, -160, -160, 15325, 1762, ++ 3457, -3798, -3798, -3798, 3281, 3348, -3798, 30, -3798, 48419, ++ 2976, 136, -3798, 1973, -3798, -3798, 2979, -3798, -3798, 2011, ++ 2980, -3798, 921, 15325, 2780, 3114, -3798, -3798, 1081, 25883, ++ 30784, -3798, -3798, 39299, 2328, 2328, 2328, 2390, 3406, 2843, ++ 2843, -3798, 28341, -3798, -3798, 3140, -3798, -3798, 32000, -3798, ++ 1712, -3798, -3798, 16591, 1637, -3798, 1762, -3798, 41123, -3798, ++ 1762, 921, 2987, 2989, -3798, -3798, 47811, 11527, -3798, -3798, ++ -3798, -3798, -3798, 1461, 2926, -3798, 1186, -3798, 1104, -3798, ++ 3368, 3371, 1104, -3798, -3798, -3798, 25883, 2612, 15325, -3798, ++ 43, 2011, 1762, 2997, 1413, -3798, 579, 11527, 26498, -3798, ++ -3798, -3798, 2996, -3798, -3798, 3502, 3504, -3798, 26498, 2225, ++ 48419, -3798, 3462, -3798, -3798, -3798, -3798, 6264, -3798, 25883, ++ -3798, -3798, -3798, -3798, -3798, 48419, -3798, 24653, -3798, 19722, ++ -3798, 3004, -3798, 2850, 2850, 2850, -3798, -3798, -3798, 2850, ++ -3798, 2851, 3238, -3798, 2851, 2851, -3798, -3798, -3798, -3798, ++ -3798, 266, 2139, -3798, -3798, 266, -3798, -3798, -3798, 190, ++ 529, 2851, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 2850, ++ 2850, 2850, -3798, -3798, 266, 2850, -3798, 2850, -3798, 2494, ++ -3798, 326, 131, 2850, 2850, 2850, 2959, 2999, -3798, 1762, ++ 2324, 3551, -3798, -3798, 3156, -167, 3496, -3798, 1983, -3798, ++ 3012, -3798, 46595, -3798, 2841, 2387, -3798, -3798, -3798, -3798, ++ 3155, 801, -3798, 3186, 3017, 3019, -3798, -3798, -167, 3018, ++ 3021, -3798, -3798, -3798, -3798, 3633, -3798, 48419, 48419, 48419, ++ 2681, -3798, 38691, -3798, 646, 1762, 3023, 3025, 3026, 3028, ++ 3626, 197, -3798, 3629, 40515, -3798, -3798, -3798, 1996, 3309, ++ -3798, -3798, 2850, -3798, 2851, -3798, -3798, -3798, 3605, -3798, ++ -3798, 2850, 3427, 266, -3798, -3798, 3046, -3798, 3052, 3053, ++ -3798, 184, 3054, 1598, 1031, 2016, 3353, 3431, -3798, 3276, ++ -3798, 1607, 1052, 1639, 1641, 1648, 1655, -3798, -3798, -3798, ++ 150, 1157, -3798, -3798, 2028, -3798, 3413, 3322, 1105, 3088, ++ 3088, 3088, 1637, 1762, 2030, -3798, -3798, -3798, -3798, 3454, ++ -3798, -3798, 3065, 3214, 48419, -3798, 3127, -3798, 2393, 25883, ++ 15325, 3066, 3067, -3798, 745, -3798, -3798, 3062, 2328, -3798, ++ 3653, 3492, -3798, -3798, 41731, 3072, -3798, -3798, 3378, -3798, ++ 138, 3289, -3798, -3798, -3798, -82, 3168, 3170, 921, 1762, ++ -3798, -3798, 2616, 2753, 3124, 1104, 1104, 3229, 3128, 11527, ++ 11527, 3083, -3798, 3102, -3798, -3798, 361, 2393, 11527, -3798, ++ 2383, 3127, -3798, 1668, 3087, 3089, 48419, 3097, 3099, -3798, ++ 3695, 287, -3798, -3798, -3798, -3798, 1213, -3798, -3798, 2916, ++ 62, 3079, -3798, 48419, 3412, -3798, -3798, -3798, -3798, 875, ++ -3798, 3101, 875, 875, -3798, 2170, -3798, 3122, 266, -3798, ++ -3798, 3125, -3798, -3798, -3798, 875, 3103, 266, -3798, -3798, ++ -3798, -3798, 875, -3798, 41731, -167, 3562, 3706, -3798, 3154, ++ -3798, 3606, 3483, 3717, -3798, 2208, -3798, 3485, 3384, 921, ++ -3798, 266, -3798, -3798, 3707, -3798, 266, 3707, 875, 875, ++ 48419, -3798, -3798, -3798, -3798, -3798, -3798, 48419, -3798, 1126, ++ -3798, -3798, -3798, 2034, -167, -3798, -3798, -3798, 3110, 3113, ++ -3798, -3798, -3798, 278, -3798, 48419, 6264, -3798, -3798, -3798, ++ 6509, -3798, 1127, 2038, 1413, 3116, 2048, 2050, 3580, 3296, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 40515, -3798, ++ 3707, 3396, 3129, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, 11527, -3798, -3798, -3798, 11527, -3798, -3798, 3429, ++ 3581, -3798, -3798, -3798, -3798, -3798, -3798, 1025, 1025, -3798, ++ -3798, -3798, 3738, -3798, 3219, 3222, -3798, -3798, 3225, -3798, ++ -3798, 115, 2267, -3798, -3798, -3798, -3798, 15325, 3505, 3233, ++ -3798, -3798, 3136, 3180, -3798, -3798, 150, -3798, -3798, -3798, ++ -3798, 11527, -3798, 3102, 2443, -3798, 28341, -3798, -3798, -3798, ++ -3798, -3798, 3137, 3138, 8995, 960, -3798, 3193, -3798, -3798, ++ -3798, 3195, 1762, 1762, 48419, 3319, -3798, -3798, 140, 140, ++ -3798, 361, 150, 1413, -3798, 2058, -3798, 48419, 48419, 2064, ++ 48419, 48419, 1117, 1117, 1117, 2042, 2042, -3798, -3798, -3798, ++ 287, -3798, 3539, -3798, -3798, 2067, -3798, 69, 3409, -3798, ++ -3798, -3798, -3798, 875, -3798, 184, -3798, -3798, -3798, -3798, ++ -3798, 184, -3798, -3798, -3798, -3798, 1593, -3798, -3798, -3798, ++ 3432, 3196, -3798, -3798, -3798, -3798, -3798, 34435, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, 3279, -3798, 54499, -3798, -3798, ++ 713, 3190, -3798, -3798, -3798, 1755, 48419, 24653, 3198, 3342, ++ -3798, 3462, -3798, 745, 3084, 3114, -3798, 1767, 48419, -3798, ++ 3440, 186, 1605, -3798, 3628, -3798, -3798, 3173, 3175, 1413, ++ 1675, -3798, -3798, -3798, -3798, 3661, -3798, -3798, -3798, -3798, ++ -3798, 347, 3437, 2841, 2841, 2841, 632, 2267, -3798, -3798, ++ 3230, 24653, 16591, 3299, 48419, 1323, 3335, -3798, 1540, 1413, ++ 11527, 2390, 38083, -3798, -3798, -3798, -3798, -3798, -3798, 11527, ++ 3178, 11527, 3183, 2073, -3798, -3798, 3619, 3619, -3798, -3798, ++ -3798, -3798, 2079, 2081, -3798, 2095, 2101, -3798, -3798, -3798, ++ 3185, -3798, 48419, -3798, -3798, -3798, 221, -3798, -3798, 2105, ++ -3798, 2109, -3798, 1593, -3798, 3189, -3798, -3798, -3798, -3798, ++ 11527, 3665, 3223, 48419, 809, -3798, 55715, 55715, 48419, -3798, ++ -3798, -3798, -3798, 5779, -3798, -3798, -44, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 3791, -3798, ++ 3194, -3798, -3798, 3203, 1135, -3798, -3798, -3798, 6264, 3635, ++ 880, -3798, -3798, -3798, -3798, 814, 3204, 2062, -167, 921, ++ -3798, 1767, -3798, -3798, -3798, 921, 1413, 3206, 3456, -3798, ++ 186, -3798, -3798, -3798, 1605, -3798, -3798, -3798, -3798, 11527, ++ -3798, -3798, 3778, -3798, -3798, -3798, -3798, -3798, -3798, 83, ++ -3798, -3798, 25883, -3798, -3798, 2383, -3798, 2114, -3798, -3798, ++ -3798, 3301, 921, 921, 3704, 3708, 921, 921, 921, 921, ++ 3226, 3335, -3798, 3684, -3798, -3798, 11527, -3798, -3798, 1762, ++ 3447, -3798, 3777, 1157, 1762, 48419, 1762, 48419, -3798, 48419, ++ 912, -3798, -3798, 3430, -3798, 1767, -3798, -3798, 3127, -3798, ++ 838, 838, 266, 184, 266, -3798, -3798, 1762, 11527, -3798, ++ 11527, 3252, -3798, -3798, 3663, 48419, -3798, -3798, -3798, -3798, ++ 11527, -3798, 54499, 54499, -3798, -3798, -3798, -3798, 3826, 745, ++ 3795, 3493, 3796, 2919, -3798, -3798, 3469, 6264, -3798, -3798, ++ -3798, -3798, 2841, -3798, 35043, -3798, -3798, 1710, -3798, -3798, ++ 1413, -3798, -3798, -3798, 3235, -3798, 921, 2443, 3231, -3798, ++ -3798, 48419, 3242, -3798, -167, -167, 921, 921, 2854, 2854, ++ 2383, 41731, 3345, -3798, -3798, 921, 1413, 48419, -3798, 909, ++ 3599, -3798, 2117, 2121, -3798, 3823, -3798, 3827, 3246, 3249, ++ -3798, 1767, -3798, 186, 1605, 2126, -3798, 3868, -3798, 856, ++ 3520, 3521, -3798, -3798, -3798, 3255, 1762, 1762, -3798, 251, ++ -3798, -3798, 3643, 3732, 11527, 1762, 51459, 3254, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, 55107, 11527, -3798, -44, 3791, -3798, 3523, -3798, 3524, ++ -3798, -3798, -3798, 3752, 54499, -3798, 3750, -3798, 745, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 25883, 15325, -3798, -3798, ++ 3299, -3798, 3266, -3798, -3798, -40, -3798, -3798, -167, -167, ++ -3798, -3798, -3798, -3798, -3798, 2135, -3798, 41731, -3798, -3798, ++ 3849, 3851, 3749, 3857, 909, -3798, -163, -3798, -3798, -3798, ++ -3798, -3798, 46595, 46595, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, 3336, 3776, 750, 3310, 11527, 54499, -3798, 3754, -3798, ++ 3690, 1683, 3632, 3280, -3798, 3282, 518, 3792, 55715, 55715, ++ -3798, -3798, -3798, -3798, 3768, -3798, -3798, -3798, -3798, -3798, ++ 3468, -3798, -3798, 2172, -3798, 15958, -3798, -3798, -3798, -3798, ++ -3798, 41731, -3798, 3345, -3798, 3300, 184, 184, 3881, 184, ++ -3798, 3883, 3884, -163, -3798, 3304, 2177, 838, 838, -3798, ++ -3798, 109, -3798, 288, -3798, 1762, 52067, 3882, 48419, -3798, ++ -3798, -3798, -3798, 11527, -3798, 42947, 52675, 3302, -3798, -3798, ++ -3798, 3480, -3798, 2919, 3718, 3777, -3798, 3266, -3798, 3307, ++ -3798, 2809, 3335, -3798, -3798, 3312, -3798, -3798, 184, -3798, ++ 184, 184, -3798, -3798, -3798, -3798, -3798, -167, 3688, -3798, ++ 109, -3798, 11527, -3798, 3790, 3407, -3798, 3315, -3798, 54499, ++ 1742, 54499, -3798, -3798, 3744, 3323, 1601, -3798, 3318, -3798, ++ -3798, 54499, 3908, 3599, -3798, 15958, 3326, -3798, 11527, 3329, ++ 3330, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 1762, 3904, ++ 54499, 48419, 49635, 3526, 53283, 3775, 48419, 6264, 3779, 3781, ++ -3798, 54499, -3798, 184, 3741, -3798, -3798, 1762, -3798, -3798, ++ 3426, -3798, 50243, -3798, 2377, -3798, 3365, -3798, -3798, 3844, ++ 2995, -3798, -3798, -3798, 3618, 3351, -3798, -3798, 54499, 54499, ++ -3798, -3798, -3798, 33219, 11527, -3798, -3798, -3798, -3798, -3798, ++ 951, 7, 20952, 3509, 50851, 53891, -3798, -3798, -3798, 28955, ++ -3798, -3798, -3798, 3784, -3798, 1762, -3798, -3798, -3798, -3798, ++ -3798, 41731, 2181, -3798, -3798, 25883, -3798, 33219, -3798, -3798, ++ -3798, -3798, 24036, 3352, -3798, 921, -3798, -3798, 25883, -3798, ++ -3798, 15325, -3798, -3798 ++}; ++ ++ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. ++ Performed when YYTABLE does not specify something else to do. Zero ++ means the default is an error. */ ++static const yytype_uint16 yydefact[] = ++{ ++ 0, 956, 1035, 2506, 0, 0, 0, 0, 0, 1019, ++ 2508, 115, 64, 1679, 1794, 1795, 1592, 1618, 2, 0, ++ 1035, 165, 0, 76, 1620, 0, 1850, 0, 0, 1035, ++ 0, 444, 0, 1845, 0, 0, 1035, 1623, 1835, 239, ++ 165, 2508, 0, 1081, 2329, 1717, 0, 0, 0, 0, ++ 1700, 0, 2387, 1668, 0, 0, 2643, 0, 0, 3, ++ 8, 19, 0, 40, 24, 28, 14, 18, 13, 53, ++ 47, 38, 37, 10, 55, 56, 16, 44, 11, 12, ++ 15, 36, 43, 32, 39, 51, 1072, 22, 23, 29, ++ 45, 60, 20, 57, 54, 21, 1796, 25, 46, 41, ++ 33, 61, 34, 52, 35, 59, 27, 48, 26, 9, ++ 17, 49, 50, 42, 62, 30, 58, 31, 0, 890, ++ 0, 0, 0, 0, 0, 0, 0, 958, 873, 2573, ++ 2574, 2575, 1037, 1036, 0, 2508, 1962, 1015, 1046, 2034, ++ 2035, 2036, 2037, 2038, 2039, 2040, 2041, 1976, 2042, 2043, ++ 2045, 2044, 2046, 2047, 1977, 1978, 2048, 2049, 2050, 2052, ++ 2051, 2053, 1979, 1980, 2054, 2055, 2056, 2057, 1981, 1983, ++ 1982, 2058, 2061, 2060, 2059, 1984, 2062, 2063, 2064, 2066, ++ 1985, 1986, 1987, 1988, 1989, 1990, 2065, 1991, 2067, 1992, ++ 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2076, 2075, 1993, ++ 2077, 2078, 2079, 2080, 2081, 2083, 2082, 2084, 2085, 2086, ++ 1994, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 1995, 2094, ++ 2095, 2096, 2113, 1996, 2097, 2100, 2099, 2098, 2101, 2102, ++ 2103, 2105, 2104, 2106, 1997, 1998, 2107, 2108, 2109, 2111, ++ 2110, 2115, 2116, 2117, 1999, 2112, 2114, 2305, 2118, 2119, ++ 2121, 2120, 2122, 2124, 2123, 2000, 2126, 2125, 2001, 2002, ++ 2127, 2128, 1960, 2129, 1961, 2130, 2133, 2134, 2131, 2135, ++ 2140, 2003, 2132, 2136, 2137, 2138, 2139, 2141, 2004, 2143, ++ 2142, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, ++ 2163, 2156, 2158, 2159, 2161, 2157, 2162, 2166, 2165, 2167, ++ 2168, 2169, 2164, 2154, 2160, 2155, 2170, 2171, 2153, 2172, ++ 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, ++ 2184, 2183, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2193, ++ 2192, 2194, 2195, 2196, 2198, 2197, 2200, 2201, 2005, 2199, ++ 2202, 2203, 2204, 2205, 2206, 2207, 2006, 2008, 2007, 2009, ++ 2208, 2209, 2010, 2210, 2211, 2212, 2011, 2213, 2214, 2215, ++ 2217, 2216, 2218, 2219, 2012, 2013, 2220, 2221, 2222, 2223, ++ 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, ++ 2235, 2234, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2014, ++ 2243, 2015, 2244, 2245, 2016, 2246, 2017, 2247, 2248, 2018, ++ 2249, 2250, 2251, 2252, 2253, 2254, 2019, 2255, 2256, 2257, ++ 2020, 2259, 2258, 2260, 2021, 2262, 2263, 2022, 2261, 2024, ++ 2264, 2265, 2023, 2266, 2025, 2267, 2268, 2270, 2269, 2271, ++ 2272, 2273, 2026, 2274, 2027, 2275, 2276, 2277, 2278, 2279, ++ 2281, 2280, 2282, 2283, 2284, 2285, 2288, 2290, 2287, 2289, ++ 2286, 2291, 2292, 2293, 2294, 2298, 2299, 2300, 2301, 2295, ++ 2296, 2297, 2028, 2302, 2303, 2304, 2306, 2307, 2309, 2308, ++ 2029, 2030, 2310, 2311, 2033, 2312, 2313, 2314, 2318, 2315, ++ 2326, 2316, 2317, 2320, 2319, 2321, 2322, 2031, 2323, 2032, ++ 2324, 2325, 184, 1965, 167, 1966, 1975, 0, 2378, 2377, ++ 994, 0, 2509, 2510, 540, 819, 0, 0, 820, 0, ++ 539, 818, 165, 2575, 120, 0, 536, 537, 0, 0, ++ 0, 1693, 0, 1616, 1616, 1616, 0, 0, 1616, 1616, ++ 0, 1619, 1616, 165, 1616, 0, 69, 1802, 0, 0, ++ 0, 0, 1959, 0, 1626, 0, 0, 1852, 1866, 0, ++ 1867, 1861, 2375, 0, 1106, 0, 0, 0, 0, 165, ++ 1038, 1002, 1677, 0, 229, 238, 240, 241, 237, 0, ++ 2510, 2521, 1073, 1079, 1091, 2330, 2327, 1779, 241, 983, ++ 983, 983, 981, 983, 1701, 1698, 0, 0, 0, 1677, ++ 1860, 2627, 0, 0, 0, 2623, 0, 2628, 0, 1081, ++ 0, 0, 1, 5, 0, 0, 2108, 2212, 1792, 1790, ++ 1954, 0, 864, 891, 0, 869, 0, 867, 1971, 1970, ++ 1969, 0, 880, 879, 877, 0, 405, 0, 962, 963, ++ 957, 959, 961, 0, 2584, 871, 1013, 2507, 0, 186, ++ 0, 78, 0, 1017, 1020, 0, 0, 2513, 0, 0, ++ 0, 0, 119, 0, 0, 0, 116, 1106, 1106, 2575, ++ 2577, 2579, 540, 538, 0, 0, 0, 1697, 1696, 1695, ++ 0, 1693, 2035, 1976, 2047, 0, 1927, 0, 0, 0, ++ 1381, 0, 1981, 0, 2062, 2064, 1985, 1986, 1987, 1988, ++ 1989, 1990, 1993, 0, 0, 1116, 1116, 1113, 0, 0, ++ 0, 2085, 2086, 1936, 0, 0, 0, 1923, 1937, 2121, ++ 2122, 0, 1925, 1926, 2128, 0, 0, 0, 2142, 0, ++ 2147, 1934, 0, 0, 2179, 2181, 0, 0, 2185, 2186, ++ 2187, 2188, 1909, 1171, 0, 1113, 1922, 1933, 2204, 1916, ++ 2213, 2218, 2219, 0, 2228, 0, 0, 0, 2253, 2257, ++ 0, 0, 2278, 0, 0, 1113, 1908, 2298, 2299, 2300, ++ 2301, 0, 1924, 2028, 1935, 0, 2312, 1116, 1113, 1113, ++ 0, 0, 0, 2321, 2325, 0, 0, 0, 2545, 1170, ++ 0, 1343, 0, 1375, 1128, 1134, 1148, 0, 1163, 1197, ++ 1198, 1200, 1298, 1199, 1205, 1204, 1593, 1920, 1203, 1202, ++ 1921, 1196, 1944, 1965, 1943, 0, 0, 0, 0, 0, ++ 0, 0, 0, 1775, 0, 0, 1603, 1616, 71, 0, ++ 2423, 2438, 2439, 2435, 2440, 2458, 2441, 2445, 0, 2437, ++ 2429, 0, 2444, 0, 2433, 2442, 0, 2427, 0, 2443, ++ 2448, 2459, 2431, 2436, 2414, 0, 2421, 2425, 1956, 1487, ++ 2390, 2391, 0, 77, 1628, 1629, 1627, 954, 0, 2640, ++ 1853, 1854, 1855, 0, 1870, 0, 1033, 0, 0, 454, ++ 445, 0, 1774, 1773, 0, 1846, 2522, 0, 0, 0, ++ 1631, 1678, 0, 1630, 1841, 0, 1839, 1836, 1838, 230, ++ 0, 0, 260, 2423, 0, 2408, 0, 2516, 2513, 2523, ++ 2558, 2553, 2552, 2555, 2556, 1097, 2557, 1096, 2554, 2551, ++ 1106, 1092, 1094, 1095, 2333, 1737, 0, 753, 0, 1758, ++ 1787, 1738, 0, 0, 1787, 0, 1522, 1777, 1780, 0, ++ 2342, 1751, 816, 815, 1761, 814, 2343, 1773, 0, 1725, ++ 1739, 0, 1702, 1744, 0, 2344, 0, 1776, 1760, 0, ++ 1759, 1522, 1787, 0, 1718, 0, 0, 0, 0, 236, ++ 977, 987, 979, 974, 0, 980, 976, 0, 2641, 2642, ++ 2388, 954, 1915, 1913, 1914, 1963, 2624, 1912, 2632, 2634, ++ 2620, 2622, 2629, 1075, 0, 2527, 6, 63, 0, 1799, ++ 2582, 2583, 2581, 769, 0, 1116, 1972, 2576, 168, 878, ++ 0, 406, 168, 0, 0, 0, 0, 0, 407, 408, ++ 344, 862, 960, 875, 0, 0, 874, 2584, 0, 0, ++ 1048, 1050, 1049, 1066, 188, 185, 166, 0, 996, 1610, ++ 1612, 0, 1021, 2512, 0, 0, 2514, 2518, 1169, 1168, ++ 0, 113, 118, 0, 0, 0, 2484, 117, 2474, 2580, ++ 1106, 1106, 1106, 2572, 0, 2560, 2567, 2568, 2571, 2570, ++ 2569, 2566, 0, 2559, 2562, 2563, 2565, 2564, 2584, 2578, ++ 0, 821, 821, 821, 0, 1680, 1683, 1687, 1691, 1694, ++ 0, 0, 1492, 1218, 1492, 1492, 1492, 1382, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1492, 0, 1255, 1228, 0, 1256, 0, 0, ++ 0, 0, 0, 1930, 0, 0, 2545, 0, 0, 0, ++ 1348, 0, 0, 0, 2545, 0, 0, 0, 0, 0, ++ 0, 1377, 1379, 1943, 1492, 0, 0, 1492, 0, 0, ++ 0, 0, 0, 1121, 1261, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 1492, 1492, 0, 0, ++ 1492, 1269, 0, 1932, 0, 0, 0, 1931, 0, 0, ++ 1929, 750, 751, 1910, 1928, 0, 1272, 1274, 1273, 0, ++ 1492, 1492, 0, 0, 1208, 1207, 1209, 0, 0, 0, ++ 0, 0, 0, 1167, 1166, 1165, 1164, 0, 0, 0, ++ 0, 1173, 0, 1175, 1177, 1172, 1174, 1176, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1210, 0, 0, ++ 0, 1911, 1307, 0, 1617, 1598, 1605, 1600, 0, 1775, ++ 1601, 1609, 419, 0, 1606, 2472, 1602, 0, 1594, 0, ++ 70, 0, 1824, 1829, 0, 0, 0, 1819, 1827, 1821, ++ 1828, 1820, 0, 0, 1830, 1823, 0, 1822, 1826, 1825, ++ 1803, 1807, 1811, 1804, 2424, 2422, 2456, 2455, 2460, 0, ++ 2457, 2453, 2446, 2485, 2450, 0, 2485, 2452, 2451, 2485, ++ 2447, 2454, 2485, 2419, 0, 1488, 1489, 0, 2389, 0, ++ 1955, 955, 0, 0, 1856, 1857, 0, 1056, 1871, 1872, ++ 1868, 1487, 2376, 2379, 0, 640, 1107, 455, 0, 0, ++ 466, 0, 0, 66, 67, 0, 1040, 0, 1039, 1043, ++ 0, 1000, 1003, 0, 0, 1634, 1624, 1633, 1842, 1843, ++ 0, 228, 253, 248, 256, 250, 252, 251, 257, 258, ++ 259, 254, 249, 255, 242, 0, 2422, 0, 2419, 2517, ++ 0, 2519, 2536, 1080, 2524, 1103, 1082, 1102, 0, 1093, ++ 2328, 2331, 2339, 1783, 752, 0, 0, 1750, 0, 540, ++ 0, 0, 0, 0, 0, 0, 1719, 0, 0, 583, ++ 0, 1743, 1523, 1781, 1782, 1787, 0, 0, 1787, 0, ++ 1756, 1777, 0, 1787, 1714, 0, 0, 1706, 1711, 1707, ++ 0, 1713, 1712, 1715, 1703, 1704, 1783, 1730, 1757, 1777, ++ 1742, 1749, 0, 1729, 1736, 0, 1747, 1777, 1777, 1787, ++ 1787, 990, 989, 988, 984, 985, 990, 0, 1699, 1416, ++ 0, 0, 2621, 2635, 2619, 2630, 2631, 2618, 1076, 2528, ++ 1074, 2529, 0, 7, 4, 1793, 1791, 1800, 1801, 770, ++ 769, 531, 534, 533, 0, 0, 1974, 0, 870, 0, ++ 1775, 868, 0, 0, 1775, 355, 1775, 409, 769, 882, ++ 0, 0, 872, 1014, 0, 0, 443, 1066, 1052, 1068, ++ 0, 189, 191, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 79, 80, 96, 998, 997, 0, 995, 1031, 1029, ++ 1028, 1026, 0, 1027, 1025, 1016, 1022, 1023, 2511, 2515, ++ 541, 769, 1775, 0, 347, 0, 0, 0, 0, 0, ++ 540, 0, 0, 2561, 105, 822, 0, 0, 0, 1685, ++ 1613, 1681, 1615, 1954, 0, 0, 0, 1689, 0, 0, ++ 1493, 1492, 0, 1357, 0, 0, 0, 0, 1383, 0, ++ 0, 0, 0, 0, 0, 0, 1194, 0, 0, 0, ++ 0, 0, 0, 0, 1328, 0, 1357, 1117, 1567, 1568, ++ 1552, 1553, 1551, 1554, 1114, 0, 1555, 1566, 1285, 0, ++ 0, 0, 0, 0, 0, 1463, 1464, 1465, 1466, 1474, ++ 1467, 1468, 1469, 1476, 1481, 1470, 1471, 1477, 1478, 1479, ++ 1472, 1480, 1475, 1473, 1482, 0, 1462, 0, 1485, 1483, ++ 1486, 1484, 0, 1349, 1341, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1492, 0, 0, ++ 0, 1492, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 1492, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 1251, 0, 1946, 1945, 0, 0, ++ 0, 0, 1212, 0, 1211, 1425, 0, 2530, 2546, 0, ++ 2345, 1344, 1346, 0, 1119, 1118, 1120, 1131, 1124, 1129, ++ 1122, 1126, 0, 1178, 2041, 1132, 0, 0, 1160, 2545, ++ 1501, 1161, 1146, 1151, 1152, 0, 1149, 1150, 0, 1154, ++ 0, 1153, 1157, 1158, 1159, 1162, 0, 0, 0, 0, ++ 1201, 1206, 1376, 1106, 1947, 0, 1596, 419, 422, 421, ++ 1607, 420, 1655, 0, 964, 0, 0, 72, 74, 1816, ++ 1813, 1812, 1814, 1818, 1817, 1815, 0, 1831, 2449, 0, ++ 2430, 0, 2434, 2428, 2432, 0, 0, 2420, 0, 2426, ++ 1491, 2116, 2197, 0, 1494, 2393, 1621, 2639, 2312, 1858, ++ 1851, 0, 1869, 0, 0, 0, 1034, 641, 0, 1106, ++ 453, 452, 451, 450, 0, 468, 448, 456, 68, 0, ++ 0, 1847, 0, 0, 0, 0, 0, 1004, 1632, 0, ++ 1844, 1840, 1837, 0, 0, 0, 0, 0, 0, 0, ++ 2520, 2538, 2537, 2525, 1106, 1513, 1107, 1107, 1943, 2333, ++ 2336, 2337, 2340, 2338, 0, 2335, 2334, 2349, 0, 1785, ++ 1788, 1789, 0, 0, 1769, 1763, 1762, 1754, 1764, 1755, ++ 1772, 1771, 1770, 1727, 1726, 1535, 1536, 2251, 1534, 1526, ++ 1529, 1533, 1532, 1722, 1778, 1768, 1766, 1752, 1787, 1767, ++ 1765, 1708, 1709, 1710, 0, 1522, 0, 1785, 1787, 1777, ++ 0, 1787, 1787, 1746, 1748, 0, 978, 987, 975, 982, ++ 1434, 1433, 0, 1390, 0, 1392, 1389, 1388, 1387, 0, ++ 1433, 2625, 2633, 2637, 0, 1522, 2535, 2533, 532, 1655, ++ 1655, 0, 1973, 0, 0, 0, 0, 0, 0, 0, ++ 169, 178, 0, 0, 353, 354, 1655, 352, 395, 396, ++ 399, 400, 401, 0, 0, 0, 0, 0, 0, 0, ++ 0, 122, 402, 1655, 1655, 349, 375, 376, 379, 380, ++ 381, 382, 383, 345, 0, 350, 952, 952, 0, 1655, ++ 1655, 952, 1655, 0, 0, 1655, 1655, 0, 0, 1655, ++ 0, 0, 952, 0, 1655, 950, 0, 0, 1655, 1655, ++ 1655, 1655, 952, 0, 0, 1655, 1655, 443, 1655, 0, ++ 0, 970, 0, 0, 1655, 0, 0, 1655, 1655, 0, ++ 1655, 898, 949, 544, 565, 566, 863, 897, 899, 911, ++ 439, 0, 928, 951, 0, 0, 884, 886, 2585, 2586, ++ 2587, 1055, 1047, 1054, 1051, 1066, 1064, 1053, 811, 810, ++ 0, 1067, 187, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 1611, 0, 1018, 1030, 1024, 114, 769, ++ 1655, 1655, 1655, 1655, 351, 384, 385, 388, 389, 390, ++ 391, 394, 392, 393, 0, 0, 1775, 0, 2476, 2477, ++ 0, 2475, 0, 2613, 0, 0, 0, 167, 542, 0, ++ 0, 823, 0, 0, 0, 0, 0, 1494, 0, 1957, ++ 1688, 1416, 1692, 1691, 0, 1281, 0, 1321, 0, 1323, ++ 1324, 1325, 0, 0, 0, 0, 0, 1282, 0, 1226, ++ 1283, 1284, 0, 0, 1279, 0, 0, 0, 0, 1278, ++ 0, 0, 0, 0, 1327, 0, 1115, 0, 0, 1229, ++ 1230, 1223, 1215, 0, 1300, 0, 0, 1231, 0, 0, ++ 0, 0, 1287, 0, 1301, 1378, 0, 1380, 1947, 0, ++ 1333, 1288, 1236, 0, 1331, 0, 1237, 1302, 1303, 1304, ++ 1290, 1291, 0, 1306, 0, 1292, 0, 0, 0, 0, ++ 1239, 1337, 1335, 0, 0, 0, 0, 1339, 1241, 0, ++ 0, 0, 1240, 0, 0, 0, 0, 0, 0, 0, ++ 1243, 0, 1224, 1336, 1338, 1296, 0, 1252, 0, 2539, ++ 1424, 2547, 1425, 0, 0, 2541, 2531, 2536, 2544, 1216, ++ 0, 0, 0, 0, 0, 1948, 1125, 1130, 1123, 1127, ++ 2545, 0, 0, 0, 0, 1144, 1143, 0, 0, 0, ++ 2545, 1501, 1147, 0, 0, 1317, 1318, 1373, 0, 1599, ++ 1597, 1608, 1654, 1653, 1656, 0, 2473, 966, 965, 1604, ++ 964, 75, 0, 1810, 1832, 1805, 2489, 0, 2488, 0, ++ 2468, 2471, 1954, 0, 0, 0, 2397, 2404, 2400, 2405, ++ 2398, 2399, 2403, 2406, 2407, 2394, 2401, 1495, 1524, 0, ++ 1859, 1057, 1059, 1060, 1058, 1066, 0, 0, 2382, 2383, ++ 2381, 2380, 458, 0, 467, 0, 479, 0, 0, 0, ++ 1849, 1848, 0, 1041, 1044, 1045, 1011, 1009, 1008, 1010, ++ 999, 1005, 1006, 524, 1638, 0, 0, 0, 1644, 1625, ++ 1635, 0, 2085, 2298, 2301, 243, 246, 245, 247, 0, ++ 0, 0, 0, 0, 0, 1101, 1416, 1585, 1098, 1086, ++ 1524, 1514, 1085, 1108, 1104, 0, 2332, 0, 2295, 2360, ++ 0, 0, 0, 0, 0, 2350, 1784, 0, 1731, 0, ++ 1753, 0, 0, 0, 0, 1724, 0, 1745, 1705, 1733, ++ 1723, 1494, 1777, 1720, 1721, 992, 991, 986, 1433, 1416, ++ 0, 0, 1413, 1435, 0, 1435, 1416, 1416, 0, 1416, ++ 1487, 1430, 0, 0, 2636, 1515, 2534, 0, 0, 866, ++ 172, 175, 173, 0, 174, 0, 0, 404, 403, 0, ++ 1775, 397, 126, 125, 127, 128, 1549, 1550, 1546, 1547, ++ 1545, 1548, 130, 129, 124, 881, 0, 0, 0, 1775, ++ 377, 356, 357, 360, 361, 362, 953, 856, 1035, 932, ++ 0, 621, 856, 807, 812, 812, 930, 0, 1035, 0, ++ 0, 0, 0, 0, 1035, 0, 0, 0, 1655, 0, ++ 943, 893, 0, 0, 0, 0, 0, 944, 0, 894, ++ 1655, 0, 0, 0, 0, 0, 1035, 0, 0, 0, ++ 441, 0, 1035, 912, 973, 971, 972, 0, 1035, 1035, ++ 0, 571, 572, 570, 0, 0, 0, 563, 545, 769, ++ 895, 440, 896, 620, 0, 967, 617, 623, 1950, 0, ++ 0, 0, 0, 136, 2589, 0, 1454, 190, 97, 86, ++ 82, 101, 1559, 1560, 1558, 1556, 1557, 102, 84, 85, ++ 89, 88, 90, 91, 92, 87, 93, 83, 94, 103, ++ 104, 81, 1032, 0, 0, 0, 0, 1775, 386, 0, ++ 0, 1655, 346, 363, 364, 367, 368, 369, 370, 371, ++ 374, 372, 373, 0, 2480, 2482, 0, 0, 340, 339, ++ 0, 131, 2607, 0, 0, 620, 106, 439, 543, 546, ++ 849, 851, 850, 837, 836, 107, 109, 111, 1614, 1691, ++ 1416, 1513, 1955, 1494, 0, 1690, 0, 0, 1322, 1358, ++ 0, 1384, 0, 1220, 724, 724, 724, 1367, 709, 1371, ++ 1362, 724, 1363, 724, 1365, 0, 755, 0, 754, 0, ++ 1180, 1195, 0, 0, 0, 0, 0, 0, 1329, 1326, ++ 0, 0, 0, 0, 1352, 0, 0, 0, 1225, 0, ++ 1312, 1334, 1332, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 1340, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1213, 1106, 2548, ++ 2550, 1077, 0, 2540, 2542, 2346, 2347, 2348, 858, 1345, ++ 0, 1141, 1137, 0, 1135, 1500, 1156, 1155, 0, 0, ++ 0, 1145, 1107, 1308, 1106, 0, 1374, 1949, 418, 582, ++ 1595, 73, 1808, 2486, 0, 2497, 0, 0, 0, 0, ++ 0, 0, 0, 2392, 1525, 1665, 0, 1066, 1070, 1964, ++ 1862, 2385, 2386, 2384, 0, 459, 460, 462, 1107, 476, ++ 454, 0, 446, 449, 0, 458, 0, 0, 1001, 1007, ++ 1091, 0, 1657, 1642, 1649, 1643, 0, 0, 0, 1641, ++ 1939, 1938, 1945, 2523, 0, 0, 2413, 0, 0, 0, ++ 2526, 1494, 1494, 1579, 0, 0, 1083, 1088, 1084, 1087, ++ 0, 1105, 1112, 1111, 1940, 1947, 0, 0, 0, 0, ++ 757, 756, 765, 0, 0, 0, 2345, 0, 761, 763, ++ 762, 2355, 760, 1786, 1522, 1741, 1740, 1537, 1528, 0, ++ 1531, 1530, 1716, 1522, 1735, 1787, 0, 0, 2530, 1428, ++ 0, 1415, 1414, 1436, 0, 1416, 1435, 1435, 0, 1395, ++ 1394, 1669, 1672, 0, 1393, 1452, 1418, 1091, 2626, 2638, ++ 0, 768, 767, 581, 764, 580, 177, 176, 182, 183, ++ 1563, 1564, 1561, 1562, 410, 423, 1565, 424, 398, 123, ++ 411, 412, 378, 0, 358, 622, 857, 915, 0, 0, ++ 0, 812, 616, 856, 821, 813, 856, 856, 0, 0, ++ 555, 552, 934, 558, 913, 905, 914, 925, 927, 0, ++ 554, 573, 0, 0, 561, 856, 900, 941, 942, 964, ++ 549, 0, 592, 593, 591, 567, 574, 550, 551, 936, ++ 0, 1509, 1511, 1519, 557, 556, 1570, 1569, 560, 0, ++ 553, 0, 947, 920, 0, 589, 587, 584, 586, 585, ++ 590, 588, 562, 559, 575, 910, 0, 952, 952, 929, ++ 0, 600, 601, 603, 604, 1953, 0, 969, 931, 0, ++ 605, 618, 606, 0, 0, 579, 578, 576, 577, 0, ++ 146, 0, 0, 883, 0, 139, 137, 148, 0, 0, ++ 0, 1457, 0, 1458, 1455, 1456, 0, 98, 100, 417, ++ 416, 415, 414, 387, 0, 0, 0, 1775, 365, 2481, ++ 2479, 2478, 0, 0, 2614, 343, 341, 342, 0, 0, ++ 192, 598, 599, 597, 596, 0, 427, 0, 2011, 425, ++ 0, 438, 0, 1873, 769, 547, 0, 0, 0, 0, ++ 1494, 1538, 1958, 1684, 0, 1253, 1385, 0, 0, 725, ++ 1359, 777, 1369, 0, 1370, 711, 710, 726, 1361, 1364, ++ 1368, 1366, 1219, 1227, 1275, 0, 1193, 1276, 1277, 0, ++ 1299, 1222, 1221, 0, 0, 0, 1259, 1260, 0, 1350, ++ 0, 0, 1233, 0, 1235, 0, 0, 1314, 1289, 1305, ++ 1262, 1293, 0, 1238, 1214, 0, 1263, 0, 1268, 1266, ++ 0, 1242, 0, 0, 1249, 0, 1247, 0, 1248, 0, ++ 1250, 1295, 1297, 1426, 2549, 1078, 0, 0, 1347, 1133, ++ 0, 1142, 1139, 0, 1136, 1108, 1319, 1309, 0, 1806, ++ 2487, 0, 2418, 2470, 2469, 2490, 2490, 2490, 0, 1496, ++ 0, 1622, 1061, 1066, 1070, 0, 1062, 1873, 463, 0, ++ 0, 0, 483, 0, 481, 457, 0, 1042, 1012, 1106, ++ 1639, 1651, 0, 1659, 0, 0, 1636, 1646, 0, 0, ++ 0, 1645, 244, 0, 2410, 2411, 2409, 1524, 1502, 0, ++ 0, 1591, 0, 1586, 1099, 0, 1110, 1109, 0, 2362, ++ 0, 2361, 2373, 2374, 2371, 2372, 2370, 2351, 0, 2357, ++ 2356, 0, 0, 0, 2367, 2358, 0, 0, 1732, 1527, ++ 1734, 1728, 993, 2536, 1487, 1420, 1416, 1391, 1416, 1402, ++ 0, 0, 1416, 1398, 1396, 1400, 0, 1494, 0, 1417, ++ 1449, 1106, 1942, 1516, 1519, 359, 917, 0, 856, 808, ++ 809, 821, 0, 821, 821, 0, 0, 904, 0, 1021, ++ 0, 909, 765, 568, 940, 939, 569, 0, 902, 0, ++ 1520, 1521, 1512, 442, 901, 922, 907, 1831, 933, 620, ++ 968, 789, 705, 654, 645, 724, 648, 647, 691, 724, ++ 659, 709, 707, 677, 709, 709, 684, 683, 701, 687, ++ 667, 777, 777, 666, 704, 777, 688, 686, 690, 0, ++ 692, 709, 697, 685, 689, 706, 682, 679, 703, 724, ++ 724, 724, 663, 702, 777, 0, 695, 724, 624, 728, ++ 665, 777, 784, 0, 0, 724, 726, 1952, 147, 135, ++ 0, 0, 885, 887, 0, 0, 888, 2591, 0, 2593, ++ 0, 1069, 0, 95, 0, 0, 348, 413, 366, 2483, ++ 0, 203, 1106, 0, 0, 193, 195, 196, 0, 0, ++ 0, 429, 1875, 1874, 426, 527, 548, 0, 0, 0, ++ 1691, 1686, 0, 1682, 0, 1386, 0, 0, 0, 0, ++ 771, 782, 780, 774, 0, 778, 779, 1360, 0, 0, ++ 727, 1372, 724, 1190, 709, 1184, 1186, 1182, 0, 692, ++ 1185, 724, 0, 777, 1189, 1181, 0, 1330, 0, 0, ++ 1353, 0, 0, 0, 0, 0, 0, 0, 1217, 0, ++ 1310, 0, 0, 0, 0, 0, 0, 1246, 1244, 1245, ++ 1524, 2530, 859, 1138, 0, 1320, 0, 0, 0, 2495, ++ 2495, 2495, 1664, 1663, 0, 1662, 1666, 1063, 1071, 0, ++ 461, 464, 0, 456, 0, 480, 0, 447, 525, 0, ++ 0, 0, 1660, 1648, 2527, 1637, 1640, 1947, 2412, 1090, ++ 0, 1497, 1590, 1587, 0, 1580, 1582, 1584, 0, 1941, ++ 0, 0, 2366, 2352, 766, 0, 0, 0, 0, 2353, ++ 1421, 1419, 1429, 0, 1387, 1416, 1416, 0, 1387, 0, ++ 0, 0, 1671, 1513, 1673, 1453, 0, 1431, 0, 1518, ++ 0, 0, 916, 0, 0, 0, 0, 0, 0, 946, ++ 0, 967, 906, 926, 948, 937, 1035, 1510, 921, 923, ++ 1004, 0, 602, 0, 793, 653, 646, 664, 662, 713, ++ 708, 0, 713, 713, 673, 691, 668, 0, 777, 681, ++ 672, 693, 696, 698, 700, 713, 0, 777, 661, 660, ++ 670, 657, 713, 736, 0, 0, 0, 0, 732, 0, ++ 787, 0, 739, 0, 625, 729, 731, 0, 0, 0, ++ 694, 777, 650, 785, 784, 652, 777, 784, 713, 713, ++ 0, 133, 138, 149, 150, 876, 2590, 0, 2588, 0, ++ 1065, 1459, 99, 0, 0, 206, 204, 205, 0, 199, ++ 201, 196, 2601, 0, 2608, 0, 0, 2606, 428, 431, ++ 542, 528, 0, 0, 1519, 854, 0, 0, 2251, 1539, ++ 1254, 722, 720, 723, 721, 773, 772, 776, 0, 775, ++ 784, 0, 0, 1192, 1187, 693, 1191, 1183, 1188, 1280, ++ 1257, 1258, 0, 1351, 1342, 1286, 0, 1234, 1311, 0, ++ 0, 1294, 1264, 1267, 1265, 1270, 1271, 1098, 1098, 594, ++ 2543, 1140, 1833, 2498, 0, 0, 2494, 2492, 0, 2493, ++ 2491, 2461, 0, 2416, 2417, 2415, 2402, 0, 0, 0, ++ 1106, 469, 0, 486, 485, 482, 1524, 1650, 1652, 1658, ++ 1647, 0, 1498, 1513, 758, 1583, 0, 1100, 2364, 2363, ++ 2365, 2359, 0, 0, 0, 0, 1403, 0, 1407, 1412, ++ 1408, 0, 1399, 1397, 0, 1538, 1441, 1442, 0, 0, ++ 1447, 1451, 1524, 1519, 919, 0, 619, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 945, 1917, 935, ++ 967, 903, 0, 908, 564, 0, 792, 0, 797, 717, ++ 718, 719, 674, 714, 716, 0, 676, 644, 669, 699, ++ 675, 0, 671, 658, 742, 741, 1116, 734, 749, 629, ++ 0, 0, 740, 626, 730, 738, 733, 0, 649, 651, ++ 655, 656, 642, 643, 1951, 140, 889, 280, 2592, 1081, ++ 0, 2597, 121, 2605, 2615, 203, 0, 0, 144, 0, ++ 194, 765, 197, 2527, 439, 0, 434, 824, 0, 853, ++ 0, 826, 828, 1540, 0, 783, 781, 0, 1354, 1519, ++ 0, 1313, 1315, 1427, 595, 0, 1809, 2467, 2466, 2465, ++ 2462, 0, 0, 0, 0, 0, 0, 2496, 2500, 1661, ++ 0, 0, 0, 477, 0, 0, 511, 526, 1506, 1519, ++ 0, 1524, 0, 1588, 1581, 2369, 2368, 2354, 1422, 0, ++ 0, 0, 0, 0, 1460, 1670, 1437, 1437, 1448, 1432, ++ 1517, 918, 0, 0, 607, 0, 0, 1919, 1918, 938, ++ 0, 790, 0, 794, 795, 796, 0, 788, 715, 0, ++ 860, 0, 748, 1116, 737, 0, 746, 745, 743, 744, ++ 0, 142, 306, 0, 292, 278, 0, 0, 0, 282, ++ 151, 154, 152, 0, 153, 159, 0, 160, 161, 162, ++ 163, 164, 155, 304, 305, 158, 156, 157, 0, 1967, ++ 0, 1968, 2595, 0, 0, 2594, 170, 200, 0, 0, ++ 136, 145, 2609, 747, 432, 1873, 0, 2523, 0, 1655, ++ 108, 825, 845, 844, 830, 0, 1519, 0, 0, 110, ++ 827, 847, 834, 112, 829, 846, 832, 1541, 712, 0, ++ 1356, 1232, 0, 2463, 2501, 2504, 2502, 2503, 1542, 0, ++ 2505, 2499, 0, 1863, 1107, 0, 470, 0, 473, 475, ++ 489, 0, 1655, 1655, 0, 0, 1655, 1655, 1655, 1655, ++ 504, 512, 514, 0, 1507, 1508, 0, 1503, 1505, 1499, ++ 1571, 759, 1876, 2530, 1404, 0, 1409, 0, 1401, 0, ++ 0, 1445, 1443, 0, 613, 824, 609, 611, 0, 791, ++ 0, 0, 777, 0, 777, 735, 1106, 141, 0, 134, ++ 0, 0, 291, 294, 0, 0, 297, 287, 286, 288, ++ 0, 281, 280, 280, 334, 285, 331, 330, 323, 2527, ++ 0, 0, 0, 2616, 202, 1106, 148, 0, 430, 436, ++ 435, 839, 0, 831, 0, 852, 855, 0, 835, 833, ++ 1519, 1834, 1544, 1543, 1667, 1675, 0, 758, 0, 478, ++ 471, 0, 0, 487, 0, 0, 1655, 1655, 0, 0, ++ 0, 0, 0, 484, 513, 1655, 1519, 0, 1089, 0, ++ 1884, 1423, 0, 0, 1461, 0, 1438, 0, 0, 0, ++ 615, 824, 608, 826, 828, 0, 803, 0, 802, 0, ++ 799, 798, 678, 861, 680, 0, 143, 307, 318, 321, ++ 313, 293, 0, 0, 0, 283, 280, 0, 267, 265, ++ 266, 272, 273, 274, 275, 276, 277, 268, 271, 269, ++ 270, 280, 0, 211, 0, 0, 2596, 0, 2598, 0, ++ 180, 179, 171, 0, 280, 2602, 0, 2610, 2527, 838, ++ 843, 842, 840, 841, 848, 1355, 0, 0, 1864, 465, ++ 477, 474, 497, 490, 493, 0, 523, 517, 0, 0, ++ 519, 520, 518, 515, 508, 0, 506, 0, 1504, 1572, ++ 0, 0, 0, 0, 1877, 1879, 0, 1589, 1406, 1411, ++ 1440, 1439, 1454, 0, 614, 610, 612, 924, 805, 806, ++ 804, 0, 0, 630, 0, 0, 280, 314, 0, 289, ++ 0, 0, 0, 0, 209, 337, 0, 207, 325, 325, ++ 2599, 2600, 181, 2617, 0, 150, 170, 437, 1674, 1676, ++ 1890, 472, 497, 0, 495, 0, 491, 488, 492, 521, ++ 522, 0, 505, 0, 516, 0, 0, 0, 0, 0, ++ 1878, 0, 0, 1885, 1887, 0, 0, 0, 0, 632, ++ 631, 633, 315, 321, 311, 319, 280, 0, 0, 279, ++ 298, 333, 210, 0, 335, 0, 280, 0, 324, 326, ++ 328, 0, 132, 2611, 0, 1876, 494, 0, 502, 498, ++ 500, 503, 511, 510, 507, 1106, 1882, 1883, 0, 1880, ++ 0, 0, 1886, 1446, 1444, 801, 800, 0, 637, 627, ++ 634, 636, 0, 312, 0, 0, 310, 290, 295, 280, ++ 0, 280, 222, 221, 0, 213, 261, 332, 0, 212, ++ 2603, 280, 0, 1884, 496, 0, 0, 509, 0, 0, ++ 1575, 1577, 1881, 1889, 1888, 639, 638, 635, 316, 0, ++ 280, 0, 280, 0, 280, 0, 0, 0, 0, 0, ++ 208, 280, 2612, 0, 1892, 501, 499, 1107, 1573, 1106, ++ 0, 308, 280, 296, 301, 338, 0, 216, 262, 263, ++ 0, 219, 2604, 1891, 0, 1896, 1578, 1576, 280, 280, ++ 297, 300, 336, 0, 0, 214, 215, 227, 226, 218, ++ 0, 0, 0, 1903, 280, 280, 302, 235, 233, 280, ++ 223, 231, 225, 0, 232, 264, 220, 1894, 1895, 1893, ++ 1898, 0, 0, 1900, 1901, 0, 1865, 0, 217, 234, ++ 1902, 1897, 0, 1904, 1906, 0, 224, 1899, 0, 1106, ++ 1905, 0, 1107, 1907 ++}; ++ ++ /* YYPGOTO[NTERM-NUM]. */ ++static const yytype_int16 yypgoto[] = ++{ ++ -3798, -3798, -3798, -3798, -3798, 71, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 1713, -3798, -3798, -3798, -3798, -3798, ++ 1920, -3798, 653, -1794, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, 651, 1542, 3332, -3798, 388, -3798, 55, -3798, ++ -3798, -3798, -2866, -69, -259, -3798, -3798, 344, 17, 3000, ++ -258, -3797, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, 398, 395, -3798, -3798, 206, -3798, -3798, -1120, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -454, -406, 1852, ++ -3798, -3798, -3798, 3959, -3798, 3428, -3798, 1236, 2184, -3798, ++ -3798, -3798, -413, 225, -3798, 227, -3798, 228, -3798, 229, ++ -3798, 230, 233, 237, 238, -3798, 240, -3798, -3798, -412, ++ -3798, -3798, -3798, -3798, 242, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -263, -3798, -3798, -108, -3798, -3798, -261, 246, ++ -3798, -214, 249, -3798, 250, -3798, -127, -3798, -124, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, 3001, -3798, -3798, -3798, -2217, -3798, -3798, -2123, 2566, ++ -3798, -1678, -3798, -3798, -1785, -3798, -3798, -1623, 1024, -3798, ++ -3798, -130, -351, -3798, -1385, -1892, -1885, -3798, -3798, -3798, ++ -1981, -1980, -781, 2296, -1184, -2208, -3798, -3798, -3798, -3798, ++ 103, -3798, -3798, -2534, 2025, 2569, -3798, 2560, -3798, -3798, ++ 1122, -3798, -3798, 1303, 611, 1300, -3798, 918, 2745, -1242, ++ -3798, -3798, -3798, -3798, -3798, -3798, -33, 217, -129, -3798, ++ -3326, 617, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -2613, -3798, -3798, -3798, -300, -3798, -3798, -207, -3798, -3798, ++ -255, -3798, 68, -2282, -3798, -3798, -3798, -3798, 2539, -1310, ++ -3798, 3554, -3798, -558, 463, 2061, -2387, -1402, -3798, -928, ++ -909, -2442, -3798, -3798, -3798, -3325, 1072, 1486, -3798, 819, ++ 2066, -1886, -3798, -3798, -3798, -3798, -3798, 1553, -3798, -3798, ++ 844, -3798, 836, -3798, -3798, -3798, -3798, -3798, -251, -3798, ++ 54, -2720, -3798, -3798, -3798, -1896, 1038, 812, -3798, -3798, ++ -3798, -936, -2079, -585, -3798, 338, -2519, -2402, 781, -3798, ++ -3798, 535, -3692, -3798, -3798, -572, -2071, -2356, 15, -3798, ++ -3798, 554, -3082, 923, -3798, -3798, -3798, -3096, -1849, -3798, ++ 86, -3798, -3798, -3798, -3798, -3779, -3798, -3798, -1461, -2240, ++ -3798, -3798, 4099, 4101, -1038, -2631, -3708, -9, -8, -3798, ++ -3798, -3798, 2578, -1571, 177, 160, 169, 2032, -1145, 323, ++ -2270, -3798, 373, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 2115, ++ -815, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -2373, 896, ++ -3798, -3798, 1618, -3798, -3798, -3798, -1838, 3167, -3798, -3798, ++ -3798, -3798, 3508, -2143, -3230, -3798, -3798, -3798, -3798, -3798, ++ -3798, 1265, -3798, -3798, 2243, 2706, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 621, 1813, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, 904, 2622, -3798, -3798, -3798, ++ -3798, 25, -3798, -3798, -3798, -3798, 2332, -3798, -3798, -3798, ++ -3798, 2663, -3798, -3798, -3798, -3798, -3798, -3798, 1415, -3798, ++ 1847, -3798, -1435, -3798, -3798, 1019, -984, 1800, -592, 1934, ++ 366, -3798, 3557, -3798, -3798, -3798, -1625, -2453, -3798, 3247, ++ -1047, -2495, 2326, -537, -1818, 1044, 1663, -689, 3995, -3798, ++ -1149, -1127, -3798, -3798, -647, -3798, -3798, -3798, -3798, -3798, ++ 2026, 2035, -651, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, 1449, -3798, -3798, -3798, -3798, -1725, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, 1924, -3798, -2040, ++ -3798, -3798, -473, -3798, 3035, -3798, -3798, -3798, -2291, -1900, ++ 1757, 963, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -2333, -3798, -3798, -3798, -3798, -3798, 1946, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -1621, -3798, -1840, 303, -3798, ++ 451, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -49, 843, ++ -47, -2067, -1100, 1676, -3798, -3798, -1273, 3075, -1984, -3798, ++ -3798, -3798, 1927, -3798, -3798, -3798, -3798, -3798, 930, -2544, ++ 2731, -3798, -3798, -3121, -907, -2238, -895, -3798, -1348, 1363, ++ 466, -3798, -1908, -1777, -2050, -2482, -1095, -3798, 1673, -3798, ++ -3798, -3798, -3798, -212, -3798, -3798, -3798, 494, 1836, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -571, ++ -748, -3798, 2091, 1103, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, 2896, 2865, 1901, -3798, -3798, -2248, -3798, ++ -3798, 1867, -3798, 755, -1994, -1808, 1051, -3798, -3798, 1053, ++ -3165, -3798, -3798, -3798, -3798, -3798, -3798, 994, -3798, 26, ++ 3624, -3798, -3798, -3798, -3798, -3798, -3798, -3798, 2660, -1058, ++ 3544, -3798, -3798, -3798, -3798, -3798, -3798, 2333, -3798, -3798, ++ -3798, -3798, -3798, -3798, 2832, 3641, -575, -1224, -3798, -774, ++ 2805, 2335, -746, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, 2457, 968, -3798, -3798, ++ -3798, -3798, 2889, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, 1090, -87, -3798, 16, -132, -3798, -50, ++ -3798, -3798, -3798, -3798, -3798, -228, -3798, -3798, -233, -691, ++ -986, -1353, 682, -1781, -2009, 1078, 2874, -3276, -693, -1158, ++ -1173, -1890, 59, -3798, -3798, 3343, 10, 384, -320, -6, ++ -2732, -109, -573, -3798, -1752, -3798, -3798, -3798, -3798, 2401, ++ -3798, -3798, -3798, -3798, 1435, -3798, -3798, -3798, 1047, -3798, ++ 769, 541, -3798, -3798, 179, -3798, 2454, -3798, -3798, -3798, ++ -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, ++ -3798, 2893, 3679, 3359, -3798, 2960, -3798, -3798, -3798, -3798, ++ -3798, 422, -3798, 645, -2236, -1659, -3798, -3798, 2720, 851, ++ -3798, 1535, -252, -545, -3798, -3798, 420, -3798, -3798, 289, ++ 3691, 3362, -3798, -3798, -3798, -3798, -3798, -2709, -890, -3798, ++ -3324, -2760, -1685, -3798, -3798, -2127, -2971, -3798, -3798, -1041, ++ -3798, -3798, -3798, -3798, -2016, -3798, -3798, -3798, 66, 3751, ++ 3753, -3798, -3798, -215, -3798, 678, -3798, -3798, -3798, -3798, ++ -3798, -3798, -3798, 3604, -3798, -3798, -3798, -3798, 3609, -3798, ++ -3798, -3798, -3798, -3798, 3610, -3798, -3798, -3798, -3798, -3798, ++ 1840, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798, -3798 ++}; ++ ++ /* YYDEFGOTO[NTERM-NUM]. */ ++static const yytype_int16 yydefgoto[] = ++{ ++ -1, 58, 604, 1454, 59, 60, 61, 62, 63, 1323, ++ 64, 818, 1250, 1757, 1758, 65, 543, 66, 1027, 1511, ++ 1512, 2986, 2987, 1513, 67, 2098, 3026, 3027, 3028, 1531, ++ 513, 514, 1950, 1951, 1053, 3009, 2973, 3785, 2977, 3901, ++ 4039, 3940, 2026, 3326, 3786, 3787, 3910, 538, 2096, 1468, ++ 4063, 1930, 4172, 1931, 68, 639, 1025, 1490, 1491, 3344, ++ 3345, 3606, 3346, 3598, 3599, 3600, 3601, 4306, 4146, 4247, ++ 4307, 4387, 4423, 4429, 4430, 4354, 4439, 4440, 4441, 4427, ++ 890, 4442, 69, 566, 567, 892, 1354, 2345, 1355, 70, ++ 4355, 4425, 4147, 4148, 4046, 4149, 3913, 4150, 4050, 4151, ++ 3916, 4152, 4153, 4154, 4155, 4298, 4156, 4045, 4347, 4143, ++ 4144, 4349, 4404, 4421, 4157, 3923, 4040, 4234, 3924, 4041, ++ 4293, 4139, 4294, 4342, 4400, 4140, 4235, 4345, 4238, 4158, ++ 4164, 4308, 4159, 4165, 4160, 3928, 4057, 4163, 4055, 4162, ++ 4351, 4303, 2590, 3008, 622, 623, 652, 2086, 624, 1042, ++ 999, 1470, 1963, 1964, 2451, 2452, 2572, 2573, 2574, 1955, ++ 1956, 1957, 2074, 2075, 2076, 1937, 1938, 1939, 1474, 1934, ++ 1935, 625, 1000, 1010, 1958, 1959, 1960, 2578, 2078, 2079, ++ 2080, 2081, 1961, 1750, 1962, 2864, 2596, 3019, 3610, 3803, ++ 3354, 3947, 4178, 3020, 3021, 2521, 2929, 2500, 71, 555, ++ 870, 1320, 2317, 1321, 2319, 2744, 2745, 2746, 1800, 1801, ++ 3681, 1805, 2316, 3843, 4190, 3987, 3988, 2748, 3986, 2752, ++ 3143, 3144, 3444, 3683, 3846, 4195, 4092, 4267, 4193, 4263, ++ 4194, 4265, 4366, 4319, 4320, 4103, 4205, 4206, 4271, 4322, ++ 4000, 4001, 4002, 2338, 2760, 3686, 3612, 2068, 1460, 1461, ++ 515, 516, 517, 649, 2597, 2012, 2598, 2599, 2946, 2014, ++ 2015, 2718, 1388, 2942, 2915, 3657, 3015, 2950, 2951, 2952, ++ 2953, 2954, 4025, 4123, 4124, 4121, 2960, 2882, 2460, 2461, ++ 2526, 2963, 3308, 3895, 3563, 4291, 4339, 4340, 4341, 72, ++ 867, 3801, 3531, 3546, 3310, 3311, 3312, 3313, 3314, 3315, ++ 3316, 3044, 3045, 3752, 3753, 3754, 3039, 3040, 3381, 3564, ++ 3565, 3566, 3802, 3767, 1174, 3374, 2801, 2802, 3853, 2810, ++ 2811, 2852, 3189, 2853, 1464, 3375, 3376, 3377, 3575, 3567, ++ 2962, 3524, 3745, 3748, 3887, 4130, 2462, 2883, 2463, 2886, ++ 953, 518, 2464, 2465, 1545, 1546, 3950, 3959, 3963, 3951, ++ 3964, 3960, 3952, 3953, 3954, 3966, 3962, 2603, 3613, 3614, ++ 2875, 3108, 3889, 73, 1478, 993, 1002, 998, 1017, 634, ++ 1479, 2027, 2533, 3585, 612, 2016, 3516, 3239, 3520, 2017, ++ 2895, 2018, 3226, 3502, 2019, 3255, 3518, 3742, 2896, 2897, ++ 2020, 2021, 2022, 3238, 3247, 3740, 2466, 1302, 126, 127, ++ 630, 631, 632, 2269, 2958, 2507, 74, 1436, 1431, 75, ++ 965, 960, 961, 1434, 1435, 1896, 2396, 76, 642, 1517, ++ 1332, 1816, 77, 879, 2330, 2331, 2332, 2758, 78, 1018, ++ 79, 644, 1031, 80, 501, 1525, 1526, 1527, 2065, 81, ++ 1314, 134, 82, 878, 1326, 1328, 1329, 83, 638, 1019, ++ 1020, 1021, 1022, 2032, 84, 1791, 2301, 2302, 2303, 2304, ++ 1487, 2535, 1488, 1489, 2041, 3136, 85, 86, 601, 2224, ++ 572, 899, 573, 574, 1835, 2358, 3658, 910, 911, 912, ++ 2786, 1366, 1367, 1368, 1797, 2791, 1107, 1104, 783, 784, ++ 785, 786, 1198, 1199, 3568, 787, 1208, 1716, 3056, 3395, ++ 1576, 1577, 788, 789, 790, 791, 792, 793, 1743, 3076, ++ 3077, 3410, 2254, 2255, 2256, 794, 2143, 3063, 2156, 795, ++ 1191, 1701, 1634, 3402, 3069, 3642, 3818, 1562, 2118, 2635, ++ 3047, 2715, 2218, 1130, 1131, 1088, 2125, 1568, 1903, 1904, ++ 1905, 1906, 1907, 3490, 3489, 3491, 3859, 3707, 3861, 3711, ++ 2407, 1908, 1909, 2827, 3705, 4013, 2219, 2220, 2221, 3420, ++ 2828, 3206, 2846, 2847, 3722, 2398, 1910, 2834, 4021, 3719, ++ 3720, 4119, 4118, 3721, 3495, 3496, 3219, 3220, 2982, 2983, ++ 2984, 3863, 1625, 1626, 1632, 1297, 1298, 1563, 2298, 2732, ++ 3693, 3850, 2245, 3461, 3848, 4007, 2023, 2921, 2922, 2360, ++ 2361, 2850, 3223, 3252, 1391, 3659, 2734, 1869, 2817, 2818, ++ 3363, 3980, 4428, 1595, 2547, 2865, 2866, 1597, 2928, 4108, ++ 4275, 4369, 4370, 4371, 3171, 3172, 3465, 3466, 2362, 2783, ++ 3173, 3694, 4012, 87, 522, 88, 1755, 2260, 1247, 2274, ++ 1029, 1549, 1550, 806, 535, 89, 544, 2299, 90, 562, ++ 1819, 857, 882, 1336, 1337, 2339, 2761, 2768, 2340, 2773, ++ 3454, 2763, 3150, 3151, 2264, 2265, 2764, 3153, 3451, 3434, ++ 3435, 3131, 3678, 91, 589, 3217, 2841, 2842, 4084, 4085, ++ 883, 92, 521, 1075, 2107, 1555, 2106, 1076, 1077, 2109, ++ 670, 671, 93, 967, 585, 1413, 1414, 1415, 1885, 94, ++ 577, 954, 2814, 2823, 1863, 874, 1243, 1395, 957, 1396, ++ 1849, 2378, 1377, 95, 989, 988, 96, 608, 1456, 97, ++ 819, 1270, 1767, 2722, 3119, 1271, 1272, 2275, 3826, 98, ++ 563, 887, 888, 1339, 1821, 99, 557, 875, 1811, 100, ++ 547, 862, 1306, 1790, 101, 102, 864, 3137, 4087, 4260, ++ 551, 1793, 1310, 3355, 4110, 4214, 4215, 4217, 4283, 4284, ++ 4315, 4415, 4449, 4433, 4452, 4453, 4456, 4463, 4464, 797, ++ 976, 798, 3737, 799, 800, 2769, 2770, 3224, 801, 2771, ++ 802, 2876, 1030, 1552, 541, 493, 619, 977, 2740, 804, ++ 3930, 996, 1046, 495, 496, 103, 914, 576, 1370, 1371, ++ 1372, 1844, 1845, 958, 2233, 1846, 1847, 2375, 2370, 3473, ++ 3195, 3187, 104, 865, 500, 1312, 1313, 2310, 105, 588, ++ 106, 1299, 1784, 1785, 2295, 2731, 2296, 107, 895, 108, ++ 844, 1778, 845, 1275, 846, 847, 1289, 1283, 1292, 1286, ++ 3831, 3670, 3671, 2283, 1246, 1047, 2090, 3002, 1048, 1770, ++ 2277, 2278, 3429, 3673, 3122, 3837, 3838, 109, 135, 503, ++ 647, 1037, 1360, 110, 111, 112, 113, 1363, 1449, 2354, ++ 1450, 2225, 1451, 1452, 1917, 1833, 1697, 1698, 3106, 1188, ++ 1189, 2228, 2688, 2689, 913, 656, 1063, 1055, 128, 129, ++ 130, 659, 660, 131, 1015, 1016, 2534, 2979, 3328, 3588, ++ 3589, 3791, 3935, 1057, 3797, 4254, 4391, 1058, 1059, 3010, ++ 3799, 4067, 4256, 4361, 1060, 2587, 3341, 3936, 4174, 114, ++ 978, 598, 1447, 1442, 1444, 1913, 2414, 115, 116, 117 ++}; ++ ++ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If ++ positive, shift that token. If negative, reduce the rule whose ++ number is the opposite. If YYTABLE_NINF, syntax error. */ ++static const yytype_int16 yytable[] = ++{ ++ 494, 1040, 956, 1457, 1455, 952, 1686, 1105, 984, 1364, ++ 1113, 1596, 2226, 536, 137, 621, 542, 868, 2363, 2364, ++ 1557, 1685, 1662, 492, 1083, 1639, 556, 2314, 2040, 1132, ++ 2529, 1392, 1242, 568, 1547, 1548, 571, 1871, 1794, 2442, ++ 568, 997, 1870, 2347, 1420, 537, 2910, 2966, 590, 796, ++ 2558, 1707, 2037, 3494, 553, 2767, 1392, 2637, 1751, 1715, ++ 2733, 561, 2855, 3023, 3161, 1462, 1163, 3031, 3205, 1167, ++ 2646, 1028, 2454, 2839, 1032, 1604, 2013, 1803, 1176, 2455, ++ 2459, 540, 1717, 1718, 1463, 1940, 1721, 1722, 1723, 1724, ++ 610, 1726, 1727, 1729, 1731, 1732, 1733, 1734, 1735, 2346, ++ 2694, 2395, 2647, 3499, 1070, 2579, 2580, 3322, 2830, 3046, ++ 2906, 2417, 2418, 613, 2776, 494, 2840, 494, 620, 626, ++ 1054, 1062, 2788, 2611, 1184, 1185, 1186, 2720, 2429, 2467, ++ 3690, 2527, 3830, 2471, 1335, 3421, 1227, 2539, 615, 1226, ++ 617, 1295, 2549, 1953, 2486, 2447, 2448, 2077, 2555, 2556, ++ 1918, 2267, 3000, 2560, 2495, 609, 646, 1193, 1194, 1809, ++ 3514, 2469, 2470, 2504, 2472, 3573, 2087, 2475, 2476, 1193, ++ 1194, 2479, 2126, 1193, 1194, 3725, 2488, 1878, 1386, 1422, ++ 2491, 2492, 2493, 2494, 1798, 3534, 3539, 2498, 2499, 3540, ++ 2501, 4337, 2884, 3103, 2576, 1888, 2510, 635, 2064, 2514, ++ 2515, 2577, 2517, 1891, 1892, 2690, 1421, 552, 3550, 1287, ++ 2359, 2613, 3025, 1290, 560, 3572, 1193, 1194, 3626, 1438, ++ 972, 3698, 3723, 3041, 3042, 2887, 548, 2600, 1170, 3048, ++ -1450, 3050, 2757, 1775, 2874, 850, 2327, 1375, 4052, 2870, ++ 2871, 1033, 1245, 3309, 1228, 3406, 4064, 3235, 1193, 1194, ++ 3541, 2230, 4131, 3232, 3352, 2383, 917, 918, 860, 732, ++ 1228, 3883, 2563, 2564, 2565, 2566, 4171, -1450, 3948, 4266, ++ 1193, 1194, -2464, 1445, 2511, 4447, 1860, 3192, 2450, -1490, ++ 3428, 3739, 2593, 1459, 3169, 3688, 1942, 3370, 1953, 2411, ++ 2568, 2835, 1459, 1050, -1954, 2956, 1308, 3638, 661, 1043, ++ 3371, 2971, 136, 2836, 1327, 3193, 1466, 3149, 667, 2912, ++ 1193, 1194, -865, 636, 3372, 2431, 1459, 4122, 1193, 1194, ++ 1560, -529, 2231, 2028, 1560, 917, 918, 2813, 2858, 1390, ++ 570, 1861, 545, 1035, 2583, 586, 1432, 581, 1193, 1194, ++ 549, 2356, 4281, 1806, 3442, -530, 1514, 3370, 2083, 1936, ++ 1295, 1193, 1194, 4030, 2244, 1193, 1194, 2991, 2992, 3203, ++ 3371, 3847, 3121, 4082, 1193, 1194, 3819, 668, 2038, 2123, ++ 136, 1193, 1194, 4282, 3372, 4177, 2799, 2803, 2805, 653, ++ 1193, 1194, 2913, 497, 569, 917, 918, 1807, 3443, 2601, ++ 1536, 2209, 2039, 4053, 3221, 973, 974, 3869, 651, 138, ++ 813, 1322, 4236, 1171, 1172, 582, 262, 2824, 264, 502, ++ 1433, 3664, 1036, 4224, 3005, 3849, 1390, 1193, 1194, 2890, ++ 3204, 3087, 1603, 1954, 637, 1193, 1194, 1193, 1194, 546, ++ 917, 918, 587, 1914, 853, 2029, 1132, 3949, 4083, 4236, ++ 2859, 1776, 3758, 2917, 2918, 1069, 2972, 1483, 2512, 1561, ++ 2998, 3762, 3884, 1584, 1911, 3194, 2782, 756, 1747, 1239, ++ 1518, 4448, 1397, 1402, 1193, 1194, 1193, 1194, 3353, 2957, ++ 1446, 1536, 640, 2328, 2815, 3778, 1193, 1194, 2914, 3944, ++ 3780, 1193, 1194, 1111, 2584, 2194, 2267, 1193, 1194, 1193, ++ 1194, 1309, 2837, 3809, 1936, 669, 1425, 1193, 1194, 1193, ++ 1194, 620, 3209, 626, 2848, 1193, 1194, 1862, 4335, 4336, ++ 3879, 3170, 3839, 1537, 1538, 1539, 4171, 3006, 3156, 2232, ++ 809, 2485, 1195, 2781, 626, 1196, 1195, 3309, 2384, 1196, ++ 1193, 1194, 1462, 848, 1193, 1194, 1034, 620, 861, 858, ++ 3407, 3164, 3165, 3166, 1229, 2268, 3242, 2530, 3716, 1112, ++ 3885, 1463, 876, 1940, 1335, 1712, 859, 1916, 4054, 2454, ++ 1229, 1720, 2891, 1751, 2893, 2838, 2455, 852, 1954, 1195, ++ 1777, 2904, 1196, 1376, 3236, 1193, 1194, 2888, 1741, 2453, ++ 968, 2892, 851, 1515, 2916, 3717, 1335, 1193, 1194, 4262, ++ 2925, 2927, 2579, 2580, 3665, 2908, 2909, 969, 2246, 987, ++ 3505, 1195, 3870, 1462, 1196, 2919, 2943, 2927, 620, 2249, ++ 1001, 2013, 2252, 3231, -1490, 1748, 3233, 3234, 1571, 1572, ++ 2725, 610, 1463, 1195, -1450, 1288, 1196, 494, 1628, 3033, ++ 2988, 1629, 610, 2527, 1026, 3244, 610, 3356, 2602, 610, ++ 1516, 3230, 2329, 1041, 1001, 1627, 1193, 1194, 620, 1873, ++ 1013, 1890, 1876, 1640, 3448, 1642, 3225, 1880, 1071, 1072, ++ 1073, 3660, 4304, 1195, 1078, 2391, 1196, 1655, 1656, 1657, ++ 2903, 1195, 1516, 3104, 1196, 1661, 1754, 1810, 2243, 4338, ++ 645, 2576, 2911, 1893, 1894, 1051, 1011, 897, 2577, 1941, ++ 2077, 1195, 2505, 4080, 1196, 4409, 1291, 1023, 3970, 3699, ++ 2878, 2575, 4125, 1241, 1195, 2527, 2371, 1196, 1195, 1596, ++ 3030, 1196, 1771, 2088, 817, 3001, 1133, 1195, -2464, 3943, ++ 1196, 975, 2089, 550, 1195, 1068, 3497, 1196, 4008, 1173, ++ 4106, 1516, 866, 1195, 3858, 4166, 1196, 2789, 3350, 1296, ++ 1799, 1193, 1194, 1796, 3525, 3526, -1490, 1193, 1194, 2873, ++ -2464, 2082, 3046, 1197, 1942, 3046, 3046, -1490, 2372, 1918, ++ 3038, 2506, 1817, 2996, 3627, 1197, 3245, 970, 2063, 1197, ++ 1195, 2872, 3046, 1196, 1190, 947, 1192, 2829, 1195, 3542, ++ 1195, 1196, 2993, 1196, 1826, 1014, 3551, 2990, 3337, 3958, ++ -865, 2229, 3571, 3574, 3576, 3577, 4031, 3167, 3168, -529, ++ 1235, 494, 1237, 1516, 1001, 494, 620, 2868, 494, 620, ++ 1193, 1194, 1197, 3197, 1193, 1194, 1389, 1195, 2124, 1195, ++ 1196, 1853, 1196, -530, 1236, 2879, 1877, 1426, 1240, 1195, ++ 2210, 1244, 1196, 3373, 1195, 4075, 1052, 1196, 1193, 1194, ++ 1195, 1900, 1195, 1196, 1197, 1196, 1300, 1193, 1194, 3218, ++ 1195, 4138, 1195, 1196, 4257, 1196, 654, 3007, 1195, 610, ++ 1749, 1196, 3088, 3527, 3668, 3046, 1197, 3528, 1193, 1194, ++ 2738, 620, 610, 2767, 3338, 3484, 610, 815, -2584, 3488, ++ 2268, 1324, 3519, 1195, 1692, 1693, 1196, 1195, 4292, 4126, ++ 1196, 2083, 1920, 3373, 3115, 1193, 1194, 3547, 3548, 3549, ++ 1398, 1403, 2582, 877, 2141, 3552, 1197, 1193, 1194, 2816, ++ 3455, 1193, 1194, 3578, 1197, 1193, 1194, 3483, 3570, 620, ++ 2531, 3487, 1193, 1194, 1311, 2195, 118, 3458, 1195, 3459, ++ 3140, 1196, 3941, 2114, 1197, 2804, 4132, 1330, 4134, -1490, ++ 1195, 2620, 3718, 1196, 2878, 1193, 1194, 1197, 1296, 3715, ++ 1427, 1197, 2167, 2142, 1417, 3038, 1193, 1194, 3504, 4185, ++ 1197, 610, 1193, 1194, 3500, 1692, 2160, 1197, 3380, 2198, ++ 2199, -433, 872, 3068, 2307, 1428, 1197, 3145, 2387, 2132, ++ 3633, 2454, 2095, 1458, 4229, 4208, 2133, 3978, 2455, 3636, ++ 1392, 1193, 1194, 2347, 2215, 2216, 3210, 3211, 1273, 1195, ++ 4043, 2969, 1196, 2885, 2885, 1560, 1901, 2373, 2416, 1304, ++ 1902, -2532, 610, 1197, 1193, 1194, 2579, 2580, 2975, 3396, ++ 1392, 1197, 4259, 1197, 1708, 610, -2395, -2396, 1871, 554, ++ 1871, 1871, 3202, 2976, 3595, 2820, 2821, 2880, 3352, 2660, ++ 2136, 2702, 2703, 3596, 120, 1940, 3361, 1193, 1194, 2346, ++ 2970, 2327, 1193, 1194, 1630, 2615, -1775, 1631, 1333, 1540, ++ 1197, 2459, 1197, 4210, 610, 628, 2453, 1932, 1553, 3125, ++ 3126, 3127, 1197, 4211, 1748, 2753, 3480, 1197, 3072, 3073, ++ 3089, 3090, 1702, 1197, 1936, 1197, 1541, 2251, 575, 2099, ++ 3112, 3113, 2701, 1197, 1195, 1197, 2137, 1196, 1193, 1194, ++ 1195, 1197, 2138, 1196, 2140, 2576, 2308, 1193, 1194, 1133, ++ 2486, 2115, 2577, 2100, 2147, -2532, 4115, 2013, 3543, 1740, ++ 2148, 3544, 3241, 1133, 1193, 1194, 1197, 558, 1936, 1544, ++ 1197, 2348, 2385, 1551, 1647, -2395, -2396, 2845, 4289, 1193, ++ 1194, 1462, 2390, 2226, 2127, 2393, 2394, 2706, 2707, 3851, ++ 583, 498, 3708, 3709, 4044, 499, 1827, 1941, 3450, 3393, ++ 1463, 4116, 3366, 1195, 1686, 3366, 1196, 1195, 2825, 3664, ++ 1196, 1197, 1997, 1687, 4047, 4048, 3597, 599, 1193, 1194, ++ 2266, 1231, 2077, 1197, 2270, 620, 2749, 4060, 2575, 4127, ++ 2158, 1195, -1797, 990, 1196, 1038, 1039, 3475, 4061, 2700, ++ 1195, 1709, 2159, 1196, 629, 1748, 2253, 2881, 3501, 2710, ++ 4230, 1933, 584, 1808, 2784, 2300, 1193, 1194, 2000, 2262, ++ 884, 1195, 620, 602, 1196, 1588, 1953, 1744, 1193, 1194, ++ 1193, 1194, 610, 3493, 1230, 1686, 873, 3380, 4070, 2322, ++ 2323, 610, 1197, 1193, 1194, 2326, 1942, 1418, 1195, 1748, ++ 2843, 1196, 3353, 4111, 3979, 1193, 1194, -1798, 3011, 1953, ++ 1195, 2163, 2313, 1196, 1195, 1193, 1194, 1196, 1195, 2161, ++ 3945, 1196, 603, 2374, 1341, 1195, 3620, 4212, 1196, 620, ++ 1193, 1194, 4117, 4128, 1589, 1193, 1194, 655, 2328, 1193, ++ 1194, 1780, 3055, 1783, 2082, 3897, 610, 1746, 1195, 2309, ++ 2785, 1196, 3134, 3630, 2959, 2581, 4472, 605, 610, 1195, ++ 4129, 1590, 1196, 1787, 1362, 1195, 620, 3367, 1196, 1749, ++ 3367, 1193, 1194, 2404, 1686, 1193, 1194, 610, 610, 1305, ++ 3806, 611, 885, 1193, 1194, 1056, 1064, 1197, 1560, 2923, ++ 1193, 1194, 600, 1197, 1195, 3214, 4290, 1196, 2527, 1193, ++ 1194, 620, 3665, 2679, 1830, 3749, 2175, -1797, 1922, 614, ++ -1775, 2131, 1838, 2263, 1828, 947, 2236, 1195, 616, 2527, ++ 1196, 627, 3012, 1560, 494, 494, 494, 610, 494, 610, ++ 1591, 1193, 1194, 2083, 1872, 1850, 3537, 1193, 1194, 2582, ++ 1874, 494, 3368, 620, 2262, 3378, 494, 1854, 1855, 1856, ++ 1195, 1858, 1710, 1196, 886, 1195, 1197, 4062, 1196, 947, ++ 1197, 1193, 1194, 991, 1875, 43, 610, 2519, 1711, 1879, ++ 2885, 880, -1798, -2532, 1695, 2182, 2988, 1193, 1194, 2186, ++ 2222, -198, 1936, 3250, 1197, 1193, 1194, 1193, 1194, 633, ++ 992, 2356, 1857, 1197, 1859, 4213, 1193, 1194, 3750, -433, ++ 1749, 1195, 3666, 2187, 1196, 1592, 732, 2329, 1193, 1194, ++ 1195, 620, 2188, 1196, 1197, 1936, 1871, 1651, 2257, 1596, ++ -2395, -2396, 1923, 1831, 120, 610, 2258, 1195, 2033, 610, ++ 1196, 1889, 2139, 1952, 3704, 132, 1924, 2485, 2453, 2357, ++ 3751, 1197, 1195, 1777, 1749, 1196, 4011, 1231, 1736, 1193, ++ 1194, 640, 1673, 1197, -2395, -2396, 1954, 1197, 1516, 2149, ++ 610, 1197, 1193, 1194, 1193, 1194, 4309, 4309, 1197, 1193, ++ 1194, 1210, 2189, 3946, 1193, 1194, 2193, -2532, 2430, 2150, ++ 620, 1195, 494, 494, 1196, 2097, 494, 2211, 2263, 1954, ++ 2030, 1197, 1379, 2237, 2035, 2333, 3251, 1231, 1078, 3013, ++ 2113, 1231, 1197, 1748, 3032, 2093, 2094, 3815, 1197, 3111, ++ 3070, 641, 1193, 1194, 646, 3990, 133, 3215, 1900, 1195, ++ 2257, 3071, 1196, 1051, 881, 3777, 648, 3082, 3178, 4264, ++ 57, 1195, 4268, 1195, 1196, 3991, 1196, 1197, 1686, 1696, ++ 3789, 2333, 4181, 2705, 1429, 2223, 1195, 3369, 1380, 1196, ++ 3369, 650, 1832, 3152, 1193, 1194, 3092, 1540, 1195, 3667, ++ 1197, 1196, 2575, 4010, 1193, 1194, 4200, 4201, 1195, 732, ++ 1914, 1196, 3668, 1193, 1194, 1381, 579, 807, 808, 3093, ++ 580, 811, 812, 1195, 1542, 814, 1196, 816, 1195, 1133, ++ 2168, 1196, 1195, 1197, 1925, 1196, 3014, 2271, 1197, 1941, ++ 1900, 1113, 1163, 1167, 756, 1193, 1194, 1193, 1194, 1596, ++ 1593, 662, 3646, 2642, 1193, 1194, 2157, 2335, 2336, 664, ++ 2648, 1193, 1194, 1014, 1195, 2161, 1430, 1196, 1195, 510, ++ 1111, 1196, 3652, 2654, 1193, 1194, 1195, 3948, 854, 1196, ++ 4388, 1193, 1194, 1195, 1197, 1482, 1196, 2235, 2738, 1193, ++ 1194, 2945, 1195, 1197, 4364, 1196, 1213, 665, 1737, 4389, ++ 3155, 2241, 2171, 947, 3669, 1926, 2669, 1393, 1496, 1497, ++ 1197, 2172, 666, 3724, 1052, 3779, 3877, 3878, 3781, 3738, ++ 1594, 1738, 805, 1901, 1195, 1197, 2226, 1196, 2176, 2259, ++ 1195, 1927, 810, 1196, 2238, 849, 1543, 620, 732, 610, ++ 620, 1193, 1194, 2180, 3059, 3790, 3805, 863, 1193, 1194, ++ 2239, 610, 869, 2276, 1195, 4274, -2584, 1196, 1394, 2282, ++ 2282, 855, 2282, 871, 1197, 3738, 891, 1245, 1193, 1194, ++ 1195, 3816, 620, 1196, 2716, 610, 2082, 591, 1195, 610, ++ 1195, 1196, 2581, 1196, 1193, 1194, 1193, 1194, 1749, 1195, ++ 1038, 1039, 1196, 1928, 1596, 889, 620, 620, 610, 610, ++ 610, 1195, 1197, 2582, 1196, 1901, 881, 756, 1133, 1902, ++ 2321, 2282, 2282, 2282, 1197, 262, 1197, 264, 1317, 964, ++ 2181, 1318, 2449, 1382, 2281, 2281, 1210, 2281, 2369, 1197, ++ 592, 856, 2185, 1111, 2190, 962, 963, 2380, 966, 3948, ++ 2305, 1197, 1195, -1691, 1311, 1196, 3949, 2202, 2376, 1509, ++ 1510, 1197, 1519, 985, 3037, 1195, 986, 1195, 1196, 2217, ++ 1196, 2588, 1195, 1330, 2325, 1196, 1197, 1195, 852, 3035, ++ 1196, 1197, 994, 1364, 610, 1197, 2281, 2281, 2281, 2128, ++ 1739, 565, 1929, 2589, 3058, 1003, 2399, 4383, 565, 3060, ++ 1210, 1014, -1691, 610, 2070, 2902, 1200, 3198, 2108, 1162, ++ 1024, 593, 917, 918, 1044, 1195, 3200, 1197, 1196, 1392, ++ 1248, 1197, 1049, 1953, 1919, 3975, 3976, 3977, 1392, 1197, ++ 262, 3481, 264, 2420, 3364, 3066, 1197, 2129, 1230, 3067, ++ 1201, 1840, 2427, 2428, 2333, 1197, 756, 3074, 4112, 2392, ++ 4113, 1045, 2334, 2432, 2433, 2434, 2435, 1195, 2443, 2444, ++ 1196, 4074, 1383, 3078, 3398, 3399, 1080, 1195, 2410, 2681, ++ 1196, 2683, 1111, 1319, 118, 2569, 1195, 1197, 1520, 1196, ++ 2070, 2585, 1521, 1197, 1384, 3412, 1686, 262, 3595, 264, ++ 1202, 1081, 1404, 1522, 498, 3079, 1082, 3596, 499, 1084, ++ 2513, 3080, 1203, 1222, 1223, 1224, 1225, 1197, 1195, 1871, ++ 1195, 1196, 1841, 1196, 3619, 2528, 1085, 1195, 3949, 2638, ++ 1196, 1213, 1405, 1197, 1195, 3081, 1385, 1196, 975, 1475, ++ 1476, 1197, 2638, 1197, 1086, 3931, 1089, 1195, 1166, -1691, ++ 1196, 3083, 1197, 1686, 1195, 559, 1090, 1196, 1234, 3086, ++ 1238, 3091, 1195, 1936, 1197, 1196, 2540, 2541, 2843, 2548, ++ 3094, 2550, 2551, 2552, 2553, 2554, 2335, 2336, 2557, 1534, ++ 2559, 1233, 3096, 2571, 3237, 1091, 1686, 1406, 620, 3201, ++ 2542, 2348, 1407, 1092, 620, 1213, 2586, 1204, -1691, 494, ++ 1230, 2923, 4187, 1093, 2614, 1197, 610, 610, 610, 2609, ++ 2436, 1842, 2612, 2924, 1195, 3248, 1094, 1196, 1197, 2337, ++ 1197, 1195, 2591, 3098, 1196, 1197, 3254, 1523, 1095, 3256, ++ 1197, 118, 620, 947, 2698, 1276, 3100, 3470, 3101, 1936, ++ 3597, 1195, 900, 3102, 1196, 620, 1953, 1772, 3417, 2543, ++ 1773, 4072, 1096, 1774, 4004, 4005, 1097, 1195, 3471, 1195, ++ 1196, 1098, 1196, 594, 3931, 3931, 2719, 1277, 1197, 2437, ++ 3370, 2605, 2606, 2607, 4179, 3330, 4088, 703, 2071, 1215, ++ 1216, 4006, 1099, 3371, 1748, 595, 3418, 2253, 498, 3472, ++ 2130, 1230, 499, 3147, 4094, 4095, 2438, 3372, 4098, 4099, ++ 4100, 4101, 1100, 2070, 1101, 3507, 3508, 1102, 917, 3535, ++ 1197, 2134, 2135, 1954, 1245, 1245, 1245, 596, 4089, 1843, ++ 1197, 1249, 2708, 3616, 3617, 1524, 2581, 1274, 3419, 1197, ++ 3581, 119, 1103, 4300, 1408, 498, 708, 620, 3645, 499, ++ 3110, 3191, 1278, 1106, 3553, 2544, 1282, 3651, 1279, 120, ++ 3961, 3965, 1209, 2072, 2071, 1108, 643, 2154, 1230, 1109, ++ 1748, 1197, 2717, 1197, 1110, 2439, 1114, 3866, 3867, 620, ++ 1197, 901, 2638, 597, 2807, 2812, 1115, 1197, 1284, 3653, ++ -1775, 3654, 1116, 620, 1117, 900, 1686, -2575, 3655, 3554, ++ 1197, 1118, 1280, 1519, 1294, 3656, 2571, 1197, 4198, 4199, ++ 3555, 3152, 1301, 1331, 1409, 1197, 1119, 4207, 3726, 1281, ++ 3931, 3931, 3032, 1120, 121, 3971, 2747, 1121, 2854, 2638, ++ 2545, 2162, 1230, 1122, 1218, 1219, 1220, 1221, 1222, 1223, ++ 1224, 1225, 721, 4202, 1123, 2099, 2164, 1230, 2226, 1126, ++ 2440, 2772, 1127, 902, 947, 3529, 3556, 1210, 3532, 3533, ++ 1193, 1194, 1936, 1128, 620, 2624, 1134, 1197, 1135, 2100, ++ 2165, 1645, 1210, 1136, 1197, 3545, 1137, 2793, 1410, 2795, ++ 1138, 3729, 1205, 1206, 1207, 620, 1139, 620, 620, 2177, ++ 1230, 2625, 1140, 2792, 1197, 1872, 1141, 1872, 1872, 2719, ++ 1220, 1221, 1222, 1223, 1224, 1225, 122, 2073, 1142, 3961, ++ 1197, 1285, 1197, 3965, 3931, 2178, 1230, 737, 1144, 1520, ++ 2179, 1230, 1687, 1521, 901, 1596, 2183, 1230, 1145, 3931, ++ 947, 620, 620, 1146, 1522, 3643, 1954, 1147, 1161, 1749, ++ 1210, 2284, 3931, 2285, 1193, 1194, 2626, 1148, 262, 2627, ++ 264, 1177, 1178, 979, 980, 1516, 981, 2628, 982, 2445, ++ 2446, 2687, 1230, 1605, 1606, 1607, 1608, 1609, 3634, 2070, ++ 2400, 2528, 1211, 1149, 2629, 1150, 2528, 2071, 2723, 2724, ++ -786, 2528, 1151, 1748, 1152, 2528, 1153, 2898, 1154, 3832, ++ 1411, 4469, 2351, 2352, 2353, 1212, 902, 2898, 1155, 2528, ++ 2528, 1303, 620, 2877, 3931, 2900, 2901, 1295, 1156, 2528, ++ 1157, 1687, 1293, 2889, 1158, 1749, 3931, 3931, 1943, 2899, ++ 1159, 610, 917, 918, 1412, 3054, 2135, 1160, 1588, 1004, ++ 2898, 2930, 123, -628, 1164, 2546, 1165, 2528, 2955, 1168, ++ 3553, 2920, 1213, 2968, 3057, 1230, -1775, 2931, 4419, 4420, ++ 2985, 1169, 1083, 2933, 2934, 2441, 1175, 1213, 1523, 2967, ++ 1610, 1611, 1612, 1613, 3931, 2400, 3084, 1230, 3158, 3159, ++ 1179, 2630, 3961, 3965, 3931, 1180, 1038, 1039, 1038, 1039, ++ 1005, 1181, 3558, 3333, 3334, 3554, 2932, 1589, 3559, 3833, ++ 3834, 1182, -1490, 2989, 3835, 3836, 3555, 1183, 2401, 4416, ++ 124, 1232, 3872, 3873, 1307, 3875, 3876, 1315, 610, 2528, ++ 1245, 3423, 1230, 1325, 1590, 2402, 1338, 3931, 1936, 3931, ++ 3405, 1944, 764, 3445, 3446, 1213, 1357, 2403, 3560, 3931, ++ 3823, 3824, -2575, 3586, 3587, 1340, 903, 904, 905, 906, ++ 907, 908, 3556, 947, 1358, -1490, 3623, 3631, 3931, 1359, ++ 3931, 1362, 3931, 909, 1214, 1365, 1524, 1373, 125, 3931, ++ 3424, 1614, 1374, 1615, 1616, 1617, 3647, 1230, 1006, 1378, ++ 3931, 2631, 1618, 3016, 4473, -1490, 1390, -1490, 3661, 1230, ++ 3676, 3677, 1399, 1591, 3792, 2446, 3931, 3931, 3807, 3808, ++ 1215, 1216, -1490, 2401, 1400, 2456, 3561, -1490, 3811, 3808, ++ 3812, 3808, 3931, 3931, 2404, 1215, 1216, 3931, 3871, 3446, ++ 2402, 3557, -1490, 1195, 3874, 3808, 1196, 3881, 3882, 1217, ++ -1490, 1401, 2403, 4018, 4019, -2575, 3373, -1490, 1749, 4023, ++ 3808, 4024, 3808, 2071, 262, 2749, 264, -1490, 2276, 1748, ++ 1416, 1300, 620, 620, 620, 4026, 3808, 3536, 3306, -1490, ++ 610, 4027, 3808, 1619, -1490, 4032, 4033, 1419, 1592, 4034, ++ 4033, -620, 2997, -1490, 4090, 4091, -786, 4218, 4019, 2747, ++ 620, 4219, 4019, 1215, 1216, 1687, 4227, 3446, 2456, 903, ++ 904, 1423, 906, 1945, 908, 4272, 4273, 1588, 1133, 3890, ++ 2457, 620, 620, 620, 1946, 3890, 909, 1424, 3562, 2404, ++ 1437, 1947, 1440, 2482, 3177, 1620, 1621, 1441, 2072, 1443, ++ 3179, 2632, 3181, 2638, 1448, 3133, 2405, 1453, 620, 3628, ++ 3176, 2436, 4316, 4317, 2926, 3602, -1490, 4334, 3332, 1686, ++ 3268, 4461, 4462, 1872, 1459, 1218, 1219, 1220, 1221, 1222, ++ 1223, 1224, 1225, 2038, 4086, 1465, 1589, -620, -1490, 1467, ++ 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, -1490, 1469, ++ 1676, 1677, 1038, 1039, 2456, 1472, 1609, 2039, 3558, 3462, ++ 3463, 1473, 1007, 2860, 3559, 2633, 2457, 2400, 1480, 2406, ++ 2437, 1477, 262, 1481, 264, 3382, -620, 1484, 3383, 1485, ++ -1490, 505, 1486, 1948, 3430, 3431, 3384, 2528, 1528, 947, ++ 2528, 2528, 1210, 2898, 2634, 3674, 3675, 2438, 1529, 1530, ++ 1596, 2405, 1533, 3385, 3560, 1535, 620, 1556, 1228, 2528, ++ 1220, 1221, 1222, 1223, 1224, 1225, 2038, 1210, 1536, 1560, ++ 1554, 2286, 1567, 3243, 2898, 1587, 1598, 1008, -1490, 1009, ++ 1633, 3246, 2861, 1622, 2287, 2898, 1173, 1644, 2898, 1645, ++ 2039, 1646, 2073, 4161, 1684, 3386, 1197, 1623, 1624, 1694, ++ -1490, 1752, 1613, 1593, 1703, 1295, 1719, 3756, 3757, 1725, ++ 3260, 1210, -620, 610, 2406, 1745, 2439, 505, 3317, 1753, ++ 3760, 1756, 3561, 1763, 1749, 1949, 2436, 3763, 494, 1759, ++ 1760, 1761, 3327, 1762, 2898, 1764, 1765, 1768, 1766, 1588, ++ 3207, -1490, 2184, 1769, 2288, 2401, 2289, 1792, 1795, 3336, ++ 3387, 3323, 2038, 3782, 3783, 2484, 1804, 2862, 2567, 1812, ++ 1813, 1923, 2402, 1814, 3347, 1596, 1820, 3075, 1564, 1565, ++ 1566, 610, 3339, 1686, 2403, 1924, 2039, 1815, 3261, 1823, ++ 1824, 1852, 1825, 3360, 1834, 2437, 1585, 1839, 4086, 1848, ++ -1490, 2440, 1881, 1882, 1883, 1884, 1886, -1490, 1589, 1895, ++ 1614, 1113, 1163, 1167, 1617, 1897, 2935, 4133, 2936, -1490, ++ -1490, 1618, 2438, 1899, 1912, 4170, 2042, 1364, 1648, 1921, ++ 2025, 1652, 1516, 3467, 3562, 2860, 2043, 1213, 2044, -1490, ++ 2045, -1490, 2046, 2047, 2290, 2062, 3349, 3892, -620, 2854, ++ 1669, 1670, 2084, -1490, 1674, 1296, 2066, 3388, 2092, 2937, ++ 3389, 2404, 1213, 2048, 2049, 2050, 2051, 2052, -1490, -1490, ++ 2053, 3422, -1490, -1490, 1688, 1689, 1969, 1970, 2054, 2793, ++ 2938, 2085, 2055, 3706, 2056, -1490, 4296, 2057, 2058, 2059, ++ 2436, 2439, 3852, 2060, 2061, 2792, 2102, 2103, 2291, 2104, ++ -1490, 2111, 1619, 2747, 2861, -1490, 1213, 2145, 4321, -769, ++ -769, 2117, 1972, 3842, 2939, 2105, 2119, 2120, 2121, 2144, ++ 2458, -769, 2146, 2772, 3457, 2151, 2152, 620, -1490, 2153, ++ 2155, 2161, 1975, 2166, -620, -1490, 620, 3390, 2200, 508, ++ 1976, 2456, 2717, 1925, 2170, -1490, 2174, 2227, 2191, 2437, ++ 2192, 1342, 620, 2197, 1225, 1621, 2201, -1490, 2212, 1210, ++ 2369, 1343, -1490, 2213, 1978, 2214, 2440, 2234, 3933, -1179, ++ 2240, -1490, 2863, 2405, 4035, 2250, 2438, 1344, 1459, 2862, ++ 1687, 1979, -1316, 2297, 2272, 1215, 1216, 2279, 2306, 1345, ++ 1346, 1347, 2528, 2312, 2315, 2318, 2349, 2350, 2365, 4382, ++ 2377, 4384, 2528, 2379, 2898, 1348, 2441, 2381, 4321, 1984, ++ 1215, 1216, 2382, 1687, 1926, 2386, 2408, 2409, -620, 2898, ++ 2413, 610, 2412, 2528, 2415, 508, 2419, 2421, 2422, 1686, ++ 4402, 2423, 2424, 2425, -1490, 2638, 2406, 1038, 1039, 2426, ++ 1927, 4003, 2456, 2468, 4454, 2439, 2473, 2474, 2477, 2482, ++ 2478, 2480, 1686, 2487, 1215, 1216, -1490, 2490, 2496, 1686, ++ 4326, 4327, 2497, 4329, 3391, 1686, -1490, 4465, 4434, 4435, ++ 262, 2481, 264, 2489, 4454, 2532, 2536, 2502, 1987, 2503, ++ 4465, 2538, 2562, 2508, 2509, 2516, 1988, 2570, 2614, 2038, ++ 2592, 2610, 1622, 3392, 2623, 2618, 2985, 2649, -1490, 2728, ++ 2650, 1989, 1928, 2400, -620, 3583, 2651, 1624, 2258, 2940, ++ 2661, 2695, 4372, 2039, 4373, 4374, 2292, 2293, 2294, 2662, ++ 2440, 3615, 3615, 3615, 2696, 3695, 1872, 2674, 3607, 2697, ++ 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 620, 2726, ++ 2727, 2693, 2704, 2713, 1213, 2714, -1490, 2729, 2730, 2736, ++ 2739, 2742, 2743, 2941, 1990, 1218, 1219, 1220, 1221, 1222, ++ 1223, 1224, 1225, 2741, 2750, 2756, 2775, 2751, -1490, 1966, ++ 1799, 2441, 1991, 2754, 2777, 2755, 1967, 4413, 1968, 2762, ++ 2774, 2778, 2779, 2357, 2863, 2356, 4173, 3992, 2797, 1969, ++ 1970, 1929, 2819, 2826, 2822, 3993, 4003, 2796, 2798, 1218, ++ 1219, 1220, 1221, 1222, 1223, 1224, 1225, 2831, 3684, -1490, ++ 2832, 2849, 1349, 1687, 2833, 2854, 4446, 2856, 2857, 3994, ++ 1971, 2905, 2907, 2964, 2974, 1972, 1973, 1995, 620, 1996, ++ 1350, 2401, 1974, 2978, 2995, 2980, 2994, 1998, 2999, 3003, ++ 1997, 3004, 1914, 2112, 3029, 1975, 3049, 2483, 2402, 3038, ++ 3043, 3051, 3052, 1976, 3118, 2116, 3053, 3123, 3061, 564, ++ 2403, 2484, 3062, 1977, -1775, -1490, 3105, 3107, 3109, 868, ++ 3615, 3114, 3130, 3117, 3128, 3135, 3138, 1978, -1490, 3139, ++ 523, 1317, 3148, 3142, 3154, 3852, 3157, 3746, 3163, 2638, ++ 3174, 1459, 1215, 1216, 1979, 3160, 3175, -1490, 4175, -1490, ++ 3180, 1980, 1981, 3188, 3208, 2004, 3212, 3213, 1982, 3216, ++ 3227, 3741, 3228, 1296, 3229, 3258, 1983, 3240, 620, 3318, ++ -892, 3325, 1984, 3257, 3249, 2441, -1490, -1490, 3321, 3329, ++ -1490, -1490, 3324, 3995, 3259, 3765, 524, 2404, 3331, 3342, ++ 3332, 2169, 3335, 3348, 3784, 2173, 3343, -443, 2333, 3351, ++ 1985, 3788, 3357, 3358, 3359, 3362, 1351, 3467, 3379, 3710, ++ 1969, 1970, 2005, 525, 3397, 3400, 3401, 2196, 676, 3347, ++ 3408, 3409, 3426, 3427, 3793, 3436, 3441, 3438, 2006, 3447, ++ 3460, 3449, 2007, 262, 3468, 264, 3476, 3485, 3477, 1986, ++ 3486, 1987, 620, -769, -769, 3506, 1972, 526, 3498, 1988, ++ 3509, 2008, 3510, 3523, 3530, -769, 3580, 2530, 3582, 3996, ++ 3584, 1352, 3590, 3594, 1989, 3603, 1975, 3604, 3608, 2010, ++ 3605, 3609, 3611, 3621, 1976, 3622, 3623, 3997, 3624, 1353, ++ 3625, 820, 821, 3629, 3632, 3635, 4173, 3637, 1219, 1220, ++ 1221, 1222, 1223, 1224, 1225, 527, 3639, 3648, 1978, 2405, ++ 3732, 3998, 3640, 3641, 3644, 3649, 3650, 703, 3662, 3663, ++ 620, 3672, 1459, 3679, 3680, 1979, 3689, 1990, 3677, 3178, ++ 3691, 3692, 3697, 3696, 3700, 3702, -1405, 3703, 3864, 3744, ++ -1410, 3024, 3714, 3747, 3570, 1991, 3727, 3759, 3728, 1992, ++ 3769, 3615, 3615, 1984, 3615, 3615, 3730, 504, 3731, 3770, ++ 3755, 676, 3761, 4243, 3771, 3772, 3773, 3775, 3776, 707, ++ 3794, 3573, 2406, 2638, 3795, 3810, 708, 4003, 4243, 3813, ++ 3814, 3817, 822, 3821, 3822, 3825, 3827, 3840, 1993, 3828, ++ 3631, 4253, 3829, 1994, 3841, 3844, 3845, 3855, 3856, 3886, ++ 1995, 3899, 1996, 712, 713, 3860, 4443, 3862, 3880, 1997, ++ 1998, 823, 3893, 3894, 262, 3900, 264, 3898, 4368, 3942, ++ 3938, 610, 1987, 3934, 824, 3957, -65, 3967, 1251, 3972, ++ 1988, 528, 3615, 3968, 3974, 3982, 3969, 4015, 4020, 505, ++ 4443, 1999, 4017, 3732, 4028, 1989, 825, 3985, 4036, 826, ++ 703, 4038, 4056, -309, 4065, 2000, 2001, 2002, 2003, 2594, ++ 827, 1252, 4058, 4059, 4069, 610, 4076, 4077, 3989, 4081, ++ 4093, 4096, 721, 4105, -817, 4097, 620, 947, 2004, 4107, ++ 4109, 828, 4138, 2959, 4141, 4102, 3939, -327, 4167, 4169, ++ 4168, 4189, 4368, 3999, 4204, 803, 4186, 4216, 1990, 529, ++ 4220, 4192, 707, 4228, 4221, 4222, 4029, 829, 4223, 708, ++ 4231, 4232, 4239, 4243, 830, 4233, 1991, 4240, 4252, 4244, ++ 4250, 4251, 506, 4358, 4255, 4262, 4276, 4042, 4277, 1253, ++ 3983, 732, 4049, 4278, 4279, 2005, 712, 713, 4288, 4297, ++ 4292, 4287, 3766, 4299, 4301, 4302, 736, 737, 4311, 4305, ++ -2311, 2006, 4314, 1254, 831, 2007, 1255, 530, 4328, 4325, ++ 4330, 4331, 4471, 531, 4333, 4346, 4360, 4359, 4365, 4362, ++ 4376, 1995, -1574, 1996, 2008, 4379, 4381, 4380, 4392, 2009, ++ 4385, 1998, 532, 4390, 4386, 4393, 4396, 4401, 4071, 4398, ++ 1256, 4399, 2010, 4405, 4407, 4414, 4418, 4422, 4410, 4243, ++ 4411, 4243, 4424, 4431, 4459, 721, 1687, 533, 4412, 1257, ++ 4432, 4455, 2561, 4468, 4051, 2721, 3593, 3592, 2869, 4243, ++ 1061, 3798, 4203, 1258, 534, 4066, 4312, 4176, 4313, 3796, ++ 3800, 3937, 1471, 4466, 4426, 578, 959, 2341, 4436, 3864, ++ 3162, 3864, 3911, 4114, 3912, 3914, 3915, 3917, 803, 2004, ++ 3918, 4243, 4243, 803, 3919, 3920, 4458, 3921, -892, 3922, ++ 4343, 4237, 4344, 3925, 732, 4310, 3926, 3927, 4249, 4142, ++ 4248, 1259, 1965, 2261, 1532, 2520, 2036, 2011, 4068, 736, ++ 737, 3253, 832, 3141, 3682, 3146, 833, 3440, 4191, 3984, ++ 803, 4261, 1260, 3685, 1802, 4395, 4324, 4367, 4183, 4104, ++ 2069, 663, 834, 3804, 2518, 3340, 2005, 803, 3522, 2961, ++ 835, 3022, 3511, 3515, 4182, 3989, 507, 2525, 836, 4377, ++ 4135, 3888, 2006, 3394, 3538, 620, 2007, 3579, 2719, 756, ++ 3774, 4209, 4188, 3733, 4196, 4197, 3734, 508, 3764, 4120, ++ 519, 3474, 520, 837, 4225, 2008, 4226, 762, 803, 803, ++ 803, 803, 764, 2101, 4079, 765, 838, 839, 4073, 4078, ++ 803, 3956, 2604, 2010, 3891, 2522, 3513, 2949, 1439, 1012, ++ 2397, 3743, 1898, 3512, 509, 2759, 2324, -535, 2034, 2067, ++ 510, 3132, 2737, 3437, 2780, 3932, 983, 2692, 1369, 3425, ++ 2355, 2641, 4323, 3116, 1643, 1261, 2844, 2639, 2691, 3482, ++ 4022, 840, 3868, 4285, 1262, 3591, 4286, 1586, 2711, 3517, ++ 1687, 3865, 3199, 1915, 3735, 3736, 511, 4417, 2944, 1263, ++ 3854, 893, 821, 2595, 512, 2787, 2608, 821, 1786, 1818, ++ 2735, 620, 841, 2765, 3687, 3453, 3452, 1264, 4269, 4270, ++ 3492, 803, 4258, 971, 2110, 1079, 2985, 2985, 955, 2388, ++ 1864, 1887, 2389, 2273, 842, 3521, 843, 3439, 4363, 1822, ++ 4280, 4394, 756, 4332, 4467, 4470, 3733, 3456, 3768, 3734, ++ 2366, 3196, 1837, 3478, 3701, 3857, 1265, 1266, 896, 2311, ++ 762, 1829, 1356, 3973, 1779, 764, 2091, 3981, 765, 3120, ++ 1361, 898, 1065, 0, 657, 620, 658, 1066, 1067, 0, ++ 0, 0, 1267, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 822, 0, 0, 0, 0, 822, 0, 0, ++ 0, 498, 4348, 0, 1268, 499, 0, 0, 0, 4356, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 823, 0, 0, 0, 0, 823, 3735, 3736, 0, ++ 0, 0, 0, 0, 824, 0, 0, 0, 0, 824, ++ 1605, 1606, 1607, 1608, 1609, 0, 0, 0, 0, 0, ++ 0, 0, 4460, 1269, 0, 0, 825, 4375, 0, 826, ++ 0, 825, 0, 0, 826, 0, 0, 0, 0, 0, ++ 827, 0, 0, 0, 0, 827, 0, 803, 0, 0, ++ 0, 0, 0, 0, 0, 4403, 0, 0, 0, 0, ++ 4408, 828, 0, 0, 0, 0, 828, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 829, 0, 0, ++ 0, 0, 829, 0, 830, 0, 0, 4444, 0, 830, ++ 0, 0, 0, 803, 803, 0, 1687, 1610, 1611, 1612, ++ 1613, 0, 803, 803, 803, 803, 803, 803, 803, 803, ++ 803, 803, 803, 803, 803, 620, 0, 0, 0, 1687, ++ 0, 4444, 803, 803, 831, 803, 1687, 803, 0, 831, ++ 0, 803, 1687, 0, 803, 803, 803, 803, 0, 803, ++ 803, 803, 0, 0, 0, 0, 0, 0, 803, 803, ++ 0, 803, 803, 803, 803, 803, 0, 0, 803, 803, ++ 803, 803, 803, 803, 803, 803, 803, 803, 803, 0, ++ 0, 803, 803, 0, 1251, 803, 0, 0, 0, 803, ++ 0, 803, 803, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 803, 803, 0, 1614, 0, ++ 1615, 1616, 1617, 803, 0, 0, 0, 1252, 0, 1618, ++ 803, 803, 803, 803, 0, 0, 0, 0, 0, 0, ++ 0, 803, 803, 803, 0, 803, 803, 803, 803, 803, ++ 0, 803, 803, 803, 803, 803, 803, 803, 803, 0, ++ 0, 0, 803, 803, 0, 0, 0, 0, 0, 0, ++ 0, 0, 832, 0, 0, 0, 894, 832, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 834, 0, 0, 1253, 0, 834, 0, 0, ++ 835, 0, 0, 0, 0, 835, 0, 0, 836, 0, ++ 1619, 0, 0, 836, 0, 0, 0, 0, 0, 1254, ++ 0, 0, 1255, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 837, 0, 0, 0, 0, 837, 803, ++ 0, 0, 0, 0, 0, 0, 838, 839, 0, 0, ++ 0, 838, 839, 0, 0, 0, 1256, 0, 0, 0, ++ 0, 0, 1620, 1621, 0, 1087, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 1257, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1258, ++ 0, 840, 0, 0, 0, 0, 840, 0, 0, 0, ++ 0, 803, 1125, 0, 0, 0, 0, 0, 0, 803, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1143, ++ 0, 1493, 841, 0, 0, 0, 0, 841, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 1259, 0, 0, ++ 0, 0, 0, 0, 842, 0, 843, 0, 0, 842, ++ 0, 843, 0, 0, 0, 0, 0, 0, 1260, 0, ++ 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, ++ 1494, 1495, 1496, 1497, 1498, 1499, 0, 1500, 1501, 1502, ++ 1503, 1504, 1505, 1506, 3, 1507, 1508, 0, 4, 0, ++ 1622, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 2024, 5, 6, 1623, 1624, 0, 0, 0, 0, ++ 7, 0, 0, 0, 0, 8, 9, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, ++ 0, 0, 0, 1316, 0, 0, 0, 0, 0, 0, ++ 0, 1261, 0, 0, 0, 0, 11, 0, 0, 0, ++ 1262, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 1263, 0, 12, 0, 0, ++ 0, 0, 0, 0, 0, 13, 14, 15, 0, 0, ++ 803, 0, 0, 1264, 0, 0, 0, 16, 17, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 18, 0, 0, 1509, 1510, 0, 0, 0, 0, 0, ++ 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1265, 1266, 0, 0, 0, 0, 0, 20, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 21, 0, 0, 1267, 22, ++ 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 1268, 0, 0, 0, 0, 0, 0, 0, 24, 0, ++ 25, 0, 0, 0, 0, 0, 0, 0, 0, 1492, ++ 0, 0, 803, 803, 803, 0, 26, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, ++ 0, 0, 0, 0, 27, 0, 0, 0, 28, 1269, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 803, 0, 0, 0, 0, 0, 803, 0, ++ 0, 803, 0, 803, 0, 1558, 1559, 0, 0, 803, ++ 0, 803, 803, 0, 1569, 1570, 0, 0, 1573, 1574, ++ 1575, 1578, 1579, 1580, 1581, 1582, 1583, 0, 0, 0, ++ 0, 0, 0, 0, 1599, 1600, 0, 1601, 0, 1602, ++ 0, 0, 0, 0, 0, 0, 1635, 1636, 1637, 1638, ++ 0, 0, 1641, 0, 0, 0, 0, 0, 0, 0, ++ 1649, 1650, 0, 1653, 1654, 0, 0, 0, 29, 0, ++ 1658, 1659, 1660, 0, 0, 1663, 1664, 1665, 1666, 1667, ++ 1668, 0, 803, 1671, 1672, 30, 0, 1675, 0, 31, ++ 0, 1678, 0, 1682, 1683, 0, 0, 0, 0, 0, ++ 32, 0, 0, 0, 0, 0, 0, 1690, 1691, 0, ++ 0, 33, 0, 0, 0, 1699, 0, 0, 0, 0, ++ 0, 0, 1704, 1705, 1706, 0, 0, 0, 0, 0, ++ 0, 0, 0, 34, 1969, 1970, 35, 0, 36, 0, ++ 0, 37, 0, 0, 38, 39, 0, 0, 0, 0, ++ 0, 0, 40, 0, 41, 1742, 0, 0, 0, 0, ++ 0, 42, 0, 0, 0, 0, 0, 43, 0, 0, ++ 1972, 0, 0, 915, 0, 44, 0, 0, 0, 0, ++ 45, 0, 46, 872, 916, 47, 0, 0, 0, 0, ++ 1975, 0, 0, 0, 0, 0, 0, 0, 1976, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 917, 918, ++ 48, 0, 0, 0, 49, 0, 919, 0, 0, 0, ++ 0, 920, 1978, 0, 0, 0, 0, 0, 0, 0, ++ 0, 1789, 0, 0, 0, 0, 1459, 0, 0, 1979, ++ 0, 0, 0, 0, 0, 0, 0, 0, 921, 0, ++ 922, 0, 923, 0, 0, 0, 0, 0, 0, 50, ++ 0, 924, 0, 0, 0, 0, 0, 1984, 0, 0, ++ 0, 51, 0, 0, 0, 52, 0, 0, 53, 0, ++ 0, 0, 0, 0, 54, 0, 2024, 0, 0, 0, ++ 0, 0, 0, 1836, 0, 0, 0, 0, 0, 0, ++ 0, 1851, 0, 0, 0, 0, 0, -1775, 925, 0, ++ 0, 0, 926, 55, 0, 927, 803, 0, 0, 56, ++ 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, ++ 264, 0, 57, 0, 0, 0, 1987, 0, 0, 0, ++ 0, 928, 0, 929, 1988, 0, 0, 0, 0, 0, ++ 930, 0, 931, 0, 0, 0, 0, 0, 0, 1989, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 2024, 0, 0, 0, 0, 932, 933, 934, 0, ++ 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, ++ 0, 803, 0, 0, 0, 0, 803, 803, 0, 935, ++ 0, 0, 0, 0, 0, 803, 803, 0, 803, 803, ++ 803, 803, 1990, 803, 0, 0, 803, 0, 0, 0, ++ 0, 936, 0, 0, 0, 0, 803, 0, 803, 803, ++ 1991, 803, 803, 803, 803, 0, 803, 0, 0, 803, ++ 0, 0, 0, 0, 0, 0, 0, 937, 803, 0, ++ 0, 0, 0, 0, 0, 803, 0, 803, 0, 803, ++ 803, 803, 803, 0, 0, 0, 803, 803, 803, 0, ++ 0, 0, 803, 803, 803, 0, 803, 0, 803, 0, ++ 803, 0, 803, 0, 803, 1995, 0, 1996, 0, 803, ++ 0, 0, 2122, 0, 0, 1998, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, ++ 0, 0, 0, 938, 803, 0, 0, 803, 0, 0, ++ 0, 0, 0, 803, 0, 0, 803, 0, 0, 0, ++ 803, 0, 0, 0, 0, 0, 0, 0, 0, 939, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 940, 941, 0, 0, 942, 943, 0, 0, 0, 0, ++ 0, 0, 0, 2004, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 2204, 2206, 2208, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 945, 0, ++ 2005, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 946, 0, 0, 0, 0, 2006, 0, 0, 0, ++ 2007, 0, 0, 0, 2242, 0, 0, 0, 0, 0, ++ 0, 0, 0, 2247, 0, 2248, 0, -2341, 0, 2008, ++ 0, 947, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 2010, 0, 948, ++ 949, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 2867, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 2867, 2867, 1, 0, 2, 0, 0, 0, 950, 0, ++ 0, 0, 0, 0, 2320, 0, 0, 0, 0, -2341, ++ 0, 0, 0, 0, 4, 0, 0, 951, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, ++ 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, ++ 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 2024, 10, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 12, 0, 0, 0, 0, 2867, 2867, ++ 0, 13, 14, 15, 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, 2024, 0, 0, 0, 0, 0, 0, 19, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 803, ++ 0, 0, 0, 803, 0, 20, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 21, 0, 0, 0, 22, 0, 0, 0, 23, ++ 0, 0, 0, 803, 803, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 803, 24, 0, 25, 0, 0, 0, ++ 0, 0, 803, 0, 803, 0, 803, 0, 0, 0, ++ 0, 0, 26, 0, 0, 0, 0, 0, 2537, 0, ++ 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, ++ 27, 803, 0, 0, 28, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2617, ++ 0, 0, 0, 2619, 0, 0, 0, 0, 2621, 2622, ++ 0, 0, 0, 0, 0, 0, 0, 1575, 2640, 0, ++ 1575, 0, 2643, 2644, 0, 2645, 0, 0, 0, 0, ++ 0, 0, 803, 0, 29, 0, 803, 0, 2652, 0, ++ 2653, 0, 0, 2655, 2656, 2657, 2658, 0, 2659, 0, ++ 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, ++ 2663, 0, 0, 0, 0, 0, 32, 2664, 0, 2665, ++ 0, 2666, 2667, 2668, 0, 0, 0, 33, 2671, 2672, ++ 2673, 0, 0, 803, 2675, 2676, 2677, 0, 2678, 0, ++ 2680, 0, 2682, 0, 2684, 0, 2685, 0, 0, 34, ++ 0, 2686, 35, 0, 36, 0, 0, 37, 0, 0, ++ 38, 39, 0, 0, 0, 0, 0, 0, 40, 2699, ++ 41, 0, 0, 0, 0, 0, 0, 42, 0, 0, ++ 0, 0, 0, 43, 0, 2709, 0, 0, 2712, 0, ++ 0, 44, 0, 0, 0, 0, 45, 0, 46, 0, ++ 0, 47, 2947, 0, 0, 0, 0, 0, 0, 1967, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 1969, 1970, 0, 0, 48, 0, 0, 0, ++ 49, 0, 0, 0, 0, 0, 0, 3262, 3263, 0, ++ 0, 0, 0, 3264, 0, 3265, 0, 3266, 3267, 0, ++ 0, 0, 0, 1971, 803, 803, 0, 0, 1972, 0, ++ 0, 0, 0, 0, 3268, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 50, 0, 0, 1975, 2867, ++ 0, 0, 0, 0, 0, 0, 1976, 51, 0, 0, ++ 0, 52, 0, 0, 53, 0, 1977, 0, 0, 0, ++ 54, 0, 0, 0, 0, 0, 0, 2024, 0, 0, ++ 1978, 0, 0, 0, 0, 0, 0, 0, 0, 3269, ++ 803, 0, 3270, 0, 1459, 0, 0, 1979, 0, 55, ++ 3271, 0, 0, 0, 1980, 56, 0, 0, 0, 0, ++ 0, 2948, 0, 0, 0, 0, 0, 3272, 57, 1983, ++ 0, 0, 0, 803, 803, 1984, 803, 0, 0, 0, ++ 0, 0, 0, 0, 3273, 803, 0, 0, 0, 0, ++ 803, 0, 0, 803, 0, 803, 803, 0, 0, 0, ++ 0, 0, 0, 1985, 0, 0, 0, 3274, 0, 3275, ++ 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, ++ 0, 0, 3276, 3277, 0, 0, 0, 0, 0, 0, ++ 0, 803, 0, 0, 0, 0, 262, 0, 264, 0, ++ 0, 0, 0, 0, 1987, 0, 0, 0, 0, 0, ++ 0, 0, 1988, 0, 0, 0, 803, 0, 0, 0, ++ 0, 0, 0, 0, 3278, 0, 0, 1989, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, ++ 0, 0, 0, 3279, 0, 1969, 1970, 0, 0, 0, ++ 803, 0, 3280, 3281, 0, 3282, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 1990, 803, 0, 0, 0, 0, 0, 0, -769, -769, ++ 803, 1972, 0, 0, 3283, 3284, 3285, 0, 1991, 0, ++ -769, 0, 1992, 0, 0, 0, 0, 0, 0, 0, ++ 0, 1975, 0, 3286, 3287, 3288, 0, 0, 0, 1976, ++ 0, 3289, 0, 0, 3290, 0, 0, 0, 0, 0, ++ 0, 3034, 0, 0, 0, 3036, 0, 0, 0, 0, ++ 3291, 3292, 0, 1978, 0, 0, 1994, 0, 0, 0, ++ 0, 0, 0, 1995, 0, 1996, 0, 1459, 0, 0, ++ 1979, 0, 0, 1998, 0, 3064, 3065, 0, 0, 0, ++ 0, 0, 3569, 0, 0, 0, 3293, 3294, 0, 0, ++ 0, 0, 0, 0, 0, 3085, 0, 0, 1984, 0, ++ 0, 0, 0, 0, 3095, 0, 3097, 0, 3099, 0, ++ 0, 3295, 0, 0, 0, 0, 0, 0, 0, 2001, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 2004, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 3129, 0, 262, ++ 0, 264, 3296, 0, 0, 0, 3297, 1987, 0, 0, ++ 0, 0, 0, 0, 0, 1988, 0, 0, 3298, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 1989, 0, 0, 0, 0, 0, 0, 0, 2005, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 2006, 0, 0, 0, 2007, 0, ++ 0, 0, 0, 803, 3186, 0, 0, 0, 3190, 0, ++ 0, 0, 3299, 0, 0, 3300, 0, 2008, 3301, 3302, ++ 3303, 3304, 0, 1990, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 2010, 0, 0, 0, 0, ++ 0, 1991, 803, 803, 0, 0, 0, 0, 0, 0, ++ 0, 803, 0, 0, 0, 3222, 0, 0, 0, 0, ++ 0, 0, 3305, 3306, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 3307, 0, ++ 0, 0, 0, 0, 0, 0, 1995, 0, 1996, 0, ++ 0, 0, 0, 0, 0, 0, 1998, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 3569, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 2024, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 2004, 0, 3319, 3320, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 803, 0, 0, 0, 803, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 803, 2005, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 3365, 0, 803, 0, 0, 2006, 0, 0, ++ 0, 2007, 0, 0, 0, 0, 0, 803, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 2008, 0, 0, 0, 0, 3403, 3404, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 3411, 2010, 0, ++ 0, 0, 3413, 0, 0, 3414, 0, 3415, 3416, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 3433, 0, 0, 0, 0, 0, 0, ++ 3929, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 3433, 0, ++ 3955, 0, 0, 0, 3955, 3955, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, ++ 0, 0, 3479, 803, 0, 0, 0, 0, 0, 0, ++ 0, 0, 803, 0, 803, 0, 0, 0, 0, 0, ++ 0, 0, 0, 3433, 0, 0, 0, 0, 0, 0, ++ 0, 0, 3503, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 803, 0, 0, 0, 0, 0, 3929, ++ 3929, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 3955, 0, 0, 0, 0, 0, ++ 0, 0, 0, 3955, 0, 0, 0, 3955, 0, 0, ++ 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 803, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 3955, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 803, 0, 803, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 803, 0, 3929, 3929, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 4184, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 3433, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 3955, 0, 3955, 3955, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 3712, 3713, 0, 803, 0, 3929, ++ 0, 0, 0, 3222, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 3929, 803, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 3929, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 803, 3929, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 3929, 3929, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 803, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 3222, 0, 3929, ++ 0, 3820, 0, 0, 0, 0, 803, 0, 0, 3929, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 3433, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 803, 3222, 0, 0, 0, ++ 0, 0, 3929, 0, 3929, 0, 0, 0, 0, 3186, ++ 0, 0, 0, 0, 3929, 0, 0, 0, 803, 0, ++ 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 3929, 0, 3929, 0, 3929, 0, 0, ++ 0, 0, 0, 0, 3929, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 3929, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 3929, 3929, 0, 0, 0, 0, 803, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 3929, 3929, 0, ++ 0, 0, 3929, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 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, 4014, 0, 4016, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 4037, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 3222, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 3222, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 4136, 0, 4137, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 4145, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4241, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 4246, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 3433, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 4295, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 4350, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 4378, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 4397, 0, 0, 0, 139, 0, 672, ++ 141, 142, 143, 144, 0, 0, 145, 0, 0, 0, ++ 146, 0, 0, 673, 0, 148, 149, 150, 151, 152, ++ 674, 154, 0, 155, 0, 0, 675, 156, 676, 677, ++ 678, 157, 679, 0, 158, 159, 160, 1679, 161, 0, ++ 162, 163, 0, 0, 164, 680, 681, 165, 166, 4445, ++ 167, 682, 683, 169, 170, 0, 171, 172, 173, 174, ++ 175, 684, 177, 0, 685, 179, 686, 687, 688, 689, ++ 690, 691, 0, 186, 187, 188, 189, 190, 191, 192, ++ 193, 0, 194, 195, 0, 196, 197, 198, 692, 200, ++ 0, 201, 693, 694, 202, 0, 3433, 203, 695, 696, ++ 0, 204, 697, 698, 0, 205, 206, 207, 699, 700, ++ 701, 0, 0, 0, 0, 702, 210, 703, 0, 0, ++ 704, 211, 0, 212, 0, 0, 0, 213, 0, 214, ++ 215, 216, 217, 0, 0, 0, 218, 0, 0, 219, ++ 220, 221, 0, 0, 0, 222, 0, 223, 224, 0, ++ 225, 226, 227, 0, 228, 229, 0, 230, 231, 232, ++ 233, 234, 235, 705, 0, 236, 237, 238, 706, 707, ++ 239, 240, 0, 241, 242, 243, 708, 0, 244, 0, ++ 0, 0, 245, 0, 246, 0, 247, 0, 248, 249, ++ 709, 251, 710, 253, 0, 254, 0, 711, 255, 256, ++ 257, 0, 258, 712, 713, 0, 259, 260, 0, 0, ++ 0, 714, 262, 263, 264, 715, 0, 265, 266, 267, ++ 0, 268, 0, 269, 0, 0, 0, 716, 270, 271, ++ 717, 0, 0, 272, 0, 273, 274, 0, 275, 276, ++ 0, 0, 0, 277, 0, 0, 278, 279, 718, 0, ++ 1680, 281, 0, 719, 282, 283, 0, 0, 0, 0, ++ 0, 720, 285, 0, 286, 0, 287, 0, 288, 289, ++ 0, 0, 721, 0, 0, 0, 290, 291, 292, 293, ++ 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, ++ 303, 304, 305, 722, 306, 307, 308, 309, 723, 310, ++ 311, 0, 0, 0, 0, 312, 313, 314, 315, 724, ++ 317, 0, 0, 725, 319, 726, 320, 0, 321, 727, ++ 728, 729, 730, 731, 326, 327, 328, 329, 330, 331, ++ 0, 732, 332, 333, 0, 0, 334, 335, 336, 337, ++ 733, 734, 735, 338, 339, 0, 736, 737, 0, 340, ++ 341, 738, 0, 343, 344, 345, 346, 0, 347, 348, ++ 0, 0, 0, 0, 0, 0, 0, 0, 349, 350, ++ 351, 0, 739, 352, 0, 353, 354, 355, 356, 740, ++ 358, 359, 360, 361, 741, 742, 364, 743, 0, 365, ++ 366, 367, 0, 368, 0, 369, 370, 371, 372, 373, ++ 0, 744, 375, 376, 0, 0, 377, 0, 0, 0, ++ 378, 379, 380, 381, 382, 0, 0, 383, 384, 385, ++ 386, 387, 0, 388, 389, 0, 390, 391, 392, 745, ++ 746, 393, 0, 394, 0, 395, 396, 0, 397, 398, ++ 0, 0, 747, 399, 400, 401, 402, 403, 748, 405, ++ 406, 407, 408, 0, 749, 410, 0, 0, 0, 411, ++ 412, 413, 414, 0, 0, 0, 415, 0, 0, 0, ++ 416, 0, 417, 418, 419, 420, 0, 421, 422, 423, ++ 424, 425, 426, 0, 0, 0, 0, 0, 0, 427, ++ 428, 0, 429, 0, 0, 430, 0, 0, 431, 432, ++ 433, 750, 751, 434, 435, 0, 436, 437, 752, 439, ++ 440, 441, 753, 754, 442, 443, 444, 445, 755, 446, ++ 447, 0, 448, 0, 449, 450, 451, 452, 0, 756, ++ 453, 454, 0, 757, 758, 759, 760, 0, 0, 0, ++ 0, 1681, 459, 460, 461, 0, 761, 762, 763, 463, ++ 464, 465, 764, 466, 467, 765, 468, 469, 0, 470, ++ 471, 0, 0, 472, 0, 0, 473, 0, 474, 0, ++ 766, 476, 477, 0, 0, 767, 768, 769, 770, 478, ++ 0, 0, 479, 771, 0, 772, 480, 481, 482, 483, ++ 484, 773, 0, 0, 0, 0, 0, 0, 486, 487, ++ 0, 488, 489, 490, 0, 0, 774, 0, 0, 0, ++ 0, 0, 0, 0, 775, 776, 0, 0, 0, 0, ++ 777, 778, 0, 0, 779, 780, 0, 0, 781, 782, ++ 139, 0, 672, 141, 142, 143, 144, 3182, 0, 145, ++ 0, 0, 0, 146, 0, 0, 673, 0, 148, 149, ++ 150, 151, 152, 674, 154, 0, 155, 0, 0, 3183, ++ 156, 676, 677, 678, 157, 679, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 680, 681, ++ 165, 166, 0, 167, 682, 683, 169, 170, 0, 171, ++ 172, 173, 174, 175, 684, 177, 0, 685, 179, 686, ++ 687, 688, 689, 690, 691, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 692, 200, 0, 201, 693, 694, 202, 0, 0, ++ 203, 695, 696, 0, 204, 697, 698, 0, 205, 206, ++ 207, 699, 700, 701, 0, 0, 0, 0, 702, 210, ++ 703, 0, 0, 3184, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 705, 0, 236, 237, ++ 238, 706, 707, 239, 240, 0, 241, 242, 243, 708, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 709, 251, 710, 253, 0, 254, 0, ++ 711, 255, 256, 257, 0, 258, 712, 713, 0, 259, ++ 260, 0, 0, 0, 714, 262, 263, 264, 715, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 716, 270, 271, 717, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 718, 0, 0, 281, 0, 719, 282, 283, 0, ++ 0, 0, 0, 0, 720, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 721, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 722, 306, 307, 308, ++ 309, 723, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 724, 317, 0, 0, 725, 319, 726, 320, ++ 0, 321, 727, 728, 729, 730, 731, 326, 327, 328, ++ 329, 330, 331, 0, 732, 332, 333, 0, 0, 334, ++ 335, 336, 337, 733, 734, 735, 338, 339, 0, 736, ++ 737, 0, 340, 341, 738, 3185, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 739, 352, 0, 353, 354, ++ 355, 356, 740, 358, 359, 360, 361, 741, 742, 364, ++ 743, 0, 365, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 744, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 745, 746, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 747, 399, 400, 401, 402, ++ 403, 748, 405, 406, 407, 408, 0, 749, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 750, 751, 434, 435, 0, 436, ++ 437, 752, 439, 440, 441, 753, 754, 442, 443, 444, ++ 445, 755, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 756, 453, 454, 0, 757, 758, 759, 760, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 761, ++ 762, 763, 463, 464, 465, 764, 466, 467, 765, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 766, 476, 477, 0, 0, 767, 768, ++ 769, 770, 478, 0, 0, 479, 771, 0, 772, 480, ++ 481, 482, 483, 484, 773, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 0, 774, ++ 0, 0, 0, 0, 0, 0, 0, 775, 776, 0, ++ 0, 0, 0, 777, 778, 0, 0, 779, 780, 0, ++ 0, 781, 782, 139, 0, 672, 141, 142, 143, 144, ++ 0, 0, 145, 0, 0, 0, 146, 0, 0, 673, ++ 0, 148, 149, 150, 151, 152, 674, 154, 0, 155, ++ 0, 0, 675, 156, 676, 677, 678, 157, 679, 0, ++ 158, 159, 160, 0, 161, 0, 162, 163, 0, 0, ++ 164, 680, 681, 165, 166, 0, 167, 682, 683, 169, ++ 170, 0, 171, 172, 173, 174, 175, 684, 177, 0, ++ 685, 179, 686, 687, 688, 689, 690, 691, 0, 186, ++ 187, 188, 189, 190, 191, 192, 193, 0, 194, 195, ++ 0, 196, 197, 198, 692, 200, 0, 201, 693, 694, ++ 202, 0, 0, 203, 695, 696, 0, 204, 697, 698, ++ 0, 205, 206, 207, 699, 700, 701, 0, 0, 0, ++ 0, 702, 210, 703, 0, 0, 704, 211, 0, 212, ++ 0, 0, 0, 213, 0, 214, 215, 216, 217, 0, ++ 0, 0, 218, 0, 0, 219, 220, 221, 0, 0, ++ 0, 222, 0, 223, 224, 0, 225, 226, 227, 0, ++ 228, 229, 0, 230, 231, 232, 233, 234, 235, 705, ++ 0, 236, 237, 238, 706, 707, 239, 240, 0, 241, ++ 242, 243, 708, 0, 244, 0, 0, 0, 245, 2203, ++ 246, 0, 247, 0, 248, 249, 709, 251, 710, 253, ++ 0, 254, 0, 711, 255, 256, 257, 0, 258, 712, ++ 713, 0, 259, 260, 0, 0, 0, 714, 262, 263, ++ 264, 715, 0, 265, 266, 267, 0, 268, 0, 269, ++ 0, 0, 0, 716, 270, 271, 717, 0, 0, 272, ++ 0, 273, 274, 0, 275, 276, 0, 0, 0, 277, ++ 0, 0, 278, 279, 718, 0, 0, 281, 0, 719, ++ 282, 283, 0, 0, 0, 0, 0, 720, 285, 0, ++ 286, 0, 287, 0, 288, 289, 0, 0, 721, 0, ++ 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, ++ 298, 299, 300, 301, 302, 0, 303, 304, 305, 722, ++ 306, 307, 308, 309, 723, 310, 311, 0, 0, 0, ++ 0, 312, 313, 314, 315, 724, 317, 0, 0, 725, ++ 319, 726, 320, 0, 321, 727, 728, 729, 730, 731, ++ 326, 327, 328, 329, 330, 331, 0, 732, 332, 333, ++ 0, 0, 334, 335, 336, 337, 733, 734, 735, 338, ++ 339, 0, 736, 737, 0, 340, 341, 738, 0, 343, ++ 344, 345, 346, 0, 347, 348, 0, 0, 0, 0, ++ 0, 0, 0, 0, 349, 350, 351, 0, 739, 352, ++ 0, 353, 354, 355, 356, 740, 358, 359, 360, 361, ++ 741, 742, 364, 743, 0, 365, 366, 367, 0, 368, ++ 0, 369, 370, 371, 372, 373, 0, 744, 375, 376, ++ 0, 0, 377, 0, 0, 0, 378, 379, 380, 381, ++ 382, 0, 0, 383, 384, 385, 386, 387, 0, 388, ++ 389, 0, 390, 391, 392, 745, 746, 393, 0, 394, ++ 0, 395, 396, 0, 397, 398, 0, 0, 747, 399, ++ 400, 401, 402, 403, 748, 405, 406, 407, 408, 0, ++ 749, 410, 0, 0, 0, 411, 412, 413, 414, 0, ++ 0, 0, 415, 0, 0, 0, 416, 0, 417, 418, ++ 419, 420, 0, 421, 422, 423, 424, 425, 426, 0, ++ 0, 0, 0, 0, 0, 427, 428, 0, 429, 0, ++ 0, 430, 0, 0, 431, 432, 433, 750, 751, 434, ++ 435, 0, 436, 437, 752, 439, 440, 441, 753, 754, ++ 442, 443, 444, 445, 755, 446, 447, 0, 448, 0, ++ 449, 450, 451, 452, 0, 756, 453, 454, 0, 757, ++ 758, 759, 760, 0, 0, 0, 0, 0, 459, 460, ++ 461, 0, 761, 762, 763, 463, 464, 465, 764, 466, ++ 467, 765, 468, 469, 0, 470, 471, 0, 0, 472, ++ 0, 0, 473, 0, 474, 0, 766, 476, 477, 0, ++ 0, 767, 768, 769, 770, 478, 0, 0, 479, 771, ++ 0, 772, 480, 481, 482, 483, 484, 773, 0, 0, ++ 0, 0, 0, 0, 486, 487, 0, 488, 489, 490, ++ 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, ++ 775, 776, 0, 0, 0, 0, 777, 778, 0, 0, ++ 779, 780, 0, 0, 781, 782, 139, 0, 672, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 673, 0, 148, 149, 150, 151, 152, 674, ++ 154, 0, 155, 0, 0, 675, 156, 676, 677, 678, ++ 157, 679, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 680, 681, 165, 166, 0, 167, ++ 682, 683, 169, 170, 0, 171, 172, 173, 174, 175, ++ 684, 177, 0, 685, 179, 686, 687, 688, 689, 690, ++ 691, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 692, 200, 0, ++ 201, 693, 694, 202, 0, 0, 203, 695, 696, 0, ++ 204, 697, 698, 0, 205, 206, 207, 699, 700, 701, ++ 0, 0, 0, 0, 702, 210, 703, 0, 0, 704, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 705, 0, 236, 237, 238, 706, 707, 239, ++ 240, 0, 241, 242, 243, 708, 0, 244, 0, 0, ++ 0, 245, 2205, 246, 0, 247, 0, 248, 249, 709, ++ 251, 710, 253, 0, 254, 0, 711, 255, 256, 257, ++ 0, 258, 712, 713, 0, 259, 260, 0, 0, 0, ++ 714, 262, 263, 264, 715, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 716, 270, 271, 717, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 718, 0, 0, ++ 281, 0, 719, 282, 283, 0, 0, 0, 0, 0, ++ 720, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 721, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 722, 306, 307, 308, 309, 723, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 724, 317, ++ 0, 0, 725, 319, 726, 320, 0, 321, 727, 728, ++ 729, 730, 731, 326, 327, 328, 329, 330, 331, 0, ++ 732, 332, 333, 0, 0, 334, 335, 336, 337, 733, ++ 734, 735, 338, 339, 0, 736, 737, 0, 340, 341, ++ 738, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 739, 352, 0, 353, 354, 355, 356, 740, 358, ++ 359, 360, 361, 741, 742, 364, 743, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 744, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 745, 746, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 747, 399, 400, 401, 402, 403, 748, 405, 406, ++ 407, 408, 0, 749, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 750, 751, 434, 435, 0, 436, 437, 752, 439, 440, ++ 441, 753, 754, 442, 443, 444, 445, 755, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 756, 453, ++ 454, 0, 757, 758, 759, 760, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 761, 762, 763, 463, 464, ++ 465, 764, 466, 467, 765, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 766, ++ 476, 477, 0, 0, 767, 768, 769, 770, 478, 0, ++ 0, 479, 771, 0, 772, 480, 481, 482, 483, 484, ++ 773, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 0, 774, 0, 0, 0, 0, ++ 0, 0, 0, 775, 776, 0, 0, 0, 0, 777, ++ 778, 0, 0, 779, 780, 0, 0, 781, 782, 139, ++ 0, 672, 141, 142, 143, 144, 0, 0, 145, 0, ++ 0, 0, 146, 0, 0, 673, 0, 148, 149, 150, ++ 151, 152, 674, 154, 0, 155, 0, 0, 675, 156, ++ 676, 677, 678, 157, 679, 0, 158, 159, 160, 0, ++ 161, 0, 162, 163, 0, 0, 164, 680, 681, 165, ++ 166, 0, 167, 682, 683, 169, 170, 0, 171, 172, ++ 173, 174, 175, 684, 177, 0, 685, 179, 686, 687, ++ 688, 689, 690, 691, 0, 186, 187, 188, 189, 190, ++ 191, 192, 193, 0, 194, 195, 0, 196, 197, 198, ++ 692, 200, 0, 201, 693, 694, 202, 0, 0, 203, ++ 695, 696, 0, 204, 697, 698, 0, 205, 206, 207, ++ 699, 700, 701, 0, 0, 0, 0, 702, 210, 703, ++ 0, 0, 704, 211, 0, 212, 0, 0, 0, 213, ++ 0, 214, 215, 216, 217, 0, 0, 0, 218, 0, ++ 0, 219, 220, 221, 0, 0, 0, 222, 0, 223, ++ 224, 0, 225, 226, 227, 0, 228, 229, 0, 230, ++ 231, 232, 233, 234, 235, 705, 0, 236, 237, 238, ++ 706, 707, 239, 240, 0, 241, 242, 243, 708, 0, ++ 244, 0, 0, 0, 245, 2207, 246, 0, 247, 0, ++ 248, 249, 709, 251, 710, 253, 0, 254, 0, 711, ++ 255, 256, 257, 0, 258, 712, 713, 0, 259, 260, ++ 0, 0, 0, 714, 262, 263, 264, 715, 0, 265, ++ 266, 267, 0, 268, 0, 269, 0, 0, 0, 716, ++ 270, 271, 717, 0, 0, 272, 0, 273, 274, 0, ++ 275, 276, 0, 0, 0, 277, 0, 0, 278, 279, ++ 718, 0, 0, 281, 0, 719, 282, 283, 0, 0, ++ 0, 0, 0, 720, 285, 0, 286, 0, 287, 0, ++ 288, 289, 0, 0, 721, 0, 0, 0, 290, 291, ++ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, ++ 302, 0, 303, 304, 305, 722, 306, 307, 308, 309, ++ 723, 310, 311, 0, 0, 0, 0, 312, 313, 314, ++ 315, 724, 317, 0, 0, 725, 319, 726, 320, 0, ++ 321, 727, 728, 729, 730, 731, 326, 327, 328, 329, ++ 330, 331, 0, 732, 332, 333, 0, 0, 334, 335, ++ 336, 337, 733, 734, 735, 338, 339, 0, 736, 737, ++ 0, 340, 341, 738, 0, 343, 344, 345, 346, 0, ++ 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, ++ 349, 350, 351, 0, 739, 352, 0, 353, 354, 355, ++ 356, 740, 358, 359, 360, 361, 741, 742, 364, 743, ++ 0, 365, 366, 367, 0, 368, 0, 369, 370, 371, ++ 372, 373, 0, 744, 375, 376, 0, 0, 377, 0, ++ 0, 0, 378, 379, 380, 381, 382, 0, 0, 383, ++ 384, 385, 386, 387, 0, 388, 389, 0, 390, 391, ++ 392, 745, 746, 393, 0, 394, 0, 395, 396, 0, ++ 397, 398, 0, 0, 747, 399, 400, 401, 402, 403, ++ 748, 405, 406, 407, 408, 0, 749, 410, 0, 0, ++ 0, 411, 412, 413, 414, 0, 0, 0, 415, 0, ++ 0, 0, 416, 0, 417, 418, 419, 420, 0, 421, ++ 422, 423, 424, 425, 426, 0, 0, 0, 0, 0, ++ 0, 427, 428, 0, 429, 0, 0, 430, 0, 0, ++ 431, 432, 433, 750, 751, 434, 435, 0, 436, 437, ++ 752, 439, 440, 441, 753, 754, 442, 443, 444, 445, ++ 755, 446, 447, 0, 448, 0, 449, 450, 451, 452, ++ 0, 756, 453, 454, 0, 757, 758, 759, 760, 0, ++ 0, 0, 0, 0, 459, 460, 461, 0, 761, 762, ++ 763, 463, 464, 465, 764, 466, 467, 765, 468, 469, ++ 0, 470, 471, 0, 0, 472, 0, 0, 473, 0, ++ 474, 0, 766, 476, 477, 0, 0, 767, 768, 769, ++ 770, 478, 0, 0, 479, 771, 0, 772, 480, 481, ++ 482, 483, 484, 773, 0, 0, 0, 0, 0, 0, ++ 486, 487, 0, 488, 489, 490, 0, 0, 774, 0, ++ 0, 0, 0, 0, 0, 0, 775, 776, 0, 0, ++ 0, 0, 777, 778, 0, 0, 779, 780, 0, 0, ++ 781, 782, 139, 0, 672, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 673, 0, ++ 148, 149, 150, 151, 152, 674, 154, 0, 155, 0, ++ 0, 675, 156, 676, 677, 678, 157, 679, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 680, 681, 165, 166, 0, 167, 682, 683, 169, 170, ++ 0, 171, 172, 173, 174, 175, 684, 177, 0, 685, ++ 179, 686, 687, 688, 689, 690, 691, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 692, 200, 0, 201, 693, 694, 202, ++ 0, 0, 203, 695, 696, 0, 204, 697, 698, 0, ++ 205, 206, 207, 699, 700, 701, 0, 0, 0, 0, ++ 702, 210, 703, 0, 0, 704, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 705, 0, ++ 236, 237, 238, 706, 707, 239, 240, 0, 241, 242, ++ 243, 708, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 709, 251, 710, 253, 0, ++ 254, 0, 711, 255, 256, 257, 0, 258, 712, 713, ++ 0, 259, 260, 0, 0, 0, 714, 262, 263, 264, ++ 715, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 716, 270, 271, 717, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 718, 0, 0, 281, 0, 719, 282, ++ 283, 0, 0, 0, 0, 0, 720, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 721, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 722, 306, ++ 307, 308, 309, 723, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 724, 317, 0, 0, 725, 319, ++ 726, 320, 0, 321, 727, 728, 729, 730, 731, 326, ++ 327, 328, 329, 330, 331, 0, 732, 332, 333, 0, ++ 0, 334, 335, 336, 337, 733, 734, 735, 338, 339, ++ 0, 736, 737, 0, 340, 341, 738, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 739, 352, 0, ++ 353, 354, 355, 356, 740, 358, 359, 360, 361, 741, ++ 742, 364, 743, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 744, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 745, 746, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 747, 399, 400, ++ 401, 402, 403, 748, 405, 406, 407, 408, 0, 749, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 750, 751, 434, 435, ++ 0, 436, 437, 752, 439, 440, 441, 753, 754, 442, ++ 443, 444, 445, 755, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 756, 453, 454, 0, 757, 758, ++ 759, 760, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 761, 762, 763, 463, 464, 465, 764, 466, 467, ++ 765, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 766, 476, 477, 0, 0, ++ 767, 768, 769, 770, 478, 0, 0, 479, 771, 0, ++ 772, 480, 481, 482, 483, 484, 773, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 0, 774, 0, 0, 0, 0, 0, 0, 0, 775, ++ 776, 0, 0, 0, 0, 777, 778, 0, 0, 779, ++ 780, 0, 0, 781, 782, 139, 0, 672, 141, 142, ++ 143, 144, 0, 0, 145, 0, 0, 0, 146, 0, ++ 0, 673, 0, 148, 149, 150, 151, 152, 674, 154, ++ 0, 155, 0, 0, 675, 156, 676, 677, 678, 157, ++ 679, 0, 158, 159, 160, 0, 161, 0, 162, 163, ++ 0, 0, 164, 680, 681, 165, 166, 0, 167, 682, ++ 683, 169, 170, 0, 171, 172, 173, 174, 175, 684, ++ 177, 0, 685, 179, 686, 687, 688, 689, 690, 691, ++ 0, 186, 187, 188, 189, 190, 191, 192, 193, 0, ++ 194, 195, 0, 196, 197, 198, 692, 200, 0, 201, ++ 693, 694, 202, 0, 0, 203, 695, 696, 0, 204, ++ 697, 698, 0, 205, 206, 207, 699, 700, 701, 0, ++ 0, 0, 0, 702, 210, 703, 0, 0, 704, 211, ++ 0, 212, 0, 0, 0, 213, 0, 214, 215, 216, ++ 217, 0, 0, 0, 218, 0, 0, 219, 220, 221, ++ 0, 0, 0, 222, 0, 223, 224, 0, 225, 226, ++ 227, 0, 228, 229, 0, 230, 231, 232, 233, 234, ++ 235, 705, 0, 236, 237, 238, 706, 707, 239, 240, ++ 0, 241, 242, 243, 708, 0, 244, 0, 0, 0, ++ 245, 0, 246, 0, 247, 0, 248, 249, 709, 251, ++ 710, 253, 0, 254, 0, 711, 255, 256, 257, 0, ++ 258, 712, 713, 0, 259, 260, 0, 0, 0, 714, ++ 262, 263, 264, 715, 0, 265, 266, 267, 0, 268, ++ 0, 269, 0, 0, 0, 716, 270, 271, 717, 0, ++ 0, 272, 0, 273, 274, 0, 275, 276, 0, 0, ++ 0, 277, 0, 0, 278, 279, 718, 0, 0, 281, ++ 0, 719, 282, 283, 0, 0, 0, 0, 0, 720, ++ 285, 0, 286, 0, 287, 0, 288, 289, 0, 0, ++ 721, 0, 0, 0, 290, 291, 292, 293, 294, 295, ++ 296, 297, 298, 299, 300, 301, 302, 0, 303, 304, ++ 305, 722, 306, 307, 308, 309, 723, 310, 311, 0, ++ 0, 0, 0, 312, 313, 314, 315, 724, 317, 0, ++ 0, 725, 319, 726, 320, 0, 321, 727, 728, 729, ++ 730, 731, 326, 327, 328, 329, 330, 331, 0, 732, ++ 332, 333, 0, 0, 334, 335, 336, 337, 733, 734, ++ 735, 338, 339, 0, 736, 737, 0, 340, 341, 738, ++ 0, 343, 344, 345, 346, 0, 347, 348, 0, 0, ++ 0, 0, 0, 0, 0, 0, 349, 350, 351, 0, ++ 739, 352, 0, 353, 354, 355, 356, 740, 358, 359, ++ 360, 361, 741, 742, 364, 743, 0, 365, 366, 367, ++ 0, 368, 0, 369, 370, 371, 372, 373, 0, 744, ++ 375, 376, 0, 0, 377, 0, 0, 0, 378, 379, ++ 380, 381, 382, 0, 0, 383, 384, 385, 386, 387, ++ 0, 388, 389, 0, 390, 391, 392, 745, 746, 393, ++ 0, 394, 0, 395, 396, 0, 397, 398, 0, 0, ++ 747, 399, 400, 401, 402, 403, 748, 405, 406, 407, ++ 408, 0, 749, 410, 0, 0, 0, 411, 412, 413, ++ 414, 0, 0, 0, 415, 0, 0, 0, 416, 0, ++ 417, 418, 419, 420, 0, 421, 422, 423, 424, 425, ++ 426, 0, 0, 0, 0, 0, 0, 427, 428, 0, ++ 429, 0, 0, 430, 0, 0, 431, 432, 433, 750, ++ 751, 434, 435, 0, 436, 437, 752, 439, 440, 441, ++ 753, 754, 442, 443, 444, 445, 755, 446, 447, 0, ++ 448, 0, 449, 450, 451, 452, 0, 756, 453, 454, ++ 0, 757, 758, 759, 760, 0, 0, 0, 0, 0, ++ 459, 460, 461, 0, 761, 762, 763, 463, 464, 465, ++ 764, 466, 467, 765, 468, 469, 0, 470, 471, 0, ++ 0, 472, 0, 0, 473, 0, 474, 0, 766, 476, ++ 477, 0, 0, 767, 768, 769, 770, 478, 0, 0, ++ 479, 771, 0, 772, 480, 481, 482, 483, 484, 773, ++ 0, 0, 0, 0, 0, 0, 486, 487, 0, 488, ++ 489, 490, 0, 0, 774, 0, 0, 0, 0, 0, ++ 0, 0, 775, 776, 0, 0, 0, 0, 777, 1124, ++ 0, 0, 779, 780, 0, 0, 781, 782, 139, 0, ++ 672, 141, 142, 143, 144, 1713, 0, 145, 0, 0, ++ 0, 1714, 0, 0, 673, 0, 148, 149, 150, 151, ++ 152, 674, 154, 0, 155, 0, 0, 675, 156, 676, ++ 677, 678, 157, 679, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 680, 681, 165, 166, ++ 0, 167, 682, 683, 169, 170, 0, 171, 172, 173, ++ 174, 175, 684, 177, 0, 685, 179, 686, 687, 688, ++ 689, 690, 691, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 692, ++ 200, 0, 201, 693, 694, 202, 0, 0, 203, 695, ++ 696, 0, 204, 697, 698, 0, 205, 206, 207, 699, ++ 700, 701, 0, 0, 0, 0, 702, 210, 703, 0, ++ 0, 704, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 705, 0, 236, 237, 238, 706, ++ 707, 239, 240, 0, 241, 242, 243, 708, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 709, 251, 710, 253, 0, 254, 0, 711, 255, ++ 256, 257, 0, 258, 712, 713, 0, 259, 260, 0, ++ 0, 0, 714, 262, 263, 264, 715, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 716, 270, ++ 271, 717, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 718, ++ 0, 0, 281, 0, 719, 282, 283, 0, 0, 0, ++ 0, 0, 720, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 721, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 722, 306, 307, 308, 309, 723, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 724, 317, 0, 0, 725, 319, 726, 320, 0, 321, ++ 727, 728, 729, 730, 731, 326, 327, 328, 329, 330, ++ 331, 0, 732, 332, 333, 0, 0, 334, 335, 336, ++ 337, 733, 0, 735, 338, 339, 0, 736, 737, 0, ++ 340, 341, 738, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 739, 352, 0, 353, 354, 355, 356, ++ 740, 358, 359, 360, 361, 741, 742, 364, 743, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 744, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 745, 746, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 747, 399, 400, 401, 402, 403, 748, ++ 405, 406, 407, 408, 0, 749, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 750, 751, 434, 435, 0, 436, 437, 752, ++ 439, 440, 441, 753, 754, 442, 443, 444, 445, 755, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 756, 453, 454, 0, 757, 758, 759, 760, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 761, 762, 763, ++ 463, 464, 465, 764, 466, 467, 765, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 766, 476, 477, 0, 0, 767, 768, 769, 770, ++ 478, 0, 0, 479, 771, 0, 772, 480, 481, 482, ++ 483, 484, 773, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 0, 774, 0, 0, ++ 0, 0, 0, 0, 0, 775, 776, 0, 0, 0, ++ 0, 777, 778, 0, 0, 779, 780, 0, 0, 781, ++ 782, 139, 0, 672, 141, 142, 143, 144, 0, 0, ++ 145, 0, 0, 0, 146, 0, 0, 673, 0, 148, ++ 149, 150, 151, 152, 674, 154, 0, 155, 0, 0, ++ 675, 156, 676, 677, 678, 157, 679, 0, 158, 159, ++ 160, 0, 161, 0, 162, 163, 0, 0, 164, 680, ++ 681, 165, 166, 0, 167, 682, 683, 169, 170, 0, ++ 171, 172, 173, 174, 175, 684, 177, 0, 685, 179, ++ 686, 687, 688, 689, 690, 691, 0, 186, 187, 188, ++ 189, 190, 191, 192, 193, 0, 194, 195, 0, 196, ++ 197, 198, 692, 200, 0, 201, 693, 694, 202, 0, ++ 0, 203, 695, 696, 0, 204, 697, 698, 0, 205, ++ 206, 207, 699, 700, 701, 0, 0, 0, 0, 702, ++ 210, 703, 0, 0, 704, 211, 0, 212, 0, 0, ++ 0, 213, 0, 214, 215, 216, 217, 0, 0, 0, ++ 218, 0, 0, 219, 220, 221, 0, 0, 0, 222, ++ 0, 223, 224, 0, 225, 226, 227, 0, 228, 229, ++ 0, 230, 231, 232, 233, 234, 235, 705, 0, 236, ++ 237, 238, 706, 707, 239, 240, 0, 241, 242, 243, ++ 708, 0, 244, 0, 0, 0, 245, 0, 246, 0, ++ 247, 0, 248, 249, 709, 251, 710, 253, 0, 254, ++ 0, 711, 255, 256, 257, 0, 258, 712, 713, 0, ++ 259, 260, 0, 0, 0, 714, 262, 263, 264, 715, ++ 0, 265, 266, 267, 0, 268, 0, 269, 0, 0, ++ 0, 716, 270, 271, 717, 0, 0, 272, 0, 273, ++ 274, 0, 275, 276, 0, 0, 0, 277, 0, 0, ++ 278, 279, 718, 0, 0, 281, 0, 719, 282, 283, ++ 0, 0, 0, 0, 0, 720, 285, 0, 286, 0, ++ 287, 0, 288, 289, 0, 0, 721, 0, 0, 0, ++ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, ++ 300, 301, 302, 0, 303, 304, 305, 722, 306, 307, ++ 308, 309, 723, 310, 311, 0, 0, 0, 0, 312, ++ 313, 314, 315, 724, 317, 0, 0, 725, 319, 726, ++ 320, 0, 321, 727, 728, 729, 730, 731, 326, 327, ++ 328, 329, 330, 331, 0, 732, 332, 333, 0, 0, ++ 334, 335, 336, 337, 733, 734, 735, 338, 339, 0, ++ 736, 737, 0, 340, 341, 738, 0, 343, 344, 345, ++ 346, 0, 347, 348, 0, 0, 0, 0, 0, 0, ++ 0, 0, 349, 350, 351, 0, 739, 352, 0, 353, ++ 354, 355, 356, 740, 358, 359, 360, 361, 741, 742, ++ 364, 743, 0, 365, 366, 367, 0, 368, 0, 369, ++ 370, 371, 372, 373, 0, 744, 375, 376, 0, 0, ++ 377, 0, 0, 0, 378, 379, 380, 381, 382, 0, ++ 0, 383, 384, 385, 386, 387, 0, 388, 389, 0, ++ 390, 391, 392, 745, 746, 393, 0, 394, 0, 395, ++ 396, 0, 397, 398, 0, 0, 747, 399, 400, 401, ++ 402, 403, 748, 405, 406, 407, 408, 0, 749, 410, ++ 0, 0, 0, 411, 412, 413, 414, 0, 0, 0, ++ 415, 0, 0, 0, 416, 0, 417, 418, 419, 420, ++ 0, 421, 422, 423, 424, 425, 426, 0, 0, 0, ++ 0, 0, 0, 427, 428, 0, 429, 0, 0, 430, ++ 0, 0, 431, 432, 433, 750, 751, 434, 435, 0, ++ 436, 437, 752, 439, 440, 441, 753, 754, 442, 443, ++ 444, 445, 755, 446, 447, 0, 448, 0, 449, 450, ++ 451, 452, 0, 756, 453, 454, 0, 757, 758, 759, ++ 760, 0, 0, 0, 0, 0, 459, 460, 461, 0, ++ 761, 762, 763, 463, 464, 465, 764, 466, 467, 765, ++ 468, 469, 0, 470, 471, 0, 0, 472, 0, 0, ++ 473, 0, 474, 0, 1788, 476, 477, 0, 0, 767, ++ 768, 769, 770, 478, 0, 0, 479, 771, 0, 772, ++ 480, 481, 482, 483, 484, 773, 0, 0, 0, 0, ++ 0, 0, 486, 487, 0, 488, 489, 490, 0, 0, ++ 774, 0, 0, 0, 0, 0, 0, 0, 775, 776, ++ 0, 0, 0, 0, 777, 778, 0, 0, 779, 780, ++ 0, 0, 781, 782, 139, 0, 672, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 673, 0, 148, 149, 150, 151, 152, 674, 154, 0, ++ 155, 0, 0, 675, 156, 676, 677, 678, 157, 679, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 680, 681, 165, 166, 0, 167, 682, 683, ++ 169, 170, 0, 171, 172, 173, 174, 175, 684, 177, ++ 0, 685, 179, 686, 687, 688, 689, 690, 691, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 692, 200, 0, 201, 693, ++ 694, 202, 0, 0, 203, 695, 696, 0, 204, 697, ++ 698, 0, 205, 206, 207, 699, 700, 701, 0, 0, ++ 0, 0, 702, 210, 703, 0, 0, 704, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 705, 0, 236, 237, 238, 706, 707, 239, 240, 0, ++ 241, 242, 243, 708, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 709, 251, 710, ++ 253, 0, 254, 0, 711, 255, 256, 257, 0, 258, ++ 712, 713, 0, 259, 260, 0, 0, 0, 714, 262, ++ 263, 264, 715, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 716, 270, 271, 2616, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 718, 0, 0, 281, 0, ++ 719, 282, 283, 0, 0, 0, 0, 0, 720, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 721, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 722, 306, 307, 308, 309, 723, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 724, 317, 0, 0, ++ 725, 319, 726, 320, 0, 321, 727, 728, 729, 730, ++ 731, 326, 327, 328, 329, 330, 331, 0, 732, 332, ++ 333, 0, 0, 334, 335, 336, 337, 733, 734, 735, ++ 338, 339, 0, 736, 737, 0, 340, 341, 738, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 739, ++ 352, 0, 353, 354, 355, 356, 740, 358, 359, 360, ++ 361, 741, 742, 364, 743, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 744, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 745, 746, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 747, ++ 399, 400, 401, 402, 403, 748, 405, 406, 407, 408, ++ 0, 749, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 750, 751, ++ 434, 435, 0, 436, 437, 752, 439, 440, 441, 753, ++ 754, 442, 443, 444, 445, 755, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 756, 453, 454, 0, ++ 757, 758, 759, 760, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 761, 762, 763, 463, 464, 465, 764, ++ 466, 467, 765, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 766, 476, 477, ++ 0, 0, 767, 768, 769, 770, 478, 0, 0, 479, ++ 771, 0, 772, 480, 481, 482, 483, 484, 773, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 0, 774, 0, 0, 0, 0, 0, 0, ++ 0, 775, 776, 0, 0, 0, 0, 777, 778, 0, ++ 0, 779, 780, 0, 0, 781, 782, 139, 0, 672, ++ 141, 142, 143, 144, 0, 0, 145, 0, 0, 0, ++ 146, 0, 0, 673, 0, 148, 149, 150, 151, 152, ++ 674, 154, 0, 155, 0, 0, 675, 156, 676, 677, ++ 678, 157, 679, 0, 158, 159, 160, 0, 161, 0, ++ 162, 163, 0, 0, 164, 680, 681, 165, 166, 0, ++ 167, 682, 683, 169, 170, 0, 171, 172, 173, 174, ++ 175, 684, 177, 0, 685, 179, 686, 687, 688, 689, ++ 690, 691, 0, 186, 187, 188, 189, 190, 191, 192, ++ 193, 0, 194, 195, 0, 196, 197, 198, 692, 200, ++ 0, 201, 693, 694, 202, 0, 0, 203, 695, 696, ++ 0, 204, 697, 698, 0, 205, 206, 207, 699, 700, ++ 701, 0, 0, 0, 0, 702, 210, 703, 0, 0, ++ 704, 211, 0, 212, 0, 0, 0, 213, 0, 214, ++ 215, 216, 217, 0, 0, 0, 218, 0, 0, 219, ++ 220, 221, 0, 0, 0, 222, 0, 223, 224, 0, ++ 225, 226, 227, 0, 228, 229, 0, 230, 231, 232, ++ 233, 234, 235, 705, 0, 236, 237, 238, 706, 707, ++ 239, 240, 0, 241, 242, 243, 708, 0, 244, 0, ++ 0, 0, 245, 0, 246, 0, 247, 0, 248, 249, ++ 709, 251, 710, 253, 0, 254, 0, 711, 255, 256, ++ 257, 0, 258, 712, 713, 0, 259, 260, 0, 0, ++ 0, 714, 262, 263, 264, 715, 0, 265, 266, 267, ++ 0, 268, 0, 269, 0, 0, 0, 716, 270, 271, ++ 2670, 0, 0, 272, 0, 273, 274, 0, 275, 276, ++ 0, 0, 0, 277, 0, 0, 278, 279, 718, 0, ++ 0, 281, 0, 719, 282, 283, 0, 0, 0, 0, ++ 0, 720, 285, 0, 286, 0, 287, 0, 288, 289, ++ 0, 0, 721, 0, 0, 0, 290, 291, 292, 293, ++ 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, ++ 303, 304, 305, 722, 306, 307, 308, 309, 723, 310, ++ 311, 0, 0, 0, 0, 312, 313, 314, 315, 724, ++ 317, 0, 0, 725, 319, 726, 320, 0, 321, 727, ++ 728, 729, 730, 731, 326, 327, 328, 329, 330, 331, ++ 0, 732, 332, 333, 0, 0, 334, 335, 336, 337, ++ 733, 734, 735, 338, 339, 0, 736, 737, 0, 340, ++ 341, 738, 0, 343, 344, 345, 346, 0, 347, 348, ++ 0, 0, 0, 0, 0, 0, 0, 0, 349, 350, ++ 351, 0, 739, 352, 0, 353, 354, 355, 356, 740, ++ 358, 359, 360, 361, 741, 742, 364, 743, 0, 365, ++ 366, 367, 0, 368, 0, 369, 370, 371, 372, 373, ++ 0, 744, 375, 376, 0, 0, 377, 0, 0, 0, ++ 378, 379, 380, 381, 382, 0, 0, 383, 384, 385, ++ 386, 387, 0, 388, 389, 0, 390, 391, 392, 745, ++ 746, 393, 0, 394, 0, 395, 396, 0, 397, 398, ++ 0, 0, 747, 399, 400, 401, 402, 403, 748, 405, ++ 406, 407, 408, 0, 749, 410, 0, 0, 0, 411, ++ 412, 413, 414, 0, 0, 0, 415, 0, 0, 0, ++ 416, 0, 417, 418, 419, 420, 0, 421, 422, 423, ++ 424, 425, 426, 0, 0, 0, 0, 0, 0, 427, ++ 428, 0, 429, 0, 0, 430, 0, 0, 431, 432, ++ 433, 750, 751, 434, 435, 0, 436, 437, 752, 439, ++ 440, 441, 753, 754, 442, 443, 444, 445, 755, 446, ++ 447, 0, 448, 0, 449, 450, 451, 452, 0, 756, ++ 453, 454, 0, 757, 758, 759, 760, 0, 0, 0, ++ 0, 0, 459, 460, 461, 0, 761, 762, 763, 463, ++ 464, 465, 764, 466, 467, 765, 468, 469, 0, 470, ++ 471, 0, 0, 472, 0, 0, 473, 0, 474, 0, ++ 766, 476, 477, 0, 0, 767, 768, 769, 770, 478, ++ 0, 0, 479, 771, 0, 772, 480, 481, 482, 483, ++ 484, 773, 0, 0, 0, 0, 0, 0, 486, 487, ++ 0, 488, 489, 490, 0, 0, 774, 0, 0, 0, ++ 0, 0, 0, 0, 775, 776, 0, 0, 0, 0, ++ 777, 778, 0, 0, 779, 780, 0, 0, 781, 782, ++ 139, 0, 672, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 673, 0, 148, 149, ++ 150, 151, 152, 674, 154, 0, 155, 0, 0, 675, ++ 156, 676, 677, 678, 157, 679, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 680, 681, ++ 165, 166, 0, 167, 682, 683, 169, 170, 0, 171, ++ 172, 173, 174, 175, 684, 177, 0, 685, 179, 686, ++ 687, 688, 689, 690, 691, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 692, 200, 0, 201, 693, 694, 202, 0, 0, ++ 203, 695, 696, 0, 204, 697, 698, 0, 205, 206, ++ 207, 699, 700, 701, 0, 0, 0, 0, 702, 210, ++ 703, 0, 0, 3432, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 705, 0, 236, 237, ++ 238, 706, 707, 239, 240, 0, 241, 242, 243, 708, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 709, 251, 710, 253, 0, 254, 0, ++ 711, 255, 256, 257, 0, 258, 712, 713, 0, 259, ++ 260, 0, 0, 0, 714, 262, 263, 264, 715, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 716, 270, 271, 717, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 718, 0, 0, 281, 0, 719, 282, 283, 0, ++ 0, 0, 0, 0, 720, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 721, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 722, 306, 307, 308, ++ 309, 723, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 724, 317, 0, 0, 725, 319, 726, 320, ++ 0, 321, 727, 728, 729, 730, 731, 326, 327, 328, ++ 329, 330, 331, 0, 732, 332, 333, 0, 0, 334, ++ 335, 336, 337, 733, 734, 735, 338, 339, 0, 736, ++ 737, 0, 340, 341, 738, 0, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 739, 352, 0, 353, 354, ++ 355, 356, 740, 358, 359, 360, 361, 741, 742, 364, ++ 743, 0, 365, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 744, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 745, 746, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 747, 399, 400, 401, 402, ++ 403, 748, 405, 406, 407, 408, 0, 749, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 750, 751, 434, 435, 0, 436, ++ 437, 752, 439, 440, 441, 753, 754, 442, 443, 444, ++ 445, 755, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 756, 453, 454, 0, 757, 758, 759, 760, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 761, ++ 762, 763, 463, 464, 465, 764, 466, 467, 765, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 766, 476, 477, 0, 0, 767, 768, ++ 769, 770, 478, 0, 0, 479, 771, 0, 772, 480, ++ 481, 482, 483, 484, 773, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 0, 774, ++ 0, 0, 0, 0, 0, 0, 0, 775, 776, 0, ++ 0, 0, 0, 777, 778, 0, 0, 779, 780, 0, ++ 0, 781, 782, 139, 0, 672, 141, 142, 143, 144, ++ 0, 0, 145, 0, 0, 0, 146, 0, 0, 673, ++ 0, 148, 149, 150, 151, 152, 674, 154, 0, 155, ++ 0, 0, 675, 156, 676, 677, 678, 157, 679, 0, ++ 158, 159, 160, 0, 161, 0, 162, 163, 0, 0, ++ 164, 680, 681, 165, 166, 0, 167, 682, 683, 169, ++ 170, 0, 171, 172, 173, 174, 175, 684, 177, 0, ++ 685, 179, 686, 687, 688, 689, 690, 691, 0, 186, ++ 187, 188, 189, 190, 191, 192, 193, 0, 194, 195, ++ 0, 196, 197, 198, 692, 200, 0, 201, 693, 694, ++ 202, 0, 0, 203, 695, 696, 0, 204, 697, 698, ++ 0, 205, 206, 207, 699, 700, 701, 0, 0, 0, ++ 0, 702, 210, 703, 0, 0, 704, 211, 0, 212, ++ 0, 0, 0, 213, 0, 214, 215, 216, 217, 0, ++ 0, 0, 218, 0, 0, 219, 220, 221, 0, 0, ++ 0, 222, 0, 223, 224, 0, 225, 226, 227, 0, ++ 228, 229, 0, 230, 231, 232, 233, 234, 235, 705, ++ 0, 236, 237, 238, 706, 707, 239, 240, 0, 241, ++ 242, 243, 708, 0, 244, 0, 0, 0, 245, 0, ++ 246, 0, 247, 0, 248, 249, 709, 251, 710, 253, ++ 0, 254, 0, 711, 255, 256, 257, 0, 258, 712, ++ 713, 0, 259, 260, 0, 0, 0, 714, 262, 263, ++ 264, 715, 0, 265, 266, 267, 0, 268, 0, 269, ++ 0, 0, 0, 716, 270, 271, 717, 0, 0, 272, ++ 0, 273, 274, 0, 275, 276, 0, 0, 0, 277, ++ 0, 0, 278, 279, 718, 0, 0, 281, 0, 719, ++ 282, 283, 0, 0, 0, 0, 0, 720, 285, 0, ++ 286, 0, 287, 0, 288, 289, 0, 0, 721, 0, ++ 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, ++ 298, 299, 300, 301, 302, 0, 303, 304, 305, 722, ++ 306, 307, 308, 309, 723, 310, 311, 4318, 0, 0, ++ 0, 312, 313, 314, 315, 724, 317, 0, 0, 725, ++ 319, 726, 320, 0, 321, 727, 728, 729, 730, 731, ++ 326, 327, 328, 329, 330, 331, 0, 732, 332, 333, ++ 0, 0, 334, 335, 336, 337, 733, 0, 735, 338, ++ 339, 0, 736, 737, 0, 340, 341, 738, 0, 343, ++ 344, 345, 346, 0, 347, 348, 0, 0, 0, 0, ++ 0, 0, 0, 0, 349, 350, 351, 0, 739, 352, ++ 0, 353, 354, 355, 356, 740, 358, 359, 360, 361, ++ 741, 742, 364, 743, 0, 365, 366, 367, 0, 368, ++ 0, 369, 370, 371, 372, 373, 0, 744, 375, 376, ++ 0, 0, 377, 0, 0, 0, 378, 379, 380, 381, ++ 382, 0, 0, 383, 384, 385, 386, 387, 0, 388, ++ 389, 0, 390, 391, 392, 745, 746, 393, 0, 394, ++ 0, 395, 396, 0, 397, 398, 0, 0, 747, 399, ++ 400, 401, 402, 403, 748, 405, 406, 407, 408, 0, ++ 749, 410, 0, 0, 0, 411, 412, 413, 414, 0, ++ 0, 0, 415, 0, 0, 0, 416, 0, 417, 418, ++ 419, 420, 0, 421, 422, 423, 424, 425, 426, 0, ++ 0, 0, 0, 0, 0, 427, 428, 0, 429, 0, ++ 0, 430, 0, 0, 431, 432, 433, 750, 751, 434, ++ 435, 0, 436, 437, 752, 439, 440, 441, 753, 754, ++ 442, 443, 444, 445, 755, 446, 447, 0, 448, 0, ++ 449, 450, 451, 452, 0, 756, 453, 454, 0, 757, ++ 758, 759, 760, 0, 0, 0, 0, 0, 459, 460, ++ 461, 0, 761, 762, 763, 463, 464, 465, 764, 466, ++ 467, 765, 468, 469, 0, 470, 471, 0, 0, 472, ++ 0, 0, 473, 0, 474, 0, 766, 476, 477, 0, ++ 0, 767, 768, 769, 770, 478, 0, 0, 479, 771, ++ 0, 772, 480, 481, 482, 483, 484, 773, 0, 0, ++ 0, 0, 0, 0, 486, 487, 0, 488, 489, 490, ++ 0, 0, 774, 0, 0, 0, 0, 0, 0, 0, ++ 775, 776, 0, 0, 0, 0, 777, 778, 0, 0, ++ 779, 780, 0, 0, 781, 782, 139, 0, 672, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 673, 0, 148, 149, 150, 151, 152, 674, ++ 154, 0, 155, 0, 0, 675, 156, 676, 677, 678, ++ 157, 679, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 680, 681, 165, 166, 0, 167, ++ 682, 683, 169, 170, 0, 171, 172, 173, 174, 175, ++ 684, 177, 0, 685, 179, 686, 687, 688, 689, 690, ++ 691, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 692, 200, 0, ++ 201, 693, 694, 202, 0, 0, 203, 695, 696, 0, ++ 204, 697, 698, 0, 205, 206, 207, 699, 700, 701, ++ 0, 0, 0, 0, 702, 210, 703, 0, 0, 704, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 705, 0, 236, 237, 238, 706, 707, 239, ++ 240, 0, 241, 242, 243, 708, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 709, ++ 251, 710, 253, 0, 254, 0, 711, 255, 256, 257, ++ 0, 258, 712, 713, 0, 259, 260, 0, 0, 0, ++ 714, 262, 263, 264, 715, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 716, 270, 271, 717, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 718, 0, 0, ++ 281, 0, 719, 282, 283, 0, 0, 0, 0, 0, ++ 720, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 721, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 722, 306, 307, 308, 309, 723, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 724, 317, ++ 0, 0, 725, 319, 726, 320, 0, 321, 727, 728, ++ 729, 730, 731, 326, 327, 328, 329, 330, 331, 0, ++ 732, 332, 333, 0, 0, 334, 335, 336, 337, 733, ++ 0, 735, 338, 339, 0, 736, 737, 0, 340, 341, ++ 738, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 739, 352, 0, 353, 354, 355, 356, 740, 358, ++ 359, 360, 361, 741, 742, 364, 743, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 744, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 745, 746, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 747, 399, 400, 401, 402, 403, 748, 405, 406, ++ 407, 408, 0, 749, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 750, 751, 434, 435, 0, 436, 437, 752, 439, 440, ++ 441, 753, 754, 442, 443, 444, 445, 755, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 756, 453, ++ 454, 0, 757, 758, 759, 760, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 761, 762, 763, 463, 464, ++ 465, 764, 466, 467, 765, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 766, ++ 476, 477, 0, 0, 767, 768, 769, 770, 478, 0, ++ 0, 479, 771, 0, 772, 480, 481, 482, 483, 484, ++ 773, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 0, 774, 0, 0, 0, 0, ++ 0, 0, 0, 775, 776, 0, 0, 0, 0, 777, ++ 778, 0, 0, 779, 780, 0, 0, 781, 782, 139, ++ 0, 672, 141, 142, 143, 144, 0, 0, 145, 0, ++ 0, 0, 146, 0, 0, 673, 0, 148, 149, 150, ++ 151, 152, 674, 154, 0, 155, 0, 0, 675, 156, ++ 676, 677, 678, 157, 679, 0, 158, 159, 160, 0, ++ 161, 0, 162, 163, 0, 0, 164, 680, 681, 165, ++ 166, 0, 167, 682, 683, 169, 170, 0, 171, 172, ++ 173, 174, 175, 684, 177, 0, 685, 179, 686, 687, ++ 688, 689, 690, 691, 0, 186, 187, 188, 189, 190, ++ 191, 192, 193, 0, 194, 195, 0, 196, 197, 198, ++ 692, 200, 0, 201, 693, 694, 202, 0, 0, 203, ++ 695, 696, 0, 204, 697, 698, 0, 205, 206, 207, ++ 699, 700, 701, 0, 0, 0, 0, 702, 210, 703, ++ 0, 0, 704, 211, 0, 212, 0, 0, 0, 213, ++ 0, 214, 215, 216, 217, 0, 0, 0, 218, 0, ++ 0, 219, 220, 221, 0, 0, 0, 222, 0, 223, ++ 224, 0, 225, 226, 227, 0, 228, 229, 0, 230, ++ 231, 232, 233, 234, 235, 705, 0, 236, 237, 238, ++ 706, 707, 239, 240, 0, 241, 242, 243, 708, 0, ++ 244, 0, 0, 0, 245, 0, 246, 0, 247, 0, ++ 248, 249, 709, 251, 710, 253, 0, 254, 0, 711, ++ 255, 256, 257, 0, 258, 712, 713, 0, 259, 260, ++ 0, 0, 0, 714, 262, 263, 264, 715, 0, 265, ++ 266, 267, 0, 268, 0, 269, 0, 0, 0, 716, ++ 270, 271, 1728, 0, 0, 272, 0, 273, 274, 0, ++ 275, 276, 0, 0, 0, 277, 0, 0, 278, 279, ++ 718, 0, 0, 281, 0, 719, 282, 283, 0, 0, ++ 0, 0, 0, 720, 285, 0, 286, 0, 287, 0, ++ 288, 289, 0, 0, 721, 0, 0, 0, 290, 291, ++ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, ++ 302, 0, 303, 304, 305, 722, 306, 307, 308, 309, ++ 723, 310, 311, 0, 0, 0, 0, 312, 313, 314, ++ 315, 724, 317, 0, 0, 725, 319, 726, 320, 0, ++ 321, 727, 728, 729, 730, 731, 326, 327, 328, 329, ++ 330, 331, 0, 732, 332, 333, 0, 0, 334, 335, ++ 336, 337, 733, 0, 735, 338, 339, 0, 736, 737, ++ 0, 340, 341, 738, 0, 343, 344, 345, 346, 0, ++ 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, ++ 349, 350, 351, 0, 739, 352, 0, 353, 354, 355, ++ 356, 740, 358, 359, 360, 361, 741, 742, 364, 743, ++ 0, 365, 366, 367, 0, 368, 0, 369, 370, 371, ++ 372, 373, 0, 744, 375, 376, 0, 0, 377, 0, ++ 0, 0, 378, 379, 380, 381, 382, 0, 0, 383, ++ 384, 385, 386, 387, 0, 388, 389, 0, 390, 391, ++ 392, 745, 746, 393, 0, 394, 0, 395, 396, 0, ++ 397, 398, 0, 0, 747, 399, 400, 401, 402, 403, ++ 748, 405, 406, 407, 408, 0, 749, 410, 0, 0, ++ 0, 411, 412, 413, 414, 0, 0, 0, 415, 0, ++ 0, 0, 416, 0, 417, 418, 419, 420, 0, 421, ++ 422, 423, 424, 425, 426, 0, 0, 0, 0, 0, ++ 0, 427, 428, 0, 429, 0, 0, 430, 0, 0, ++ 431, 432, 433, 750, 751, 434, 435, 0, 436, 437, ++ 752, 439, 440, 441, 753, 754, 442, 443, 444, 445, ++ 755, 446, 447, 0, 448, 0, 449, 450, 451, 452, ++ 0, 756, 453, 454, 0, 757, 758, 759, 760, 0, ++ 0, 0, 0, 0, 459, 460, 461, 0, 761, 762, ++ 763, 463, 464, 465, 764, 466, 467, 765, 468, 469, ++ 0, 470, 471, 0, 0, 472, 0, 0, 473, 0, ++ 474, 0, 766, 476, 477, 0, 0, 767, 768, 769, ++ 770, 478, 0, 0, 479, 771, 0, 772, 480, 481, ++ 482, 483, 484, 773, 0, 0, 0, 0, 0, 0, ++ 486, 487, 0, 488, 489, 490, 0, 0, 774, 0, ++ 0, 0, 0, 0, 0, 0, 775, 776, 0, 0, ++ 0, 0, 777, 778, 0, 0, 779, 780, 0, 0, ++ 781, 782, 139, 0, 672, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 673, 0, ++ 148, 149, 150, 151, 152, 674, 154, 0, 155, 0, ++ 0, 675, 156, 676, 677, 678, 157, 679, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 680, 681, 165, 166, 0, 167, 682, 683, 169, 170, ++ 0, 171, 172, 173, 174, 175, 684, 177, 0, 685, ++ 179, 686, 687, 688, 689, 690, 691, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 692, 200, 0, 201, 693, 694, 202, ++ 0, 0, 203, 695, 696, 0, 204, 697, 698, 0, ++ 205, 206, 207, 699, 700, 701, 0, 0, 0, 0, ++ 702, 210, 703, 0, 0, 704, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 705, 0, ++ 236, 237, 238, 706, 707, 239, 240, 0, 241, 242, ++ 243, 708, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 709, 251, 710, 253, 0, ++ 254, 0, 711, 255, 256, 257, 0, 258, 712, 713, ++ 0, 259, 260, 0, 0, 0, 714, 262, 263, 264, ++ 715, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 716, 270, 271, 1730, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 718, 0, 0, 281, 0, 719, 282, ++ 283, 0, 0, 0, 0, 0, 720, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 721, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 722, 306, ++ 307, 308, 309, 723, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 724, 317, 0, 0, 725, 319, ++ 726, 320, 0, 321, 727, 728, 729, 730, 731, 326, ++ 327, 328, 329, 330, 331, 0, 732, 332, 333, 0, ++ 0, 334, 335, 336, 337, 733, 0, 735, 338, 339, ++ 0, 736, 737, 0, 340, 341, 738, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 739, 352, 0, ++ 353, 354, 355, 356, 740, 358, 359, 360, 361, 741, ++ 742, 364, 743, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 744, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 745, 746, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 747, 399, 400, ++ 401, 402, 403, 748, 405, 406, 407, 408, 0, 749, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 750, 751, 434, 435, ++ 0, 436, 437, 752, 439, 440, 441, 753, 754, 442, ++ 443, 444, 445, 755, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 756, 453, 454, 0, 757, 758, ++ 759, 760, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 761, 762, 763, 463, 464, 465, 764, 466, 467, ++ 765, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 766, 476, 477, 0, 0, ++ 767, 768, 769, 770, 478, 0, 0, 479, 771, 0, ++ 772, 480, 481, 482, 483, 484, 773, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 0, 774, 0, 0, 0, 0, 0, 0, 0, 775, ++ 776, 0, 0, 0, 0, 777, 778, 0, 0, 779, ++ 780, 0, 0, 781, 782, 139, 0, 140, 141, 142, ++ 143, 144, 0, 0, 145, 0, 0, 0, 146, 0, ++ 0, 147, 0, 148, 149, 150, 151, 152, 153, 154, ++ 0, 155, 0, 0, 0, 156, 676, 0, 0, 157, ++ 0, 0, 158, 159, 160, 0, 161, 0, 162, 163, ++ 0, 0, 164, 0, 0, 165, 166, 0, 167, 168, ++ 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, ++ 177, 0, 178, 179, 180, 181, 182, 183, 184, 185, ++ 0, 186, 187, 188, 189, 190, 191, 192, 193, 0, ++ 194, 195, 0, 196, 197, 198, 199, 200, 0, 201, ++ 0, 0, 202, 0, 0, 203, 0, 0, 0, 204, ++ 0, 0, 0, 205, 206, 207, 0, 0, 2342, 0, ++ 0, 0, 0, 209, 210, 703, 0, 0, 0, 211, ++ 0, 212, 0, 0, 0, 213, 0, 214, 215, 216, ++ 217, 0, 0, 0, 218, 0, 0, 219, 220, 221, ++ 0, 0, 0, 222, 0, 223, 224, 0, 225, 226, ++ 227, 0, 228, 229, 0, 230, 231, 232, 233, 234, ++ 235, 0, 0, 236, 237, 238, 0, 707, 239, 240, ++ 0, 241, 242, 243, 708, 0, 244, 0, 0, 0, ++ 245, 0, 246, 0, 247, 0, 248, 249, 250, 251, ++ 252, 253, 0, 254, 0, 0, 255, 256, 257, 0, ++ 258, 712, 713, 0, 259, 260, 0, 0, 0, 261, ++ 262, 263, 264, 0, 0, 265, 266, 267, 0, 268, ++ 0, 269, 0, 0, 0, 0, 270, 271, 0, 0, ++ 0, 272, 0, 273, 274, 0, 275, 276, 0, 0, ++ 0, 277, 0, 0, 278, 279, 280, 0, 0, 281, ++ 0, 0, 282, 283, 0, 0, 0, 0, 0, 284, ++ 285, 0, 286, 0, 287, 0, 288, 289, 0, 0, ++ 721, 0, 0, 0, 290, 291, 292, 293, 294, 295, ++ 296, 297, 298, 299, 300, 301, 302, 0, 303, 304, ++ 305, 0, 306, 307, 308, 309, 0, 310, 311, 0, ++ 0, 0, 0, 312, 313, 314, 315, 316, 317, 0, ++ 0, 318, 319, 0, 320, 0, 321, 0, 322, 323, ++ 324, 325, 326, 327, 328, 329, 330, 331, 0, 732, ++ 332, 333, 0, 0, 334, 335, 336, 337, 0, 0, ++ 0, 338, 339, 0, 736, 737, 0, 340, 341, 342, ++ 0, 343, 344, 345, 346, 0, 347, 348, 0, 0, ++ 0, 0, 0, 0, 0, 0, 349, 350, 351, 0, ++ 0, 352, 0, 353, 354, 355, 356, 357, 358, 359, ++ 360, 361, 362, 363, 364, 0, 0, 365, 366, 367, ++ 0, 368, 0, 369, 370, 371, 372, 373, 0, 374, ++ 375, 376, 0, 0, 377, 0, 0, 0, 378, 379, ++ 380, 381, 382, 0, 0, 383, 384, 385, 386, 387, ++ 0, 388, 389, 0, 390, 391, 392, 0, 0, 393, ++ 0, 394, 0, 395, 396, 0, 397, 398, 0, 0, ++ 0, 399, 400, 401, 402, 403, 404, 405, 406, 407, ++ 408, 0, 409, 410, 0, 0, 0, 411, 412, 413, ++ 414, 0, 0, 0, 415, 0, 0, 0, 416, 0, ++ 417, 418, 419, 420, 0, 421, 422, 423, 424, 425, ++ 426, 0, 0, 0, 0, 0, 0, 427, 428, 0, ++ 429, 0, 0, 430, 0, 0, 431, 432, 433, 0, ++ 0, 434, 435, 0, 436, 437, 438, 439, 440, 441, ++ 0, 0, 442, 443, 444, 445, 0, 446, 447, 0, ++ 448, 0, 449, 450, 451, 452, 0, 756, 453, 454, ++ 0, 2343, 456, 457, 2344, 0, 0, 0, 0, 0, ++ 459, 460, 461, 0, 0, 762, 462, 463, 464, 465, ++ 764, 466, 467, 765, 468, 469, 0, 470, 471, 0, ++ 0, 472, 0, 0, 473, 0, 474, 0, 475, 476, ++ 477, 0, 0, 0, 0, 0, 0, 478, 0, 0, ++ 479, 0, 0, 0, 480, 481, 482, 483, 484, 485, ++ 0, 0, 0, 0, 0, 0, 486, 487, 0, 488, ++ 489, 490, 0, 0, 491, 0, 0, 0, 0, 0, ++ 0, 0, 139, 0, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 781, 782, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 2457, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 505, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 2038, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 2039, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 0, 3017, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 3018, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, -439, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 508, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 0, 491, 0, 0, 0, 0, 0, 139, 0, 140, ++ 141, 142, 143, 144, 0, 0, 145, 0, 0, 0, ++ 146, 0, 0, 147, 2524, 148, 149, 150, 151, 152, ++ 153, 154, 0, 155, 0, 0, 0, 156, 0, 0, ++ 0, 157, 0, 0, 158, 159, 160, 0, 161, 0, ++ 162, 163, 0, 0, 164, 0, 0, 165, 166, 0, ++ 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, ++ 175, 176, 177, 0, 178, 179, 180, 181, 182, 183, ++ 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, ++ 193, 0, 194, 195, 2457, 196, 197, 198, 199, 200, ++ 0, 201, 0, 0, 202, 0, 0, 203, 0, 0, ++ 0, 204, 0, 0, 0, 205, 206, 207, 0, 0, ++ 208, 0, 0, 0, 0, 209, 210, 0, 0, 0, ++ 0, 211, 0, 212, 0, 0, 0, 213, 0, 214, ++ 215, 216, 217, 0, 0, 0, 218, 0, 0, 219, ++ 220, 221, 0, 0, 0, 222, 0, 223, 224, 0, ++ 225, 226, 227, 0, 228, 229, 0, 230, 231, 232, ++ 233, 234, 235, 0, 0, 236, 237, 238, 0, 0, ++ 239, 240, 0, 241, 242, 243, 0, 0, 244, 0, ++ 0, 0, 245, 0, 246, 505, 247, 0, 248, 249, ++ 250, 251, 252, 253, 0, 254, 0, 0, 255, 256, ++ 257, 0, 258, 0, 0, 0, 259, 260, 0, 0, ++ 0, 261, 262, 263, 264, 0, 0, 265, 266, 267, ++ 2038, 268, 0, 269, 0, 0, 0, 0, 270, 271, ++ 0, 0, 0, 272, 0, 273, 274, 0, 275, 276, ++ 0, 0, 0, 277, 2039, 0, 278, 279, 280, 0, ++ 0, 281, 0, 0, 282, 283, 0, 0, 0, 0, ++ 0, 284, 285, 0, 286, 0, 287, 0, 288, 289, ++ 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, ++ 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, ++ 303, 304, 305, 0, 306, 307, 308, 309, 0, 310, ++ 311, 0, 0, 0, 0, 312, 313, 314, 315, 316, ++ 317, 0, 0, 318, 319, 0, 320, 0, 321, 0, ++ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, ++ 0, 0, 332, 333, 0, 0, 334, 335, 336, 337, ++ 0, 0, 0, 338, 339, 0, 0, 0, 0, 340, ++ 341, 342, 0, 343, 344, 345, 346, 0, 347, 348, ++ 0, 0, 0, 0, 0, 0, 0, 0, 349, 350, ++ 351, 0, 0, 352, 0, 353, 354, 355, 356, 357, ++ 358, 359, 360, 361, 362, 363, 364, 0, 0, 365, ++ 366, 367, 0, 368, 0, 369, 370, 371, 372, 373, ++ 0, 374, 375, 376, 0, 0, 377, 0, 0, 0, ++ 378, 379, 380, 381, 382, 0, 0, 383, 384, 385, ++ 386, 387, 0, 388, 389, 0, 390, 391, 392, 0, ++ 0, 393, 0, 394, 0, 395, 396, 0, 397, 398, ++ 0, 0, 0, 399, 400, 401, 402, 403, 404, 405, ++ 406, 407, 408, 0, 409, 410, 0, 0, 0, 411, ++ 412, 413, 414, 0, 0, 0, 415, 0, 0, 0, ++ 416, 0, 417, 418, 419, 420, 0, 421, 422, 423, ++ 424, 425, 426, 508, 0, 0, 0, 0, 0, 427, ++ 428, 0, 429, 0, 0, 430, 0, 0, 431, 432, ++ 433, 0, 0, 434, 435, 0, 436, 437, 438, 439, ++ 440, 441, 0, 0, 442, 443, 444, 445, 0, 446, ++ 447, 0, 448, 0, 449, 450, 451, 452, 0, 0, ++ 453, 454, 0, 455, 456, 457, 458, 0, 0, 0, ++ 0, 0, 459, 460, 461, 0, 0, 0, 462, 463, ++ 464, 465, 0, 466, 467, 0, 468, 469, 0, 470, ++ 471, 0, 0, 472, 0, 0, 473, 0, 474, 0, ++ 475, 476, 477, 0, 0, 0, 0, 0, 0, 478, ++ 0, 0, 479, 0, 0, 0, 480, 481, 482, 483, ++ 484, 485, 0, 0, 0, 0, 0, 0, 486, 487, ++ 0, 488, 489, 490, 0, 0, 491, 0, 0, 0, ++ 0, 0, 139, 0, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 2524, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 2333, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 0, 491, 0, 0, 0, 0, 0, 139, 0, 140, ++ 141, 142, 143, 144, 0, 0, 145, 2766, 0, 0, ++ 146, 0, 0, 147, 782, 148, 149, 150, 151, 152, ++ 153, 154, 0, 155, 0, 0, 0, 156, 0, 0, ++ 0, 157, 0, 0, 158, 159, 160, 0, 161, 0, ++ 162, 163, 0, 0, 164, 0, 0, 165, 166, 0, ++ 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, ++ 175, 176, 177, 0, 178, 179, 180, 181, 182, 183, ++ 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, ++ 193, 0, 194, 195, 0, 196, 197, 198, 199, 200, ++ 0, 201, 0, 0, 202, 0, 0, 203, 0, 0, ++ 0, 204, 0, 0, 0, 205, 206, 207, 0, 0, ++ 208, 0, 0, 0, 0, 209, 210, 0, 0, 0, ++ 0, 211, 0, 212, 0, 0, 0, 213, 0, 214, ++ 215, 216, 217, 0, 0, 0, 218, 0, 0, 219, ++ 220, 221, 0, 0, 0, 222, 0, 223, 224, 0, ++ 225, 226, 227, 0, 228, 229, 0, 230, 231, 232, ++ 233, 234, 235, 0, 0, 236, 237, 238, 0, 0, ++ 239, 240, 0, 241, 242, 243, 0, 0, 244, 0, ++ 0, 0, 245, 0, 246, 0, 247, 0, 248, 249, ++ 250, 251, 252, 253, 0, 254, 0, 0, 255, 256, ++ 257, 0, 258, 0, 0, 0, 259, 260, 0, 0, ++ 0, 261, 262, 263, 264, 0, 0, 265, 266, 267, ++ 0, 268, 0, 269, 0, 0, 0, 0, 270, 271, ++ 0, 0, 0, 272, 0, 273, 274, 0, 275, 276, ++ 0, 0, 0, 277, 0, 0, 278, 279, 280, 0, ++ 0, 281, 0, 0, 282, 283, 0, 0, 0, 0, ++ 0, 284, 285, 0, 286, 0, 287, 0, 288, 289, ++ 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, ++ 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, ++ 303, 304, 305, 0, 306, 307, 308, 309, 0, 310, ++ 311, 0, 0, 0, 0, 312, 313, 314, 315, 316, ++ 317, 0, 0, 318, 319, 0, 320, 0, 321, 0, ++ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, ++ 0, 0, 332, 333, 0, 0, 334, 335, 336, 337, ++ 0, 0, 0, 338, 339, 0, 0, 0, 0, 340, ++ 341, 342, 0, 343, 344, 345, 346, 0, 347, 348, ++ 0, 0, 0, 0, 0, 0, 0, 0, 349, 350, ++ 351, 0, 0, 352, 0, 353, 354, 355, 356, 357, ++ 358, 359, 360, 361, 362, 363, 364, 0, 0, 365, ++ 366, 367, 0, 368, 0, 369, 370, 371, 372, 373, ++ 0, 374, 375, 376, 0, 0, 377, 0, 0, 0, ++ 378, 379, 380, 381, 382, 0, 0, 383, 384, 385, ++ 386, 387, 0, 388, 389, 0, 390, 391, 392, 0, ++ 0, 393, 0, 394, 0, 395, 396, 0, 397, 398, ++ 0, 0, 0, 399, 400, 401, 402, 403, 404, 405, ++ 406, 407, 408, 0, 409, 410, 0, 0, 0, 411, ++ 412, 413, 414, 0, 0, 0, 415, 0, 0, 0, ++ 416, 0, 417, 418, 419, 420, 0, 421, 422, 423, ++ 424, 425, 426, 0, 0, 0, 0, 0, 0, 427, ++ 428, 0, 429, 0, 0, 430, 0, 0, 431, 432, ++ 433, 0, 0, 434, 435, 0, 436, 437, 438, 439, ++ 440, 441, 0, 0, 442, 443, 444, 445, 0, 446, ++ 447, 0, 448, 0, 449, 450, 451, 452, 0, 0, ++ 453, 454, 0, 455, 456, 457, 458, 0, 0, 0, ++ 0, 0, 459, 460, 461, 0, 0, 0, 462, 463, ++ 464, 465, 0, 466, 467, 0, 468, 469, 0, 470, ++ 471, 0, 0, 472, 0, 0, 473, 0, 474, 0, ++ 475, 476, 477, 0, 0, 0, 0, 0, 0, 478, ++ 0, 0, 479, 0, 0, 0, 480, 481, 482, 483, ++ 484, 485, 0, 0, 0, 0, 0, 0, 486, 487, ++ 0, 488, 489, 490, 0, 0, 491, 0, 0, 0, ++ 0, 0, 0, 0, 139, 0, 140, 141, 142, 143, ++ 144, 0, 4450, 145, 0, 0, 0, 146, 4451, 782, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 0, 491, 0, 0, 0, 0, 0, 0, ++ 0, 139, 0, 140, 141, 142, 143, 144, 1129, 0, ++ 145, 0, 0, 0, 146, 0, 782, 147, 0, 148, ++ 149, 150, 151, 152, 153, 154, 0, 155, 0, 0, ++ 0, 156, 0, 0, 0, 157, 0, 0, 158, 159, ++ 160, 0, 161, 0, 162, 163, 0, 0, 164, 0, ++ 0, 165, 166, 0, 167, 168, 0, 169, 170, 0, ++ 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, ++ 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, ++ 189, 190, 191, 192, 193, 0, 194, 195, 0, 196, ++ 197, 198, 199, 200, 0, 201, 0, 0, 202, 0, ++ 0, 203, 0, 0, 0, 204, 0, 0, 0, 205, ++ 206, 207, 0, 0, 208, 0, 0, 0, 0, 209, ++ 210, 0, 0, 0, 0, 211, 0, 212, 0, 0, ++ 0, 213, 0, 214, 215, 216, 217, 0, 0, 0, ++ 218, 0, 0, 219, 220, 221, 0, 0, 0, 222, ++ 0, 223, 224, 0, 225, 226, 227, 0, 228, 229, ++ 0, 230, 231, 232, 233, 234, 235, 0, 0, 236, ++ 237, 238, 0, 0, 239, 240, 0, 241, 242, 243, ++ 0, 0, 244, 0, 0, 0, 245, 0, 246, 0, ++ 247, 0, 248, 249, 250, 251, 252, 253, 0, 254, ++ 0, 0, 255, 256, 257, 0, 258, 0, 0, 0, ++ 259, 260, 0, 0, 0, 261, 262, 263, 264, 0, ++ 0, 265, 266, 267, 0, 268, 0, 269, 0, 0, ++ 0, 0, 270, 271, 0, 1334, 0, 272, 0, 273, ++ 274, 0, 275, 276, 0, 0, 0, 277, 0, 0, ++ 278, 279, 280, 0, 0, 281, 0, 0, 282, 283, ++ 0, 0, 0, 0, 0, 284, 285, 0, 286, 0, ++ 287, 0, 288, 289, 0, 0, 0, 0, 0, 0, ++ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, ++ 300, 301, 302, 0, 303, 304, 305, 0, 306, 307, ++ 308, 309, 0, 310, 311, 0, 0, 0, 0, 312, ++ 313, 314, 315, 316, 317, 0, 0, 318, 319, 0, ++ 320, 0, 321, 0, 322, 323, 324, 325, 326, 327, ++ 328, 329, 330, 331, 0, 0, 332, 333, 0, 0, ++ 334, 335, 336, 337, 0, 0, 0, 338, 339, 0, ++ 0, 0, 0, 340, 341, 342, 0, 343, 344, 345, ++ 346, 0, 347, 348, 0, 0, 0, 0, 0, 0, ++ 0, 0, 349, 350, 351, 0, 0, 352, 0, 353, ++ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, ++ 364, 0, 0, 365, 366, 367, 0, 368, 0, 369, ++ 370, 371, 372, 373, 0, 374, 375, 376, 0, 0, ++ 377, 0, 0, 0, 378, 379, 380, 381, 382, 0, ++ 0, 383, 384, 385, 386, 387, 0, 388, 389, 0, ++ 390, 391, 392, 0, 0, 393, 0, 394, 0, 395, ++ 396, 0, 397, 398, 0, 0, 0, 399, 400, 401, ++ 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, ++ 0, 0, 0, 411, 412, 413, 414, 0, 0, 0, ++ 415, 0, 0, 0, 416, 0, 417, 418, 419, 420, ++ 0, 421, 422, 423, 424, 425, 426, 0, 0, 0, ++ 0, 0, 0, 427, 428, 0, 429, 0, 0, 430, ++ 0, 0, 431, 432, 433, 0, 0, 434, 435, 0, ++ 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, ++ 444, 445, 0, 446, 447, 0, 448, 0, 449, 450, ++ 451, 452, 0, 0, 453, 454, 0, 455, 456, 457, ++ 458, 0, 0, 0, 0, 0, 459, 460, 461, 0, ++ 0, 0, 462, 463, 464, 465, 0, 466, 467, 0, ++ 468, 469, 0, 470, 471, 0, 0, 472, 0, 0, ++ 473, 0, 474, 0, 475, 476, 477, 0, 0, 0, ++ 0, 0, 0, 478, 0, 0, 479, 0, 0, 0, ++ 480, 481, 482, 483, 484, 485, 0, 0, 0, 0, ++ 0, 0, 486, 487, 0, 488, 489, 490, 0, 0, ++ 491, 0, 0, 0, 0, 0, 139, 0, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 539, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 0, 0, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 0, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 402, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 0, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 0, 491, 0, 0, 0, 0, ++ 0, 0, 0, 0, 139, 2280, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 539, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 0, 491, 0, 0, 0, 0, 0, 0, ++ 0, 139, 0, 140, 141, 142, 143, 144, 2523, 0, ++ 145, 0, 0, 0, 146, 0, 2524, 147, 0, 148, ++ 149, 150, 151, 152, 153, 154, 0, 155, 0, 0, ++ 0, 156, 0, 0, 0, 157, 0, 0, 158, 159, ++ 160, 0, 161, 0, 162, 163, 0, 0, 164, 0, ++ 0, 165, 166, 0, 167, 168, 0, 169, 170, 0, ++ 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, ++ 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, ++ 189, 190, 191, 192, 193, 0, 194, 195, 0, 196, ++ 197, 198, 199, 200, 0, 201, 0, 0, 202, 0, ++ 0, 203, 0, 0, 0, 204, 0, 0, 0, 205, ++ 206, 207, 0, 0, 208, 0, 0, 0, 0, 209, ++ 210, 0, 0, 0, 0, 211, 0, 212, 0, 0, ++ 0, 213, 0, 214, 215, 216, 217, 0, 0, 0, ++ 218, 0, 0, 219, 220, 221, 0, 0, 0, 222, ++ 0, 223, 224, 0, 225, 226, 227, 0, 228, 229, ++ 0, 230, 231, 232, 233, 234, 235, 0, 0, 236, ++ 237, 238, 0, 0, 239, 240, 0, 241, 242, 243, ++ 0, 0, 244, 0, 0, 0, 245, 0, 246, 0, ++ 247, 0, 248, 249, 250, 251, 252, 253, 0, 254, ++ 0, 0, 255, 256, 257, 0, 258, 0, 0, 0, ++ 259, 260, 0, 0, 0, 261, 262, 263, 264, 0, ++ 0, 265, 266, 267, 0, 268, 0, 269, 0, 0, ++ 0, 0, 270, 271, 0, 0, 0, 272, 0, 273, ++ 274, 0, 275, 276, 0, 0, 0, 277, 0, 0, ++ 278, 279, 280, 0, 0, 281, 0, 0, 282, 283, ++ 0, 0, 0, 0, 0, 284, 285, 0, 286, 0, ++ 287, 0, 288, 289, 0, 0, 0, 0, 0, 0, ++ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, ++ 300, 301, 302, 0, 303, 304, 305, 0, 306, 307, ++ 308, 309, 0, 310, 311, 0, 0, 0, 0, 312, ++ 313, 314, 315, 316, 317, 0, 0, 318, 319, 0, ++ 320, 0, 321, 0, 322, 323, 324, 325, 326, 327, ++ 328, 329, 330, 331, 0, 0, 332, 333, 0, 0, ++ 334, 335, 336, 337, 0, 0, 0, 338, 339, 0, ++ 0, 0, 0, 340, 341, 342, 0, 343, 344, 345, ++ 346, 0, 347, 348, 0, 0, 0, 0, 0, 0, ++ 0, 0, 349, 350, 351, 0, 0, 352, 0, 353, ++ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, ++ 364, 0, 0, 365, 366, 367, 0, 368, 0, 369, ++ 370, 371, 372, 373, 0, 374, 375, 376, 0, 0, ++ 377, 0, 0, 0, 378, 379, 380, 381, 382, 0, ++ 0, 383, 384, 385, 386, 387, 0, 388, 389, 0, ++ 390, 391, 392, 0, 0, 393, 0, 394, 0, 395, ++ 396, 0, 397, 398, 0, 0, 0, 399, 400, 401, ++ 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, ++ 0, 0, 0, 411, 412, 413, 414, 0, 0, 0, ++ 415, 0, 0, 0, 416, 0, 417, 418, 419, 420, ++ 0, 421, 422, 423, 424, 425, 426, 0, 0, 0, ++ 0, 0, 0, 427, 428, 0, 429, 0, 0, 430, ++ 0, 0, 431, 432, 433, 0, 0, 434, 435, 0, ++ 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, ++ 444, 445, 0, 446, 447, 0, 448, 0, 449, 450, ++ 451, 452, 0, 0, 453, 454, 0, 455, 456, 457, ++ 458, 0, 0, 0, 0, 0, 459, 460, 461, 0, ++ 0, 0, 462, 463, 464, 465, 0, 466, 467, 0, ++ 468, 469, 0, 470, 471, 0, 0, 472, 0, 0, ++ 473, 0, 474, 0, 475, 476, 477, 0, 0, 0, ++ 0, 0, 0, 478, 0, 0, 479, 0, 0, 0, ++ 480, 481, 482, 483, 484, 485, 0, 0, 0, 0, ++ 0, 0, 486, 487, 0, 488, 489, 490, 0, 0, ++ 491, 0, 0, 0, 0, 0, 0, 0, 139, 0, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 4451, 782, 147, 0, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 0, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 0, 491, 0, 0, ++ 0, 0, 0, 139, 0, 140, 141, 142, 143, 144, ++ 0, 0, 145, 0, 0, 0, 146, 0, 0, 147, ++ 539, 148, 149, 150, 151, 152, 153, 154, 0, 155, ++ 0, 0, 0, 156, 0, 0, 0, 157, 0, 0, ++ 158, 159, 160, 0, 161, 0, 162, 163, 0, 0, ++ 164, 0, 0, 165, 166, 0, 167, 168, 0, 169, ++ 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, ++ 178, 179, 180, 181, 182, 183, 184, 185, 0, 186, ++ 187, 188, 189, 190, 191, 192, 193, 0, 194, 195, ++ 0, 196, 197, 198, 199, 200, 0, 201, 0, 0, ++ 202, 0, 0, 203, 0, 0, 0, 204, 0, 0, ++ 0, 205, 206, 207, 0, 0, 208, 0, 0, 0, ++ 0, 209, 210, 0, 0, 0, 0, 211, 0, 212, ++ 0, 0, 0, 213, 0, 214, 215, 216, 217, 0, ++ 0, 0, 218, 0, 0, 219, 220, 221, 0, 0, ++ 0, 222, 0, 223, 224, 0, 225, 226, 227, 0, ++ 228, 229, 0, 230, 231, 232, 233, 234, 235, 0, ++ 0, 236, 606, 238, 0, 0, 239, 240, 0, 241, ++ 242, 243, 0, 0, 244, 0, 0, 0, 245, 0, ++ 246, 0, 247, 0, 248, 249, 250, 251, 252, 253, ++ 0, 254, 0, 0, 255, 256, 257, 0, 258, 0, ++ 0, 0, 259, 260, 0, 0, 0, 261, 262, 263, ++ 264, 0, 0, 265, 266, 267, 0, 268, 0, 269, ++ 0, 0, 0, 0, 270, 271, 0, 0, 0, 272, ++ 0, 273, 274, 0, 275, 276, 0, 0, 0, 277, ++ 0, 0, 278, 279, 280, 0, 0, 281, 0, 0, ++ 282, 283, 0, 0, 0, 0, 0, 284, 285, 0, ++ 286, 0, 287, 0, 288, 289, 0, 0, 0, 0, ++ 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, ++ 298, 299, 300, 301, 302, 0, 303, 304, 305, 0, ++ 306, 307, 308, 309, 0, 310, 311, 0, 0, 0, ++ 0, 312, 313, 314, 315, 316, 317, 0, 0, 318, ++ 319, 0, 320, 0, 321, 0, 322, 323, 324, 325, ++ 326, 327, 328, 329, 330, 331, 0, 0, 332, 333, ++ 0, 0, 334, 335, 336, 337, 0, 0, 0, 338, ++ 339, 0, 0, 0, 0, 340, 341, 342, 0, 343, ++ 344, 345, 346, 0, 347, 348, 0, 0, 0, 0, ++ 0, 0, 0, 0, 349, 350, 351, 0, 0, 352, ++ 0, 353, 354, 607, 356, 357, 358, 359, 360, 361, ++ 362, 363, 364, 0, 0, 365, 366, 367, 0, 368, ++ 0, 369, 370, 371, 372, 373, 0, 374, 375, 376, ++ 0, 0, 377, 0, 0, 0, 378, 379, 380, 381, ++ 382, 0, 0, 383, 384, 385, 386, 387, 0, 388, ++ 389, 0, 390, 391, 392, 0, 0, 393, 0, 394, ++ 0, 395, 396, 0, 397, 398, 0, 0, 0, 399, ++ 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, ++ 409, 410, 0, 0, 0, 411, 412, 413, 414, 0, ++ 0, 0, 415, 0, 0, 0, 416, 0, 417, 418, ++ 419, 420, 0, 421, 422, 423, 424, 425, 426, 0, ++ 0, 0, 0, 0, 0, 427, 428, 0, 429, 0, ++ 0, 430, 0, 0, 431, 432, 433, 0, 0, 434, ++ 435, 0, 436, 437, 438, 439, 440, 441, 0, 0, ++ 442, 443, 444, 445, 0, 446, 447, 0, 448, 0, ++ 449, 450, 451, 452, 0, 0, 453, 454, 0, 455, ++ 456, 457, 458, 0, 0, 0, 0, 0, 459, 460, ++ 461, 0, 0, 0, 462, 463, 464, 465, 0, 466, ++ 467, 0, 468, 469, 0, 470, 471, 0, 0, 472, ++ 0, 0, 473, 0, 474, 0, 475, 476, 477, 0, ++ 0, 0, 0, 0, 0, 478, 0, 0, 479, 0, ++ 0, 0, 480, 481, 482, 483, 484, 485, 0, 0, ++ 0, 0, 0, 0, 486, 487, 0, 488, 489, 490, ++ 0, 0, 491, 0, 0, 0, 0, 0, 139, 0, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 539, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 0, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 0, 491, 0, 0, ++ 0, 0, 0, 139, 0, 140, 141, 142, 143, 144, ++ 0, 0, 145, 0, 0, 0, 146, 0, 0, 147, ++ 782, 148, 149, 150, 151, 152, 153, 154, 0, 155, ++ 0, 0, 0, 156, 0, 0, 0, 157, 0, 0, ++ 158, 159, 160, 0, 161, 0, 162, 163, 0, 0, ++ 164, 0, 0, 165, 166, 0, 167, 168, 0, 169, ++ 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, ++ 178, 179, 180, 181, 182, 183, 184, 185, 0, 186, ++ 187, 188, 189, 190, 191, 192, 193, 0, 194, 195, ++ 0, 196, 197, 198, 199, 200, 0, 201, 0, 0, ++ 202, 0, 0, 203, 0, 0, 0, 204, 0, 0, ++ 0, 205, 206, 207, 0, 0, 208, 0, 0, 0, ++ 0, 209, 210, 0, 0, 0, 0, 211, 0, 212, ++ 0, 0, 0, 213, 0, 214, 215, 216, 217, 0, ++ 0, 0, 218, 0, 0, 219, 220, 221, 0, 0, ++ 0, 222, 0, 223, 224, 0, 225, 226, 227, 0, ++ 228, 229, 0, 230, 231, 232, 233, 234, 235, 0, ++ 0, 236, 237, 238, 0, 0, 239, 240, 0, 241, ++ 242, 243, 0, 0, 244, 0, 0, 0, 245, 0, ++ 246, 0, 247, 0, 248, 249, 250, 251, 252, 253, ++ 0, 254, 0, 0, 255, 256, 257, 0, 258, 0, ++ 0, 0, 259, 260, 0, 0, 0, 261, 262, 263, ++ 264, 0, 0, 265, 266, 267, 0, 268, 0, 269, ++ 0, 0, 0, 0, 270, 271, 0, 0, 0, 272, ++ 0, 273, 274, 0, 275, 276, 0, 0, 0, 277, ++ 0, 0, 278, 279, 280, 0, 0, 281, 0, 0, ++ 282, 283, 0, 0, 0, 0, 0, 284, 285, 0, ++ 286, 0, 287, 0, 288, 289, 0, 0, 0, 0, ++ 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, ++ 298, 299, 300, 301, 302, 0, 303, 304, 305, 0, ++ 306, 307, 308, 309, 0, 310, 311, 0, 0, 0, ++ 0, 312, 313, 314, 315, 316, 317, 0, 0, 318, ++ 319, 0, 320, 0, 321, 0, 322, 323, 324, 325, ++ 326, 327, 328, 329, 330, 331, 0, 0, 332, 333, ++ 0, 0, 334, 335, 336, 337, 0, 0, 0, 338, ++ 339, 0, 0, 0, 0, 340, 341, 342, 0, 343, ++ 344, 345, 346, 0, 347, 348, 0, 0, 0, 0, ++ 0, 0, 0, 0, 349, 350, 351, 0, 0, 352, ++ 0, 353, 354, 355, 356, 357, 358, 359, 360, 361, ++ 362, 363, 364, 0, 0, 365, 366, 367, 0, 368, ++ 0, 369, 370, 371, 372, 373, 0, 374, 375, 376, ++ 0, 0, 377, 0, 0, 0, 378, 379, 380, 381, ++ 382, 0, 0, 383, 384, 385, 386, 387, 0, 388, ++ 389, 0, 390, 391, 392, 0, 0, 393, 0, 394, ++ 0, 395, 396, 0, 397, 398, 0, 0, 0, 399, ++ 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, ++ 409, 410, 0, 0, 0, 411, 412, 413, 414, 0, ++ 0, 0, 415, 0, 0, 0, 416, 0, 417, 418, ++ 419, 420, 0, 421, 422, 423, 424, 425, 426, 0, ++ 0, 0, 0, 0, 0, 427, 428, 0, 429, 0, ++ 0, 430, 0, 0, 431, 432, 433, 0, 0, 434, ++ 435, 0, 436, 437, 438, 439, 440, 441, 0, 0, ++ 442, 443, 444, 445, 0, 446, 447, 0, 448, 0, ++ 449, 450, 451, 452, 0, 0, 453, 454, 0, 455, ++ 456, 457, 458, 0, 0, 0, 0, 0, 459, 460, ++ 461, 0, 0, 0, 462, 463, 464, 465, 0, 466, ++ 467, 0, 468, 469, 0, 470, 471, 0, 0, 472, ++ 0, 0, 473, 0, 474, 0, 475, 476, 477, 0, ++ 0, 0, 0, 0, 0, 478, 0, 0, 479, 0, ++ 0, 0, 480, 481, 482, 483, 484, 485, 0, 0, ++ 0, 0, 0, 0, 486, 487, 0, 488, 489, 490, ++ 0, 0, 491, 0, 0, 0, 0, 0, 139, 0, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 2524, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 618, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 136, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 0, 491, 0, 0, ++ 0, 0, 139, 0, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 1700, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 618, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 136, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 0, 491, 0, 0, 0, 0, 139, 0, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 2806, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 0, 0, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 618, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 0, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 402, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 136, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 0, 491, 0, 0, 0, 0, ++ 139, 0, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 0, 3464, 148, 149, ++ 150, 151, 152, 153, 0, 0, -329, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 0, 0, 0, 0, 164, 3902, 0, ++ 165, 166, 0, 167, 0, 0, 0, 0, 0, 171, ++ 172, 173, 174, 3903, 176, 177, 0, 178, 179, 0, ++ 0, 0, 0, 0, 0, 0, 186, 0, 188, 0, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 0, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 0, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 0, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 0, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 0, 0, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 3904, 241, 242, 243, 0, ++ 0, 0, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 0, 256, 257, 0, 0, 0, 0, 0, 0, ++ 260, 0, 0, 0, 261, 262, 263, 264, 3905, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 0, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 3906, 0, 0, 277, 0, 0, 0, ++ 279, 280, 0, 0, 281, 3907, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, -284, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 0, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 3908, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 350, 351, 0, 0, 0, 0, 353, 354, ++ 355, 0, 357, 358, 359, 360, 361, 362, 363, 0, ++ 0, 0, 0, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 0, 0, 390, ++ 0, 392, -284, 0, 393, 0, 0, 0, 395, 0, ++ 0, 397, 398, 3909, 0, 0, 0, 400, 401, 402, ++ 403, 404, 405, 0, 407, 408, 0, 409, 0, 0, ++ 0, 0, 411, 412, 413, 0, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 0, 418, 0, 420, 0, ++ 421, 0, 423, 0, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 0, 433, 0, 0, 0, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 0, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 0, 0, 0, 0, 472, 0, 0, 473, ++ 0, 0, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, -284, 0, 0, ++ 0, 486, 0, 0, 488, 0, 490, 0, 0, 491, ++ 0, 139, 0, 140, 141, 142, 143, 144, 0, 0, ++ 145, 0, 0, 0, 146, 0, 4457, 147, 0, 148, ++ 149, 150, 151, 152, 153, 154, 0, 155, 0, 0, ++ 0, 156, 0, 0, 0, 157, 0, 0, 158, 159, ++ 160, 0, 161, 0, 162, 163, 0, 0, 164, 0, ++ 0, 165, 166, 0, 167, 168, 0, 169, 170, 0, ++ 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, ++ 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, ++ 189, 190, 191, 192, 193, 0, 194, 195, 0, 196, ++ 197, 198, 199, 200, 0, 201, 0, 0, 202, 0, ++ 0, 203, 0, 995, 0, 204, 0, 0, 0, 205, ++ 206, 207, 0, 0, 208, 0, 0, 0, 0, 209, ++ 210, 0, 0, 0, 0, 211, 0, 212, 0, 0, ++ 0, 213, 0, 214, 215, 216, 217, 0, 0, 0, ++ 218, 0, 0, 219, 220, 221, 0, 0, 0, 222, ++ 0, 223, 224, 0, 225, 226, 227, 0, 228, 229, ++ 0, 230, 231, 232, 233, 234, 235, 0, 0, 236, ++ 237, 238, 0, 0, 239, 240, 0, 241, 242, 243, ++ 0, 0, 244, 0, 0, 0, 245, 0, 246, 0, ++ 247, 0, 248, 249, 250, 251, 252, 253, 0, 254, ++ 0, 0, 255, 256, 257, 0, 258, 0, 0, 0, ++ 259, 260, 0, 0, 0, 261, 262, 263, 264, 0, ++ 0, 265, 266, 267, 0, 268, 0, 269, 0, 0, ++ 0, 0, 270, 271, 0, 0, 0, 272, 0, 273, ++ 274, 0, 275, 276, 0, 0, 0, 277, 0, 0, ++ 278, 279, 280, 0, 0, 281, 0, 0, 282, 283, ++ 618, 0, 0, 0, 0, 284, 285, 0, 286, 0, ++ 287, 0, 288, 289, 0, 0, 0, 0, 0, 0, ++ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, ++ 300, 301, 302, 0, 303, 304, 305, 0, 306, 307, ++ 308, 309, 0, 310, 311, 0, 0, 0, 0, 312, ++ 313, 314, 315, 316, 317, 0, 0, 318, 319, 0, ++ 320, 0, 321, 0, 322, 323, 324, 325, 326, 327, ++ 328, 329, 330, 331, 0, 0, 332, 333, 0, 0, ++ 334, 335, 336, 337, 0, 0, 0, 338, 339, 0, ++ 0, 0, 0, 340, 341, 342, 0, 343, 344, 345, ++ 346, 0, 347, 348, 0, 0, 0, 0, 0, 0, ++ 0, 0, 349, 350, 351, 0, 0, 352, 0, 353, ++ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, ++ 364, 0, 0, 365, 366, 367, 0, 368, 0, 369, ++ 370, 371, 372, 373, 0, 374, 375, 376, 0, 0, ++ 377, 0, 0, 0, 378, 379, 380, 381, 382, 0, ++ 0, 383, 384, 385, 386, 387, 0, 388, 389, 0, ++ 390, 391, 392, 0, 0, 393, 0, 394, 0, 395, ++ 396, 0, 397, 398, 0, 0, 0, 399, 400, 401, ++ 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, ++ 0, 0, 0, 411, 412, 413, 414, 0, 0, 0, ++ 415, 0, 0, 0, 416, 0, 417, 418, 419, 420, ++ 0, 421, 422, 423, 424, 425, 426, 0, 0, 0, ++ 0, 0, 0, 427, 428, 0, 429, 0, 0, 430, ++ 0, 0, 431, 432, 433, 0, 0, 434, 435, 0, ++ 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, ++ 444, 445, 0, 446, 447, 0, 448, 0, 449, 450, ++ 451, 452, 0, 136, 453, 454, 0, 455, 456, 457, ++ 458, 0, 0, 0, 0, 0, 459, 460, 461, 0, ++ 0, 0, 462, 463, 464, 465, 0, 466, 467, 0, ++ 468, 469, 0, 470, 471, 0, 0, 472, 0, 0, ++ 473, 0, 474, 0, 475, 476, 477, 0, 0, 0, ++ 0, 0, 0, 478, 0, 0, 479, 0, 0, 0, ++ 480, 481, 482, 483, 484, 485, 0, 0, 0, 0, ++ 0, 0, 486, 487, 0, 488, 489, 490, 0, 0, ++ 491, 139, 0, 140, 141, 142, 143, 144, 0, 0, ++ 145, 0, 0, 0, 146, 1175, 0, 147, 0, 148, ++ 149, 150, 151, 152, 153, 154, 0, 155, 0, 0, ++ 0, 156, 0, 0, 0, 157, 0, 0, 158, 159, ++ 160, 0, 161, 0, 162, 163, 0, 0, 164, 0, ++ 0, 165, 166, 0, 167, 168, 0, 169, 170, 0, ++ 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, ++ 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, ++ 189, 190, 191, 192, 193, 0, 194, 195, 0, 196, ++ 197, 198, 199, 200, 0, 201, 0, 0, 202, 0, ++ 0, 203, 0, 0, 0, 204, 0, 0, 0, 205, ++ 206, 207, 0, 0, 208, 0, 0, 0, 0, 209, ++ 210, 0, 0, 0, 0, 211, 0, 212, 0, 0, ++ 0, 213, 0, 214, 215, 216, 217, 0, 0, 0, ++ 218, 0, 0, 219, 220, 221, 0, 0, 0, 222, ++ 0, 223, 224, 0, 225, 226, 227, 0, 228, 229, ++ 0, 230, 231, 232, 233, 234, 235, 0, 0, 236, ++ 237, 238, 0, 0, 239, 240, 0, 241, 242, 243, ++ 0, 0, 244, 0, 0, 0, 245, 0, 246, 0, ++ 247, 0, 248, 249, 250, 251, 252, 253, 0, 254, ++ 0, 0, 255, 256, 257, 0, 258, 0, 0, 0, ++ 259, 260, 0, 0, 0, 261, 262, 263, 264, 0, ++ 0, 265, 266, 267, 0, 268, 0, 269, 0, 0, ++ 0, 0, 270, 271, 0, 0, 0, 272, 0, 273, ++ 274, 0, 275, 276, 0, 0, 0, 277, 0, 0, ++ 278, 279, 280, 0, 0, 281, 0, 0, 282, 283, ++ 0, 0, 0, 0, 0, 284, 285, 0, 286, 0, ++ 287, 0, 288, 289, 0, 0, 0, 0, 0, 0, ++ 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, ++ 300, 301, 302, 0, 303, 304, 305, 0, 306, 307, ++ 308, 309, 0, 310, 311, 0, 0, 0, 0, 312, ++ 313, 314, 315, 316, 317, 0, 0, 318, 319, 0, ++ 320, 0, 321, 0, 322, 323, 324, 325, 326, 327, ++ 328, 329, 330, 331, 0, 0, 332, 333, 0, 0, ++ 334, 335, 336, 337, 0, 0, 0, 338, 339, 0, ++ 0, 0, 0, 340, 341, 342, 0, 343, 344, 345, ++ 346, 0, 347, 348, 0, 0, 0, 0, 0, 0, ++ 0, 0, 349, 350, 351, 0, 0, 352, 0, 353, ++ 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, ++ 364, 0, 0, 365, 366, 367, 0, 368, 0, 369, ++ 370, 371, 372, 373, 0, 374, 375, 376, 0, 0, ++ 377, 0, 0, 0, 378, 379, 380, 381, 382, 0, ++ 0, 383, 384, 385, 386, 387, 0, 388, 389, 0, ++ 390, 391, 392, 0, 0, 393, 0, 394, 0, 395, ++ 396, 0, 397, 398, 0, 0, 0, 399, 400, 401, ++ 402, 403, 404, 405, 406, 407, 408, 0, 409, 410, ++ 0, 0, 0, 411, 412, 413, 414, 0, 0, 0, ++ 415, 0, 0, 0, 416, 0, 417, 418, 419, 420, ++ 0, 421, 422, 423, 424, 425, 426, 0, 0, 0, ++ 0, 0, 0, 427, 428, 0, 429, 0, 0, 430, ++ 0, 0, 431, 432, 433, 0, 0, 434, 435, 0, ++ 436, 437, 438, 439, 440, 441, 0, 0, 442, 443, ++ 444, 445, 0, 446, 447, 0, 448, 0, 449, 450, ++ 451, 452, 0, 0, 453, 454, 0, 455, 456, 457, ++ 458, 0, 0, 0, 0, 0, 459, 460, 461, 0, ++ 0, 0, 462, 463, 464, 465, 0, 466, 467, 0, ++ 468, 469, 0, 470, 471, 0, 0, 472, 0, 0, ++ 473, 0, 474, 0, 475, 476, 477, 0, 0, 0, ++ 0, 0, 0, 478, 0, 0, 479, 0, 0, 0, ++ 480, 481, 482, 483, 484, 485, 0, 0, 0, 0, ++ 0, 0, 486, 487, 0, 488, 489, 490, 0, 139, ++ 491, 140, 141, 142, 143, 144, 0, 0, 145, 0, ++ 2112, 0, 146, 0, 0, 147, 0, 148, 149, 150, ++ 151, 152, 153, 154, 0, 155, 0, 0, 0, 156, ++ 0, 0, 0, 157, 0, 0, 158, 159, 160, 0, ++ 161, 0, 162, 163, 0, 0, 164, 0, 0, 165, ++ 166, 0, 167, 168, 0, 169, 170, 0, 171, 172, ++ 173, 174, 175, 176, 177, 0, 178, 179, 180, 181, ++ 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, ++ 191, 192, 193, 0, 194, 195, 0, 196, 197, 198, ++ 199, 200, 0, 201, 0, 0, 202, 0, 0, 203, ++ 0, 0, 0, 204, 0, 0, 0, 205, 206, 207, ++ 0, 0, 208, 0, 0, 0, 0, 209, 210, 0, ++ 0, 0, 0, 211, 0, 212, 0, 0, 0, 213, ++ 0, 214, 215, 216, 217, 0, 0, 0, 218, 0, ++ 0, 219, 220, 221, 0, 0, 0, 222, 0, 223, ++ 224, 0, 225, 226, 227, 0, 228, 229, 0, 230, ++ 231, 232, 233, 234, 235, 0, 0, 236, 237, 238, ++ 0, 0, 239, 240, 0, 241, 242, 243, 0, 0, ++ 244, 0, 0, 0, 245, 0, 246, 0, 247, 0, ++ 248, 249, 250, 251, 252, 253, 0, 254, 0, 0, ++ 255, 256, 257, 0, 258, 0, 0, 0, 259, 260, ++ 0, 0, 0, 261, 262, 263, 264, 0, 0, 265, ++ 266, 267, 0, 268, 0, 269, 0, 0, 0, 0, ++ 270, 271, 0, 0, 0, 272, 0, 273, 274, 0, ++ 275, 276, 0, 0, 0, 277, 0, 0, 278, 279, ++ 280, 0, 0, 281, 0, 0, 282, 283, 0, 0, ++ 0, 0, 0, 284, 285, 0, 286, 0, 287, 0, ++ 288, 289, 0, 0, 0, 0, 0, 0, 290, 291, ++ 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, ++ 302, 0, 303, 304, 305, 0, 306, 307, 308, 309, ++ 0, 310, 311, 0, 0, 0, 0, 312, 313, 314, ++ 315, 316, 317, 0, 0, 318, 319, 0, 320, 0, ++ 321, 0, 322, 323, 324, 325, 326, 327, 328, 329, ++ 330, 331, 0, 0, 332, 333, 0, 0, 334, 335, ++ 336, 337, 0, 0, 0, 338, 339, 0, 0, 0, ++ 0, 340, 341, 342, 0, 343, 344, 345, 346, 0, ++ 347, 348, 0, 0, 0, 0, 0, 0, 0, 0, ++ 349, 350, 351, 0, 0, 352, 0, 353, 354, 355, ++ 356, 357, 358, 359, 360, 361, 362, 363, 364, 0, ++ 0, 365, 366, 367, 0, 368, 0, 369, 370, 371, ++ 372, 373, 0, 374, 375, 376, 0, 0, 377, 0, ++ 0, 0, 378, 379, 380, 381, 382, 0, 0, 383, ++ 384, 385, 386, 387, 0, 388, 389, 0, 390, 391, ++ 392, 0, 0, 393, 0, 394, 0, 395, 396, 0, ++ 397, 398, 0, 0, 0, 399, 400, 401, 402, 403, ++ 404, 405, 406, 407, 408, 0, 409, 410, 0, 0, ++ 0, 411, 412, 413, 414, 0, 0, 0, 415, 0, ++ 0, 0, 416, 0, 417, 418, 419, 420, 0, 421, ++ 422, 423, 424, 425, 426, 0, 0, 0, 0, 0, ++ 0, 427, 428, 0, 429, 0, 0, 430, 0, 0, ++ 431, 432, 433, 0, 0, 434, 435, 0, 436, 437, ++ 438, 439, 440, 441, 0, 0, 442, 443, 444, 445, ++ 0, 446, 447, 0, 448, 0, 449, 450, 451, 452, ++ 0, 0, 453, 454, 0, 455, 456, 457, 458, 0, ++ 0, 0, 0, 0, 459, 460, 461, 0, 0, 0, ++ 462, 463, 464, 465, 0, 466, 467, 0, 468, 469, ++ 0, 470, 471, 0, 0, 472, 0, 0, 473, 0, ++ 474, 0, 475, 476, 477, 0, 0, 0, 0, 0, ++ 0, 478, 0, 0, 479, 0, 0, 0, 480, 481, ++ 482, 483, 484, 485, 0, 0, 0, 0, 0, 0, ++ 486, 487, 0, 488, 489, 490, 0, 139, 491, 140, ++ 141, 142, 143, 144, 0, 0, 145, 0, 2794, 0, ++ 146, 0, 0, 147, 0, 148, 149, 150, 151, 152, ++ 153, 154, 0, 155, 0, 0, 0, 156, 0, 0, ++ 0, 157, 0, 0, 158, 159, 160, 0, 161, 0, ++ 162, 163, 0, 0, 164, 0, 0, 165, 166, 0, ++ 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, ++ 175, 176, 177, 0, 178, 179, 180, 181, 182, 183, ++ 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, ++ 193, 0, 194, 195, 0, 196, 197, 198, 199, 200, ++ 0, 201, 0, 0, 202, 0, 0, 203, 0, 0, ++ 0, 204, 0, 0, 0, 205, 206, 207, 0, 0, ++ 208, 0, 0, 0, 0, 209, 210, 0, 0, 0, ++ 0, 211, 0, 212, 0, 0, 0, 213, 0, 214, ++ 215, 216, 217, 0, 0, 0, 218, 0, 0, 219, ++ 220, 221, 0, 0, 0, 222, 0, 223, 224, 0, ++ 225, 226, 227, 0, 228, 229, 0, 230, 231, 232, ++ 233, 234, 235, 0, 0, 236, 237, 238, 0, 0, ++ 239, 240, 0, 241, 242, 243, 0, 0, 244, 0, ++ 0, 0, 245, 0, 246, 0, 247, 0, 248, 249, ++ 250, 251, 252, 253, 0, 254, 0, 0, 255, 256, ++ 257, 0, 258, 0, 0, 0, 259, 260, 0, 0, ++ 0, 261, 262, 263, 264, 0, 0, 265, 266, 267, ++ 0, 268, 0, 269, 0, 0, 0, 0, 270, 271, ++ 0, 0, 0, 272, 0, 273, 274, 0, 275, 276, ++ 0, 0, 0, 277, 0, 0, 278, 279, 280, 0, ++ 0, 281, 0, 0, 282, 283, 0, 0, 0, 0, ++ 0, 284, 285, 0, 286, 0, 287, 0, 288, 289, ++ 0, 0, 0, 0, 0, 0, 290, 291, 292, 293, ++ 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, ++ 303, 304, 305, 0, 306, 307, 308, 309, 0, 310, ++ 311, 0, 0, 0, 0, 312, 313, 314, 315, 316, ++ 317, 0, 0, 318, 319, 0, 320, 0, 321, 0, ++ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, ++ 0, 0, 332, 333, 0, 0, 334, 335, 336, 337, ++ 0, 0, 0, 338, 339, 0, 0, 0, 0, 340, ++ 341, 342, 0, 343, 344, 345, 346, 0, 347, 348, ++ 0, 0, 0, 0, 0, 0, 0, 0, 349, 350, ++ 351, 0, 0, 352, 0, 353, 354, 355, 356, 357, ++ 358, 359, 360, 361, 362, 363, 364, 0, 0, 365, ++ 366, 367, 0, 368, 0, 369, 370, 371, 372, 373, ++ 0, 374, 375, 376, 0, 0, 377, 0, 0, 0, ++ 378, 379, 380, 381, 382, 0, 0, 383, 384, 385, ++ 386, 387, 0, 388, 389, 0, 390, 391, 392, 0, ++ 0, 393, 0, 394, 0, 395, 396, 0, 397, 398, ++ 0, 0, 0, 399, 400, 401, 402, 403, 404, 405, ++ 406, 407, 408, 0, 409, 410, 0, 0, 0, 411, ++ 412, 413, 414, 0, 0, 0, 415, 0, 0, 0, ++ 416, 0, 417, 418, 419, 420, 0, 421, 422, 423, ++ 424, 425, 426, 0, 0, 0, 0, 0, 0, 427, ++ 428, 0, 429, 0, 0, 430, 0, 0, 431, 432, ++ 433, 0, 0, 434, 435, 0, 436, 437, 438, 439, ++ 440, 441, 0, 0, 442, 443, 444, 445, 0, 446, ++ 447, 0, 448, 0, 449, 450, 451, 452, 0, 0, ++ 453, 454, 0, 455, 456, 457, 458, 0, 0, 0, ++ 0, 0, 459, 460, 461, 0, 0, 0, 462, 463, ++ 464, 465, 0, 466, 467, 0, 468, 469, 0, 470, ++ 471, 0, 0, 472, 0, 0, 473, 0, 474, 0, ++ 475, 476, 477, 0, 0, 0, 0, 0, 0, 478, ++ 0, 0, 479, 0, 0, 0, 480, 481, 482, 483, ++ 484, 485, 0, 0, 0, 0, 0, 0, 486, 487, ++ 0, 488, 489, 490, 0, 139, 491, 140, 141, 142, ++ 143, 144, 0, 0, 145, 0, 3124, 0, 146, 0, ++ 0, 147, 0, 148, 149, 150, 151, 152, 153, 154, ++ 0, 155, 0, 0, 0, 156, 0, 0, 0, 157, ++ 0, 0, 158, 159, 160, 0, 161, 0, 162, 163, ++ 0, 0, 164, 0, 0, 165, 166, 0, 167, 168, ++ 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, ++ 177, 0, 178, 179, 180, 181, 182, 183, 184, 185, ++ 0, 186, 187, 188, 189, 190, 191, 192, 193, 0, ++ 194, 195, 0, 196, 197, 198, 199, 200, 0, 201, ++ 0, 0, 202, 0, 0, 203, 0, 0, 0, 204, ++ 0, 0, 0, 205, 206, 207, 0, 0, 208, 0, ++ 0, 0, 0, 209, 210, 0, 0, 0, 0, 211, ++ 0, 212, 0, 0, 0, 213, 0, 214, 215, 216, ++ 217, 0, 0, 0, 218, 0, 0, 219, 220, 221, ++ 0, 0, 0, 222, 0, 223, 224, 0, 225, 226, ++ 227, 0, 228, 229, 0, 230, 231, 232, 233, 234, ++ 235, 0, 0, 236, 237, 238, 0, 0, 239, 240, ++ 0, 241, 242, 243, 0, 0, 244, 0, 0, 0, ++ 245, 0, 246, 0, 247, 0, 248, 249, 250, 251, ++ 252, 253, 0, 254, 0, 0, 255, 256, 257, 0, ++ 258, 0, 0, 0, 259, 260, 0, 0, 0, 261, ++ 262, 263, 264, 0, 0, 265, 266, 267, 0, 268, ++ 0, 269, 0, 0, 0, 0, 270, 271, 0, 0, ++ 0, 272, 0, 273, 274, 0, 275, 276, 0, 0, ++ 0, 277, 0, 0, 278, 279, 280, 0, 0, 281, ++ 0, 0, 282, 283, 0, 0, 0, 0, 0, 284, ++ 285, 0, 286, 0, 287, 0, 288, 289, 0, 0, ++ 0, 0, 0, 0, 290, 291, 292, 293, 294, 295, ++ 296, 297, 298, 299, 300, 301, 302, 0, 303, 304, ++ 305, 0, 306, 307, 308, 309, 0, 310, 311, 0, ++ 0, 0, 0, 312, 313, 314, 315, 316, 317, 0, ++ 0, 318, 319, 0, 320, 0, 321, 0, 322, 323, ++ 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, ++ 332, 333, 0, 0, 334, 335, 336, 337, 0, 0, ++ 0, 338, 339, 0, 0, 0, 0, 340, 341, 342, ++ 0, 343, 344, 345, 346, 0, 347, 348, 0, 0, ++ 0, 0, 0, 0, 0, 0, 349, 350, 351, 0, ++ 0, 352, 0, 353, 354, 355, 356, 357, 358, 359, ++ 360, 361, 362, 363, 364, 0, 0, 365, 366, 367, ++ 0, 368, 0, 369, 370, 371, 372, 373, 0, 374, ++ 375, 376, 0, 0, 377, 0, 0, 0, 378, 379, ++ 380, 381, 382, 0, 0, 383, 384, 385, 386, 387, ++ 0, 388, 389, 0, 390, 391, 392, 0, 0, 393, ++ 0, 394, 0, 395, 396, 0, 397, 398, 0, 0, ++ 0, 399, 400, 401, 402, 403, 404, 405, 406, 407, ++ 408, 0, 409, 410, 0, 0, 0, 411, 412, 413, ++ 414, 0, 0, 0, 415, 0, 0, 0, 416, 0, ++ 417, 418, 419, 420, 0, 421, 422, 423, 424, 425, ++ 426, 0, 0, 0, 0, 0, 0, 427, 428, 0, ++ 429, 0, 0, 430, 0, 0, 431, 432, 433, 0, ++ 0, 434, 435, 0, 436, 437, 438, 439, 440, 441, ++ 0, 0, 442, 443, 444, 445, 0, 446, 447, 0, ++ 448, 0, 449, 450, 451, 452, 0, 0, 453, 454, ++ 0, 455, 456, 457, 458, 0, 0, 0, 0, 0, ++ 459, 460, 461, 0, 0, 0, 462, 463, 464, 465, ++ 0, 466, 467, 0, 468, 469, 0, 470, 471, 0, ++ 0, 472, 0, 0, 473, 0, 474, 0, 475, 476, ++ 477, 0, 0, 0, 0, 0, 0, 478, 0, 0, ++ 479, 0, 0, 0, 480, 481, 482, 483, 484, 485, ++ 0, 0, 0, 0, 0, 0, 486, 487, 0, 488, ++ 489, 490, 0, 139, 491, 140, 141, 142, 143, 144, ++ 0, 0, 145, 0, 3469, 0, 146, 0, 0, 147, ++ 0, 148, 149, 150, 151, 152, 153, 154, 0, 155, ++ 0, 0, 2636, 156, 0, 0, 0, 157, 0, 0, ++ 158, 159, 160, 0, 161, 0, 162, 163, 0, 0, ++ 164, 0, 0, 165, 166, 0, 167, 168, 0, 169, ++ 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, ++ 178, 179, 180, 181, 182, 183, 184, 185, 0, 186, ++ 187, 188, 189, 190, 191, 192, 193, 0, 194, 195, ++ 0, 196, 197, 198, 199, 200, 0, 201, 0, 0, ++ 202, 0, 0, 203, 0, 0, 0, 204, 0, 0, ++ 0, 205, 206, 207, 0, 0, 208, 0, 0, 0, ++ 0, 209, 210, 0, 0, 0, 2800, 211, 0, 212, ++ 0, 0, 0, 213, 0, 214, 215, 216, 217, 0, ++ 0, 0, 218, 0, 0, 219, 220, 221, 0, 0, ++ 0, 222, 0, 223, 224, 0, 225, 226, 227, 0, ++ 228, 229, 0, 230, 231, 232, 233, 234, 235, 0, ++ 0, 236, 237, 238, 0, 0, 239, 240, 0, 241, ++ 242, 243, 0, 0, 244, 0, 0, 0, 245, 0, ++ 246, 0, 247, 0, 248, 249, 250, 251, 252, 253, ++ 0, 254, 0, 0, 255, 256, 257, 0, 258, 0, ++ 0, 0, 259, 260, 0, 0, 0, 261, 262, 263, ++ 264, 0, 0, 265, 266, 267, 0, 268, 0, 269, ++ 0, 0, 0, 0, 270, 271, 0, 0, 0, 272, ++ 0, 273, 274, 0, 275, 276, 0, 0, 0, 277, ++ 0, 0, 278, 279, 280, 0, 0, 281, 0, 0, ++ 282, 283, 618, 0, 0, 0, 0, 284, 285, 0, ++ 286, 0, 287, 0, 288, 289, 0, 0, 0, 0, ++ 0, 0, 290, 291, 292, 293, 294, 295, 296, 297, ++ 298, 299, 300, 301, 302, 0, 303, 304, 305, 0, ++ 306, 307, 308, 309, 0, 310, 311, 0, 0, 0, ++ 0, 312, 313, 314, 315, 316, 317, 0, 0, 318, ++ 319, 0, 320, 0, 321, 0, 322, 323, 324, 325, ++ 326, 327, 328, 329, 330, 331, 0, 0, 332, 333, ++ 0, 0, 334, 335, 336, 337, 0, 0, 0, 338, ++ 339, 0, 0, 0, 0, 340, 341, 342, 0, 343, ++ 344, 345, 346, 0, 347, 348, 0, 0, 0, 0, ++ 0, 0, 0, 0, 349, 350, 351, 0, 0, 352, ++ 0, 353, 354, 355, 356, 357, 358, 359, 360, 361, ++ 362, 363, 364, 0, 0, 365, 366, 367, 0, 368, ++ 0, 369, 370, 371, 372, 373, 0, 374, 375, 376, ++ 0, 0, 377, 0, 0, 0, 378, 379, 380, 381, ++ 382, 0, 0, 383, 384, 385, 386, 387, 0, 388, ++ 389, 0, 390, 391, 392, 0, 0, 393, 0, 394, ++ 0, 395, 396, 0, 397, 398, 0, 0, 0, 399, ++ 400, 401, 402, 403, 404, 405, 406, 407, 408, 0, ++ 409, 410, 0, 0, 0, 411, 412, 413, 414, 0, ++ 0, 2262, 415, 0, 0, 0, 416, 0, 417, 418, ++ 419, 420, 0, 421, 422, 423, 424, 425, 426, 0, ++ 0, 0, 0, 0, 0, 427, 428, 0, 429, 0, ++ 0, 430, 0, 0, 431, 432, 433, 0, 0, 434, ++ 435, 0, 436, 437, 438, 439, 440, 441, 0, 0, ++ 442, 443, 444, 445, 0, 446, 447, 0, 448, 0, ++ 449, 450, 451, 452, 0, 136, 453, 454, 0, 455, ++ 456, 457, 458, 0, 0, 0, 0, 0, 459, 460, ++ 461, 0, 0, 0, 462, 463, 464, 465, 0, 466, ++ 467, 0, 468, 469, 0, 470, 471, 0, 0, 472, ++ 0, 0, 473, 0, 474, 0, 475, 476, 477, 0, ++ 0, 0, 0, 0, 0, 478, 0, 0, 479, 0, ++ 0, 0, 480, 481, 482, 483, 484, 485, 0, 0, ++ 0, 0, 0, 0, 486, 487, 0, 488, 489, 490, ++ 0, 0, 491, 0, 139, 2263, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 2436, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 2437, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 2438, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 2439, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 1038, 1039, 0, ++ 338, 339, 0, 0, 2440, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 4437, 564, 4438, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 2441, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 1588, 0, 0, 2965, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 1589, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 2860, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 2861, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 2862, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 136, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 2863, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 147, 0, 148, 149, ++ 150, 151, 152, 153, 154, 0, 155, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 0, 0, ++ 165, 166, 0, 167, 168, 0, 169, 170, 0, 171, ++ 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, ++ 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 199, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 210, ++ 1588, 0, 0, 3896, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 0, 241, 242, 243, 1589, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 255, 256, 257, 0, 258, 2860, 0, 0, 259, ++ 260, 0, 0, 0, 261, 262, 263, 264, 0, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 271, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 280, 0, 0, 281, 0, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 2861, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 338, 339, 0, 0, ++ 2862, 0, 340, 341, 342, 0, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 0, 352, 0, 353, 354, ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, ++ 0, 0, 365, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 0, 0, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 0, 399, 400, 401, 402, ++ 403, 404, 405, 406, 407, 408, 0, 409, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 0, 0, 434, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 136, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 462, 463, 464, 465, 2863, 466, 467, 0, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 0, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 1588, 0, ++ 0, 4180, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 1589, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 2860, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 2861, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 2862, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 136, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 2863, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 0, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 972, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 973, 974, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 0, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 402, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 975, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 1865, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 1866, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 739, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 1867, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 1868, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 2808, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 2809, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 618, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 136, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 147, 0, 148, 149, ++ 150, 151, 152, 153, 154, 0, 155, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 0, 0, ++ 165, 166, 0, 167, 168, 0, 169, 170, 0, 171, ++ 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, ++ 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 199, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 210, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 0, 241, 242, 243, 0, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 255, 256, 257, 0, 258, 0, 0, 0, 259, ++ 260, 0, 0, 0, 261, 262, 263, 264, 0, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 271, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 280, 0, 0, 281, 0, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 1865, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 338, 339, 0, 0, ++ 1866, 0, 340, 341, 342, 0, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 739, 352, 0, 353, 354, ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, ++ 0, 0, 365, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 0, 0, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 0, 399, 400, 401, 402, ++ 403, 404, 405, 406, 407, 408, 0, 409, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 0, 0, 434, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 462, 463, 464, 465, 1868, 466, 467, 0, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 0, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 2636, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 2800, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 618, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 136, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 0, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 0, 0, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 1865, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 1866, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 739, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 3618, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 0, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 1868, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 995, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 618, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 136, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 1387, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 618, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 136, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 147, 0, 148, 149, ++ 150, 151, 152, 153, 154, 0, 155, 0, 0, 2636, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 0, 0, ++ 165, 166, 0, 167, 168, 0, 169, 170, 0, 171, ++ 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, ++ 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 199, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 210, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 0, 241, 242, 243, 0, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 255, 256, 257, 0, 258, 0, 0, 0, 259, ++ 260, 0, 0, 0, 261, 262, 263, 264, 0, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 271, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 280, 0, 0, 281, 0, 0, 282, 283, 618, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 338, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 0, 352, 0, 353, 354, ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, ++ 0, 0, 365, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 0, 0, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 0, 399, 400, 401, 402, ++ 403, 404, 405, 406, 407, 408, 0, 409, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 0, 0, 434, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 136, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 462, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 0, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 2851, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 618, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 136, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 0, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 0, 0, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 618, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 0, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 402, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 136, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 2790, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 136, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 4352, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 4353, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 147, 0, 148, 149, ++ 150, 151, 152, 153, 154, 0, 155, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 0, 0, ++ 165, 166, 0, 167, 168, 0, 169, 170, 0, 171, ++ 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, ++ 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 199, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 210, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 0, 241, 242, 243, 0, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 255, 256, 257, 0, 258, 0, 0, 0, 259, ++ 260, 0, 0, 0, 261, 262, 263, 264, 0, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 271, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 280, 0, 0, 281, 0, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 338, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 0, 352, 0, 353, 354, ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, ++ 0, 0, 365, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 0, 0, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 0, 399, 400, 401, 402, ++ 403, 404, 405, 406, 407, 408, 0, 409, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 564, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 0, 0, 434, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 462, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 0, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 1074, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 0, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 0, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 2031, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 0, 0, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 0, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 402, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 0, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 2367, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 2368, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 2894, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 242, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 147, 0, 148, 149, ++ 150, 151, 152, 153, 154, 0, 155, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 162, 163, 0, 0, 164, 0, 0, ++ 165, 166, 0, 167, 168, 0, 169, 170, 0, 171, ++ 172, 173, 174, 175, 176, 177, 0, 178, 179, 180, ++ 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 199, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 210, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 218, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 223, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 234, 235, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 0, 241, 242, 243, 0, ++ 0, 244, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 255, 256, 257, 0, 258, 0, 0, 0, 259, ++ 260, 0, 0, 0, 261, 262, 263, 264, 0, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 271, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 278, ++ 279, 280, 0, 0, 281, 0, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 338, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 346, ++ 0, 347, 348, 0, 0, 0, 0, 0, 0, 0, ++ 0, 349, 350, 351, 0, 0, 352, 0, 353, 354, ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, ++ 0, 0, 365, 366, 367, 2981, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 389, 0, 390, ++ 391, 392, 0, 0, 393, 0, 394, 0, 395, 396, ++ 0, 397, 398, 0, 0, 0, 399, 400, 401, 402, ++ 403, 404, 405, 406, 407, 408, 0, 409, 410, 0, ++ 0, 0, 411, 412, 413, 414, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 417, 418, 419, 420, 0, ++ 421, 422, 423, 424, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 432, 433, 0, 0, 434, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 462, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 470, 471, 0, 0, 472, 0, 0, 473, ++ 0, 474, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, ++ 0, 486, 487, 0, 488, 489, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 147, 0, 148, 149, 150, 151, ++ 152, 153, 154, 0, 155, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 162, 163, 0, 0, 164, 0, 0, 165, 166, ++ 0, 167, 168, 0, 169, 170, 0, 171, 172, 173, ++ 174, 175, 176, 177, 0, 178, 179, 180, 181, 182, ++ 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 199, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 210, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 218, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 223, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 234, 235, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 0, 241, 242, 243, 0, 0, 244, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 255, ++ 256, 257, 0, 258, 0, 0, 0, 259, 260, 0, ++ 0, 0, 261, 262, 263, 264, 0, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 271, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 0, 0, 0, 277, 0, 0, 278, 279, 280, ++ 0, 0, 281, 0, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, 0, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 338, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 346, 0, 347, ++ 348, 0, 0, 0, 0, 0, 0, 0, 0, 349, ++ 350, 351, 0, 0, 352, 0, 353, 354, 355, 356, ++ 357, 358, 359, 360, 361, 362, 363, 364, 0, 0, ++ 365, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 389, 0, 390, 391, 392, ++ 0, 0, 393, 0, 394, 0, 395, 396, 0, 397, ++ 398, 0, 0, 0, 399, 400, 401, 402, 403, 404, ++ 405, 406, 407, 408, 0, 409, 410, 0, 0, 0, ++ 411, 412, 413, 414, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 417, 418, 419, 420, 0, 421, 422, ++ 423, 424, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 432, 433, 0, 0, 434, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 136, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 462, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 470, 471, 0, 0, 472, 0, 0, 473, 0, 474, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, 0, 0, 0, 0, 486, ++ 487, 0, 488, 489, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 147, 0, 148, 149, 150, 151, 152, 153, ++ 154, 0, 155, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 162, ++ 163, 0, 0, 164, 0, 0, 165, 166, 0, 167, ++ 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, ++ 176, 177, 0, 178, 179, 180, 181, 182, 183, 184, ++ 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 199, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 210, 0, 0, 0, 2367, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 218, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, 223, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 234, 235, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 0, 241, 242, 243, 0, 0, 244, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 255, 256, 257, ++ 0, 258, 0, 0, 0, 259, 260, 0, 0, 0, ++ 261, 262, 263, 264, 0, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 271, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 0, ++ 0, 0, 277, 0, 0, 278, 279, 280, 0, 0, ++ 281, 0, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, 0, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 338, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 346, 0, 347, 348, 0, ++ 0, 0, 0, 0, 0, 0, 0, 349, 350, 351, ++ 0, 0, 352, 0, 353, 354, 355, 356, 357, 358, ++ 359, 360, 361, 362, 363, 364, 0, 0, 365, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 389, 0, 390, 391, 392, 0, 0, ++ 393, 0, 394, 0, 395, 396, 0, 397, 398, 0, ++ 0, 0, 399, 400, 401, 402, 403, 404, 405, 406, ++ 407, 408, 0, 409, 410, 0, 0, 0, 411, 412, ++ 413, 414, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 417, 418, 419, 420, 0, 421, 422, 423, 424, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 432, 433, ++ 0, 0, 434, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 0, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 462, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 470, 471, ++ 0, 0, 472, 0, 0, 473, 0, 474, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, 0, 0, 0, 0, 486, 487, 0, ++ 488, 489, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 147, 0, 148, 149, 150, 151, 152, 153, 154, 0, ++ 155, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 162, 163, 0, ++ 0, 164, 0, 0, 165, 166, 0, 167, 168, 0, ++ 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, ++ 0, 178, 179, 180, 181, 182, 183, 184, 185, 0, ++ 186, 187, 188, 189, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 199, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 210, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 218, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 223, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 234, 235, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 0, ++ 241, 242, 243, 0, 0, 244, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 255, 256, 257, 0, 258, ++ 0, 0, 0, 259, 260, 0, 0, 0, 261, 262, ++ 263, 264, 0, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 271, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 0, 0, 0, ++ 277, 0, 0, 278, 279, 280, 0, 0, 281, 0, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, 0, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 338, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 346, 0, 347, 348, 0, 0, 0, ++ 0, 0, 0, 0, 0, 349, 350, 351, 0, 0, ++ 352, 0, 353, 354, 355, 356, 357, 358, 359, 360, ++ 361, 362, 363, 364, 0, 0, 365, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 389, 0, 390, 391, 392, 0, 0, 393, 0, ++ 394, 0, 395, 396, 0, 397, 398, 0, 0, 0, ++ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, ++ 0, 409, 410, 0, 0, 0, 411, 412, 413, 414, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 417, ++ 418, 419, 420, 0, 421, 422, 423, 424, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 432, 433, 0, 0, ++ 434, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 462, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 470, 471, 0, 0, ++ 472, 0, 0, 473, 0, 474, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, 0, 0, 0, 0, 486, 487, 0, 488, 489, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 147, 0, ++ 148, 149, 150, 151, 152, 153, 154, 0, 155, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 162, 163, 0, 0, 164, ++ 0, 0, 165, 166, 0, 167, 168, 0, 169, 170, ++ 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, ++ 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, ++ 188, 189, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 199, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 210, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 218, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 223, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 234, 235, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 0, 241, 1781, ++ 243, 0, 0, 244, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 255, 256, 257, 0, 258, 0, 0, ++ 0, 259, 260, 0, 0, 0, 261, 262, 263, 264, ++ 0, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 271, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 0, 0, 0, 277, 0, ++ 0, 278, 279, 280, 0, 0, 281, 0, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, 0, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 1782, 336, 337, 0, 0, 0, 338, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 346, 0, 347, 348, 0, 0, 0, 0, 0, ++ 0, 0, 0, 349, 350, 351, 0, 0, 352, 0, ++ 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, ++ 363, 364, 0, 0, 365, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 389, ++ 0, 390, 391, 392, 0, 0, 393, 0, 394, 0, ++ 395, 396, 0, 397, 398, 0, 0, 0, 399, 400, ++ 401, 402, 403, 404, 405, 406, 407, 408, 0, 409, ++ 410, 0, 0, 0, 411, 412, 413, 414, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 417, 418, 419, ++ 420, 0, 421, 422, 423, 424, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 432, 433, 0, 0, 434, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 462, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 470, 471, 0, 0, 472, 0, ++ 0, 473, 0, 474, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, 0, ++ 0, 0, 0, 486, 487, 0, 488, 489, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 0, 0, 148, 149, ++ 150, 151, 152, 153, 0, 0, -329, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 0, 0, 0, 0, 164, 3902, 0, ++ 165, 166, 0, 167, 0, 0, 0, 0, 0, 171, ++ 172, 173, 174, 3903, 176, 177, 0, 178, 179, 0, ++ 0, 0, 0, 0, 0, 0, 186, 0, 188, 0, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 0, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 0, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 0, ++ 0, 0, 219, 220, 221, 0, -299, -299, 222, 0, ++ -299, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 0, 0, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 3904, 241, 242, 243, 0, ++ 0, 0, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 0, 256, 257, 0, 0, 0, 0, 0, 0, ++ 260, 0, 0, 0, 261, 262, 263, 264, 3905, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 0, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 3906, 0, 0, 277, 0, 0, 0, ++ 279, 280, 0, 0, 281, 3907, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, -284, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 0, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 3908, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 350, 351, 0, 0, 0, 0, 353, 354, ++ 355, 0, 357, 358, 359, 360, 361, 362, 363, 0, ++ 0, 0, 0, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 0, 0, 390, ++ 0, 392, -284, 0, 393, 0, 0, 0, 395, 0, ++ 0, 397, 398, 3909, 0, 0, 0, 400, 401, 402, ++ 403, 404, 405, 0, 407, 408, 0, 409, 0, 0, ++ 0, 0, 411, 412, 413, 0, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 0, 418, 0, 420, 0, ++ 421, 0, 423, 0, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 0, 433, 0, 0, 0, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 0, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 0, 0, 0, 0, 472, 0, 0, 473, ++ 0, 0, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, -284, 0, 0, ++ 0, 486, 0, 0, 488, 0, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 0, 0, 148, 149, 150, 151, ++ 152, 153, 0, 0, -329, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 0, 0, 0, 0, 164, 3902, 0, 165, 166, ++ 0, 167, 0, 0, 0, 0, 0, 171, 172, 173, ++ 174, 3903, 176, 177, 0, 178, 179, 0, 0, 0, ++ 0, 0, 0, 0, 186, 0, 188, 0, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 0, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 0, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 0, 0, 0, ++ 219, 220, 221, 0, -320, 0, 222, 0, -320, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 0, 0, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 3904, 241, 242, 243, 0, 0, 0, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 0, ++ 256, 257, 0, 0, 0, 0, 0, 0, 260, 0, ++ 0, 0, 261, 262, 263, 264, 3905, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 0, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 3906, 0, 0, 277, 0, 0, 0, 279, 280, ++ 0, 0, 281, 3907, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, -284, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 0, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 3908, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 350, 351, 0, 0, 0, 0, 353, 354, 355, 0, ++ 357, 358, 359, 360, 361, 362, 363, 0, 0, 0, ++ 0, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 0, 0, 390, 0, 392, ++ -284, 0, 393, 0, 0, 0, 395, 0, 0, 397, ++ 398, 3909, 0, 0, 0, 400, 401, 402, 403, 404, ++ 405, 0, 407, 408, 0, 409, 0, 0, 0, 0, ++ 411, 412, 413, 0, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 0, 418, 0, 420, 0, 421, 0, ++ 423, 0, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 0, 433, 0, 0, 0, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 0, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 0, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 0, 0, 0, 0, 472, 0, 0, 473, 0, 0, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, -320, 0, -284, 0, 0, 0, 486, ++ 0, 0, 488, 0, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, ++ 0, 0, -329, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 0, ++ 0, 0, 0, 164, 3902, 0, 165, 166, 0, 167, ++ 0, 0, 0, 0, 0, 171, 172, 173, 174, 3903, ++ 176, 177, 0, 178, 179, 0, 0, 0, 0, 0, ++ 0, 0, 186, 0, 188, 0, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 0, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 0, 0, 0, 219, 220, ++ 221, 0, -317, 0, 222, 0, -317, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 0, 0, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 3904, 241, 242, 243, 0, 0, 0, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 0, 256, 257, ++ 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, ++ 261, 262, 263, 264, 3905, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 0, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 3906, ++ 0, 0, 277, 0, 0, 0, 279, 280, 0, 0, ++ 281, 3907, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, -284, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 0, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 3908, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 350, 351, ++ 0, 0, 0, 0, 353, 354, 355, 0, 357, 358, ++ 359, 360, 361, 362, 363, 0, 0, 0, 0, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 0, 0, 390, 0, 392, -284, 0, ++ 393, 0, 0, 0, 395, 0, 0, 397, 398, 3909, ++ 0, 0, 0, 400, 401, 402, 403, 404, 405, 0, ++ 407, 408, 0, 409, 0, 0, 0, 0, 411, 412, ++ 413, 0, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 0, 418, 0, 420, 0, 421, 0, 423, 0, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 0, 433, ++ 0, 0, 0, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 0, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 0, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 0, 0, ++ 0, 0, 472, 0, 0, 473, 0, 0, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, -317, 0, -284, 0, 0, 0, 486, 0, 0, ++ 488, 0, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 0, 0, 148, 149, 150, 151, 152, 153, 0, 0, ++ -329, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 0, 0, 0, ++ 0, 164, 3902, 0, 165, 166, 0, 167, 0, 0, ++ 0, 0, 0, 171, 172, 173, 174, 3903, 176, 177, ++ 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, ++ 186, 0, 188, 0, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 0, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 0, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 0, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 4242, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 0, 0, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 3904, ++ 241, 242, 243, 0, 0, 0, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 0, 256, 257, 0, 0, ++ 0, 0, 0, 0, 260, 0, 0, 0, 261, 262, ++ 263, 264, 3905, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 0, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 3906, 0, 0, ++ 277, 0, 0, 0, 279, 280, 0, 0, 281, 3907, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, -284, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 0, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 3908, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 350, 351, 0, 0, ++ 0, 0, 353, 354, 355, 0, 357, 358, 359, 360, ++ 361, 362, 363, 0, 0, 0, 0, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 0, 0, 390, 0, 392, -284, 0, 393, 0, ++ 0, 0, 395, 0, 0, 397, 398, 3909, 0, 0, ++ 0, 400, 401, 402, 403, 404, 405, 0, 407, 408, ++ 0, 409, 0, 0, 0, 0, 411, 412, 413, 0, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 0, ++ 418, 0, 420, 0, 421, 0, 423, 0, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 0, 433, 0, 0, ++ 0, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 0, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 0, 0, 0, 0, ++ 472, 0, 0, 473, 0, 0, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, -284, 0, 0, 0, 486, 0, 0, 488, 0, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 0, 0, ++ 148, 149, 150, 151, 152, 153, 0, 0, -329, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 0, 0, 0, 0, 164, ++ 3902, 0, 165, 166, 0, 167, 0, 0, 0, 0, ++ 0, 171, 172, 173, 174, 3903, 176, 177, 0, 178, ++ 179, 0, 0, 0, 0, 0, 0, 0, 186, 0, ++ 188, 0, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 0, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 0, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 0, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, -322, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 0, 0, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 3904, 241, 242, ++ 243, 0, 0, 0, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 0, 256, 257, 0, 0, 0, 0, ++ 0, 0, 260, 0, 0, 0, 261, 262, 263, 264, ++ 3905, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 0, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 3906, 0, 0, 277, 0, ++ 0, 0, 279, 280, 0, 0, 281, 3907, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, -284, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 0, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 3908, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 350, 351, 0, 0, 0, 0, ++ 353, 354, 355, 0, 357, 358, 359, 360, 361, 362, ++ 363, 0, 0, 0, 0, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 0, ++ 0, 390, 0, 392, -284, 0, 393, 0, 0, 0, ++ 395, 0, 0, 397, 398, 3909, 0, 0, 0, 400, ++ 401, 402, 403, 404, 405, 0, 407, 408, 0, 409, ++ 0, 0, 0, 0, 411, 412, 413, 0, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 0, 418, 0, ++ 420, 0, 421, 0, 423, 0, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 0, 433, 0, 0, 0, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 0, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 0, 0, 0, 0, 472, 0, ++ 0, 473, 0, 0, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, -284, ++ 0, 0, 0, 486, 0, 0, 488, 0, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 0, 0, 148, 149, ++ 150, 151, 152, 153, 0, 0, -329, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 0, 0, 0, 0, 164, 3902, 0, ++ 165, 166, 0, 167, 0, 0, 0, 0, 0, 171, ++ 172, 173, 174, 3903, 176, 177, 0, 178, 179, 0, ++ 0, 0, 0, 0, 0, 0, 186, 0, 188, 0, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 0, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 0, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 0, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 4357, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 0, 0, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 3904, 241, 242, 243, 0, ++ 0, 0, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 0, 256, 257, 0, 0, 0, 0, 0, 0, ++ 260, 0, 0, 0, 261, 262, 263, 264, 3905, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 0, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 3906, 0, 0, 277, 0, 0, 0, ++ 279, 280, 0, 0, 281, 3907, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, -284, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 0, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 3908, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 350, 351, 0, 0, 0, 0, 353, 354, ++ 355, 0, 357, 358, 359, 360, 361, 362, 363, 0, ++ 0, 0, 0, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 0, 0, 390, ++ 0, 392, -284, 0, 393, 0, 0, 0, 395, 0, ++ 0, 397, 398, 3909, 0, 0, 0, 400, 401, 402, ++ 403, 404, 405, 0, 407, 408, 0, 409, 0, 0, ++ 0, 0, 411, 412, 413, 0, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 0, 418, 0, 420, 0, ++ 421, 0, 423, 0, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 0, 433, 0, 0, 0, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 0, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 0, 0, 0, 0, 472, 0, 0, 473, ++ 0, 0, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, -284, 0, 0, ++ 0, 486, 0, 0, 488, 0, 490, 0, 139, 491, ++ 140, 141, 142, 143, 144, 0, 0, 145, 0, 0, ++ 0, 146, 0, 0, 0, 0, 148, 149, 150, 151, ++ 152, 153, 0, 0, -329, 0, 0, 0, 156, 0, ++ 0, 0, 157, 0, 0, 158, 159, 160, 0, 161, ++ 0, 0, 0, 0, 0, 164, 3902, 0, 165, 166, ++ 0, 167, 0, 0, 0, 0, 0, 171, 172, 173, ++ 174, 3903, 176, 177, 0, 178, 179, 0, 0, 0, ++ 0, 0, 0, 0, 186, 0, 188, 0, 190, 191, ++ 192, 193, 0, 194, 195, 0, 196, 197, 198, 0, ++ 200, 0, 201, 0, 0, 202, 0, 0, 203, 0, ++ 0, 0, 204, 0, 0, 0, 205, 206, 207, 0, ++ 0, 208, 0, 0, 0, 0, 209, 0, 0, 0, ++ 0, 0, 211, 0, 212, 0, 0, 0, 213, 0, ++ 214, 215, 216, 217, 0, 0, 0, 0, 0, 0, ++ 219, 220, 221, 0, 0, 0, 222, 0, 4406, 224, ++ 0, 225, 226, 227, 0, 228, 229, 0, 230, 231, ++ 232, 233, 0, 0, 0, 0, 236, 237, 238, 0, ++ 0, 239, 240, 3904, 241, 242, 243, 0, 0, 0, ++ 0, 0, 0, 245, 0, 246, 0, 247, 0, 248, ++ 249, 250, 251, 252, 253, 0, 254, 0, 0, 0, ++ 256, 257, 0, 0, 0, 0, 0, 0, 260, 0, ++ 0, 0, 261, 262, 263, 264, 3905, 0, 265, 266, ++ 267, 0, 268, 0, 269, 0, 0, 0, 0, 270, ++ 0, 0, 0, 0, 272, 0, 273, 274, 0, 275, ++ 276, 3906, 0, 0, 277, 0, 0, 0, 279, 280, ++ 0, 0, 281, 3907, 0, 282, 283, 0, 0, 0, ++ 0, 0, 284, 285, 0, 286, 0, 287, 0, 288, ++ 289, 0, 0, 0, 0, -284, 0, 290, 291, 292, ++ 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, ++ 0, 303, 304, 305, 0, 306, 307, 308, 309, 0, ++ 310, 311, 0, 0, 0, 0, 312, 313, 314, 315, ++ 316, 317, 0, 0, 318, 319, 0, 320, 0, 321, ++ 0, 322, 323, 324, 325, 326, 327, 328, 329, 330, ++ 331, 0, 0, 332, 333, 0, 0, 334, 335, 336, ++ 337, 0, 0, 0, 0, 339, 0, 0, 0, 0, ++ 340, 341, 342, 0, 343, 344, 345, 3908, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 350, 351, 0, 0, 0, 0, 353, 354, 355, 0, ++ 357, 358, 359, 360, 361, 362, 363, 0, 0, 0, ++ 0, 366, 367, 0, 368, 0, 369, 370, 371, 372, ++ 373, 0, 374, 375, 376, 0, 0, 377, 0, 0, ++ 0, 378, 379, 380, 381, 382, 0, 0, 383, 384, ++ 385, 386, 387, 0, 388, 0, 0, 390, 0, 392, ++ -284, 0, 393, 0, 0, 0, 395, 0, 0, 397, ++ 398, 3909, 0, 0, 0, 400, 401, 402, 403, 404, ++ 405, 0, 407, 408, 0, 409, 0, 0, 0, 0, ++ 411, 412, 413, 0, 0, 0, 0, 415, 0, 0, ++ 0, 416, 0, 0, 418, 0, 420, 0, 421, 0, ++ 423, 0, 425, 426, 0, 0, 0, 0, 0, 0, ++ 427, 428, 0, 429, 0, 0, 430, 0, 0, 431, ++ 0, 433, 0, 0, 0, 435, 0, 436, 437, 438, ++ 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, ++ 446, 447, 0, 448, 0, 449, 450, 451, 452, 0, ++ 0, 453, 454, 0, 455, 456, 457, 458, 0, 0, ++ 0, 0, 0, 459, 460, 461, 0, 0, 0, 0, ++ 463, 464, 465, 0, 466, 467, 0, 468, 469, 0, ++ 0, 0, 0, 0, 472, 0, 0, 473, 0, 0, ++ 0, 475, 476, 477, 0, 0, 0, 0, 0, 0, ++ 478, 0, 0, 479, 0, 0, 0, 480, 481, 482, ++ 483, 484, 485, 0, 0, -284, 0, 0, 0, 486, ++ 0, 0, 488, 0, 490, 0, 139, 491, 140, 141, ++ 142, 143, 144, 0, 0, 145, 0, 0, 0, 146, ++ 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, ++ 0, 0, -329, 0, 0, 0, 156, 0, 0, 0, ++ 157, 0, 0, 158, 159, 160, 0, 161, 0, 0, ++ 0, 0, 0, 164, 3902, 0, 165, 166, 0, 167, ++ 0, 0, 0, 0, 0, 171, 172, 173, 174, 3903, ++ 176, 177, 0, 178, 179, 0, 0, 0, 0, 0, ++ 0, 0, 186, 0, 188, 0, 190, 191, 192, 193, ++ 0, 194, 195, 0, 196, 197, 198, 0, 200, 0, ++ 201, 0, 0, 202, 0, 0, 203, 0, 0, 0, ++ 204, 0, 0, 0, 205, 206, 207, 0, 0, 208, ++ 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, ++ 211, 0, 212, 0, 0, 0, 213, 0, 214, 215, ++ 216, 217, 0, 0, 0, 0, 0, 0, 219, 220, ++ 221, 0, 0, 0, 222, 0, -303, 224, 0, 225, ++ 226, 227, 0, 228, 229, 0, 230, 231, 232, 233, ++ 0, 0, 0, 0, 236, 237, 238, 0, 0, 239, ++ 240, 3904, 241, 242, 243, 0, 0, 0, 0, 0, ++ 0, 245, 0, 246, 0, 247, 0, 248, 249, 250, ++ 251, 252, 253, 0, 254, 0, 0, 0, 256, 257, ++ 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, ++ 261, 262, 263, 264, 3905, 0, 265, 266, 267, 0, ++ 268, 0, 269, 0, 0, 0, 0, 270, 0, 0, ++ 0, 0, 272, 0, 273, 274, 0, 275, 276, 3906, ++ 0, 0, 277, 0, 0, 0, 279, 280, 0, 0, ++ 281, 3907, 0, 282, 283, 0, 0, 0, 0, 0, ++ 284, 285, 0, 286, 0, 287, 0, 288, 289, 0, ++ 0, 0, 0, -284, 0, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 299, 300, 301, 302, 0, 303, ++ 304, 305, 0, 306, 307, 308, 309, 0, 310, 311, ++ 0, 0, 0, 0, 312, 313, 314, 315, 316, 317, ++ 0, 0, 318, 319, 0, 320, 0, 321, 0, 322, ++ 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, ++ 0, 332, 333, 0, 0, 334, 335, 336, 337, 0, ++ 0, 0, 0, 339, 0, 0, 0, 0, 340, 341, ++ 342, 0, 343, 344, 345, 3908, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 350, 351, ++ 0, 0, 0, 0, 353, 354, 355, 0, 357, 358, ++ 359, 360, 361, 362, 363, 0, 0, 0, 0, 366, ++ 367, 0, 368, 0, 369, 370, 371, 372, 373, 0, ++ 374, 375, 376, 0, 0, 377, 0, 0, 0, 378, ++ 379, 380, 381, 382, 0, 0, 383, 384, 385, 386, ++ 387, 0, 388, 0, 0, 390, 0, 392, -284, 0, ++ 393, 0, 0, 0, 395, 0, 0, 397, 398, 3909, ++ 0, 0, 0, 400, 401, 402, 403, 404, 405, 0, ++ 407, 408, 0, 409, 0, 0, 0, 0, 411, 412, ++ 413, 0, 0, 0, 0, 415, 0, 0, 0, 416, ++ 0, 0, 418, 0, 420, 0, 421, 0, 423, 0, ++ 425, 426, 0, 0, 0, 0, 0, 0, 427, 428, ++ 0, 429, 0, 0, 430, 0, 0, 431, 0, 433, ++ 0, 0, 0, 435, 0, 436, 437, 438, 439, 440, ++ 441, 0, 0, 442, 443, 444, 445, 0, 446, 447, ++ 0, 448, 0, 449, 450, 451, 452, 0, 0, 453, ++ 454, 0, 455, 456, 457, 458, 0, 0, 0, 0, ++ 0, 459, 460, 461, 0, 0, 0, 0, 463, 464, ++ 465, 0, 466, 467, 0, 468, 469, 0, 0, 0, ++ 0, 0, 472, 0, 0, 473, 0, 0, 0, 475, ++ 476, 477, 0, 0, 0, 0, 0, 0, 478, 0, ++ 0, 479, 0, 0, 0, 480, 481, 482, 483, 484, ++ 485, 0, 0, -284, 0, 0, 0, 486, 0, 0, ++ 488, 0, 490, 0, 139, 491, 140, 141, 142, 143, ++ 144, 0, 0, 145, 0, 0, 0, 146, 0, 0, ++ 0, 0, 148, 149, 150, 151, 152, 153, 0, 0, ++ -329, 0, 0, 0, 156, 0, 0, 0, 157, 0, ++ 0, 158, 159, 160, 0, 161, 0, 0, 0, 0, ++ 0, 164, 3902, 0, 165, 166, 0, 167, 0, 0, ++ 0, 0, 0, 171, 172, 173, 174, 3903, 176, 177, ++ 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, ++ 186, 0, 188, 0, 190, 191, 192, 193, 0, 194, ++ 195, 0, 196, 197, 198, 0, 200, 0, 201, 0, ++ 0, 202, 0, 0, 203, 0, 0, 0, 204, 0, ++ 0, 0, 205, 206, 207, 0, 0, 208, 0, 0, ++ 0, 0, 209, 0, 0, 0, 0, 0, 211, 0, ++ 212, 0, 0, 0, 213, 0, 214, 215, 216, 217, ++ 0, 0, 0, 0, 0, 0, 219, 220, 221, 0, ++ 0, 0, 222, 0, 0, 224, 0, 225, 226, 227, ++ 0, 228, 229, 0, 230, 231, 232, 233, 0, 0, ++ 0, 0, 236, 237, 238, 0, 0, 239, 240, 3904, ++ 241, 242, 243, 0, 0, 0, 0, 0, 0, 245, ++ 0, 246, 0, 247, 0, 248, 249, 250, 251, 252, ++ 253, 0, 254, 0, 0, 0, 256, 257, 0, 0, ++ 0, 0, 0, 0, 260, 0, 0, 0, 261, 262, ++ 263, 264, 3905, 0, 265, 266, 267, 0, 268, 0, ++ 269, 0, 0, 0, 0, 270, 0, 0, 0, 0, ++ 272, 0, 273, 274, 0, 275, 276, 3906, 0, 0, ++ 277, 0, 0, 0, 279, 280, 0, 0, 281, 3907, ++ 0, 282, 283, 0, 0, 0, 0, 0, 284, 285, ++ 0, 286, 0, 287, 0, 288, 289, 0, 0, 0, ++ 0, -284, 0, 290, 291, 292, 293, 294, 295, 296, ++ 297, 298, 299, 300, 301, 302, 0, 303, 304, 305, ++ 0, 306, 307, 308, 309, 0, 310, 311, 0, 0, ++ 0, 0, 312, 313, 314, 315, 316, 317, 0, 0, ++ 318, 319, 0, 320, 0, 321, 0, 322, 323, 324, ++ 325, 326, 327, 328, 329, 330, 331, 0, 0, 332, ++ 333, 0, 0, 334, 335, 336, 337, 0, 0, 0, ++ 0, 339, 0, 0, 0, 0, 340, 341, 342, 0, ++ 343, 344, 345, 3908, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 350, 351, 0, 0, ++ 0, 0, 353, 354, 355, 0, 357, 358, 359, 360, ++ 361, 362, 363, 0, 0, 0, 0, 366, 367, 0, ++ 368, 0, 369, 370, 371, 372, 373, 0, 374, 375, ++ 376, 0, 0, 377, 0, 0, 0, 378, 379, 380, ++ 381, 382, 0, 0, 383, 384, 385, 386, 387, 0, ++ 388, 0, 0, 390, 0, 392, -284, 0, 393, 0, ++ 0, 0, 395, 0, 0, 397, 398, 3909, 0, 0, ++ 0, 400, 401, 402, 403, 404, 405, 0, 407, 408, ++ 0, 409, 0, 0, 0, 0, 411, 412, 413, 0, ++ 0, 0, 0, 415, 0, 0, 0, 416, 0, 0, ++ 418, 0, 420, 0, 421, 0, 423, 0, 425, 426, ++ 0, 0, 0, 0, 0, 0, 427, 428, 0, 429, ++ 0, 0, 430, 0, 0, 431, 0, 433, 0, 0, ++ 0, 435, 0, 436, 437, 438, 439, 440, 441, 0, ++ 0, 442, 443, 444, 445, 0, 446, 447, 0, 448, ++ 0, 449, 450, 451, 452, 0, 0, 453, 454, 0, ++ 455, 456, 457, 458, 0, 0, 0, 0, 0, 459, ++ 460, 461, 0, 0, 0, 0, 463, 464, 465, 0, ++ 466, 467, 0, 468, 469, 0, 0, 0, 0, 0, ++ 472, 0, 0, 473, 0, 0, 0, 475, 476, 477, ++ 0, 0, 0, 0, 0, 0, 478, 0, 0, 479, ++ 0, 0, 0, 480, 481, 482, 483, 484, 485, 0, ++ 0, -284, 0, 0, 0, 486, 0, 0, 488, 0, ++ 490, 0, 139, 491, 140, 141, 142, 143, 144, 0, ++ 0, 145, 0, 0, 0, 146, 0, 0, 0, 0, ++ 148, 149, 150, 151, 152, 153, 0, 0, -329, 0, ++ 0, 0, 156, 0, 0, 0, 157, 0, 0, 158, ++ 159, 160, 0, 161, 0, 0, 0, 0, 0, 164, ++ 3902, 0, 165, 166, 0, 167, 0, 0, 0, 0, ++ 0, 171, 172, 173, 174, 3903, 176, 177, 0, 178, ++ 179, 0, 0, 0, 0, 0, 0, 0, 186, 0, ++ 188, 0, 190, 191, 192, 193, 0, 194, 195, 0, ++ 196, 197, 198, 0, 200, 0, 201, 0, 0, 202, ++ 0, 0, 203, 0, 0, 0, 204, 0, 0, 0, ++ 205, 206, 207, 0, 0, 208, 0, 0, 0, 0, ++ 209, 0, 0, 0, 0, 0, 211, 0, 212, 0, ++ 0, 0, 213, 0, 214, 215, 216, 217, 0, 0, ++ 0, 0, 0, 0, 219, 220, 221, 0, 0, 0, ++ 222, 0, 0, 224, 0, 225, 226, 227, 0, 228, ++ 229, 0, 230, 231, 232, 233, 0, 0, 0, 0, ++ 236, 237, 238, 0, 0, 239, 240, 3904, 241, 242, ++ 243, 0, 0, 0, 0, 0, 0, 245, 0, 246, ++ 0, 247, 0, 248, 249, 250, 251, 252, 253, 0, ++ 254, 0, 0, 0, 256, 257, 0, 0, 0, 0, ++ 0, 0, 260, 0, 0, 0, 261, 262, 263, 264, ++ 3905, 0, 265, 266, 267, 0, 268, 0, 269, 0, ++ 0, 0, 0, 270, 0, 0, 0, 0, 272, 0, ++ 273, 274, 0, 275, 276, 3906, 0, 0, 277, 0, ++ 0, 0, 279, 280, 0, 0, 281, 3907, 0, 282, ++ 283, 0, 0, 0, 0, 0, 284, 285, 0, 286, ++ 0, 287, 0, 288, 289, 0, 0, 0, 0, -284, ++ 0, 290, 291, 292, 293, 294, 295, 296, 297, 298, ++ 299, 300, 301, 302, 0, 303, 304, 305, 0, 306, ++ 307, 308, 309, 0, 310, 311, 0, 0, 0, 0, ++ 312, 313, 314, 315, 316, 317, 0, 0, 318, 319, ++ 0, 320, 0, 321, 0, 322, 323, 324, 325, 326, ++ 327, 328, 329, 330, 331, 0, 0, 332, 333, 0, ++ 0, 334, 335, 336, 337, 0, 0, 0, 0, 339, ++ 0, 0, 0, 0, 340, 341, 342, 0, 343, 344, ++ 345, 3908, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 350, 351, 0, 0, 0, 0, ++ 353, 354, 355, 0, 357, 358, 359, 360, 361, 362, ++ 363, 0, 0, 0, 0, 366, 367, 0, 368, 0, ++ 369, 370, 371, 372, 373, 0, 374, 375, 376, 0, ++ 0, 377, 0, 0, 0, 378, 379, 380, 381, 382, ++ 0, 0, 383, 384, 385, 386, 387, 0, 388, 0, ++ 0, 390, 0, 392, -284, 0, 393, 0, 0, 0, ++ 395, 0, 0, 397, 398, 3909, 0, 0, 0, 400, ++ 401, 402, 403, 404, 405, 0, 407, 408, 0, 409, ++ 0, 0, 0, 0, 411, 412, 413, 0, 0, 0, ++ 0, 415, 0, 0, 0, 416, 0, 0, 418, 0, ++ 420, 0, 421, 0, 423, 0, 425, 426, 0, 0, ++ 0, 0, 0, 0, 427, 428, 0, 429, 0, 0, ++ 430, 0, 0, 431, 0, 433, 0, 0, 0, 435, ++ 0, 436, 437, 438, 439, 440, 441, 0, 0, 442, ++ 443, 444, 445, 0, 446, 447, 0, 448, 0, 449, ++ 450, 451, 452, 0, 0, 453, 454, 0, 455, 456, ++ 457, 458, 0, 0, 0, 0, 0, 459, 460, 461, ++ 0, 0, 0, 0, 463, 464, 465, 0, 466, 467, ++ 0, 468, 469, 0, 0, 0, 0, 0, 472, 0, ++ 0, 4245, 0, 0, 0, 475, 476, 477, 0, 0, ++ 0, 0, 0, 0, 478, 0, 0, 479, 0, 0, ++ 0, 480, 481, 482, 483, 484, 485, 0, 0, -284, ++ 0, 0, 0, 486, 0, 0, 488, 0, 490, 0, ++ 139, 491, 140, 141, 142, 143, 144, 0, 0, 145, ++ 0, 0, 0, 146, 0, 0, 0, 0, 148, 149, ++ 150, 151, 152, 153, 0, 0, 0, 0, 0, 0, ++ 156, 0, 0, 0, 157, 0, 0, 158, 159, 160, ++ 0, 161, 0, 0, 0, 0, 0, 164, 0, 0, ++ 165, 166, 0, 167, 0, 0, 0, 0, 0, 171, ++ 172, 173, 174, 0, 176, 177, 0, 178, 179, 0, ++ 0, 0, 0, 0, 0, 0, 186, 0, 188, 0, ++ 190, 191, 192, 193, 0, 194, 195, 0, 196, 197, ++ 198, 0, 200, 0, 201, 0, 0, 202, 0, 0, ++ 203, 0, 0, 0, 204, 0, 0, 0, 205, 206, ++ 207, 0, 0, 208, 0, 0, 0, 0, 209, 0, ++ 0, 0, 0, 0, 211, 0, 212, 0, 0, 0, ++ 213, 0, 214, 215, 216, 217, 0, 0, 0, 0, ++ 0, 0, 219, 220, 221, 0, 0, 0, 222, 0, ++ 0, 224, 0, 225, 226, 227, 0, 228, 229, 0, ++ 230, 231, 232, 233, 0, 0, 0, 0, 236, 237, ++ 238, 0, 0, 239, 240, 0, 241, 242, 243, 0, ++ 0, 0, 0, 0, 0, 245, 0, 246, 0, 247, ++ 0, 248, 249, 250, 251, 252, 253, 0, 254, 0, ++ 0, 0, 256, 257, 0, 0, 0, 0, 0, 0, ++ 260, 0, 0, 0, 261, 262, 263, 264, 0, 0, ++ 265, 266, 267, 0, 268, 0, 269, 0, 0, 0, ++ 0, 270, 0, 0, 0, 0, 272, 0, 273, 274, ++ 0, 275, 276, 0, 0, 0, 277, 0, 0, 0, ++ 279, 280, 0, 0, 281, 0, 0, 282, 283, 0, ++ 0, 0, 0, 0, 284, 285, 0, 286, 0, 287, ++ 0, 288, 289, 0, 0, 0, 0, 0, 0, 290, ++ 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, ++ 301, 302, 0, 303, 304, 305, 0, 306, 307, 308, ++ 309, 0, 310, 311, 0, 0, 0, 0, 312, 313, ++ 314, 315, 316, 317, 0, 0, 318, 319, 0, 320, ++ 0, 321, 0, 322, 323, 324, 325, 326, 327, 328, ++ 329, 330, 331, 0, 0, 332, 333, 0, 0, 334, ++ 335, 336, 337, 0, 0, 0, 0, 339, 0, 0, ++ 0, 0, 340, 341, 342, 0, 343, 344, 345, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 350, 351, 0, 0, 0, 0, 353, 354, ++ 355, 0, 357, 358, 359, 360, 361, 362, 363, 0, ++ 0, 0, 0, 366, 367, 0, 368, 0, 369, 370, ++ 371, 372, 373, 0, 374, 375, 376, 0, 0, 377, ++ 0, 0, 0, 378, 379, 380, 381, 382, 0, 0, ++ 383, 384, 385, 386, 387, 0, 388, 0, 0, 390, ++ 0, 392, 0, 0, 393, 0, 0, 0, 395, 0, ++ 0, 397, 398, 0, 0, 0, 0, 400, 401, 402, ++ 403, 404, 405, 0, 407, 408, 0, 409, 0, 0, ++ 0, 0, 411, 412, 413, 0, 0, 0, 0, 415, ++ 0, 0, 0, 416, 0, 0, 418, 0, 420, 0, ++ 421, 0, 423, 0, 425, 426, 0, 0, 0, 0, ++ 0, 0, 427, 428, 0, 429, 0, 0, 430, 0, ++ 0, 431, 0, 433, 0, 0, 0, 435, 0, 436, ++ 437, 438, 439, 440, 441, 0, 0, 442, 443, 444, ++ 445, 0, 446, 447, 0, 448, 0, 449, 450, 451, ++ 452, 0, 0, 453, 454, 0, 455, 456, 457, 458, ++ 0, 0, 0, 0, 0, 459, 460, 461, 0, 0, ++ 0, 0, 463, 464, 465, 0, 466, 467, 0, 468, ++ 469, 0, 0, 0, 0, 0, 472, 0, 0, 473, ++ 0, 0, 0, 475, 476, 477, 0, 0, 0, 0, ++ 0, 0, 478, 0, 0, 479, 0, 0, 0, 480, ++ 481, 482, 483, 484, 485, 0, 0, 0, 0, 0, ++ 0, 486, 0, 0, 488, 0, 490, 0, 0, 491 ++}; ++ ++static const yytype_int16 yycheck[] = ++{ ++ 6, 648, 577, 989, 988, 577, 1179, 696, 600, 899, ++ 701, 1106, 1697, 19, 4, 124, 22, 554, 1836, 1837, ++ 1078, 1179, 1149, 6, 675, 1125, 32, 1804, 1489, 722, ++ 2024, 926, 813, 39, 1072, 1073, 42, 1390, 1311, 1947, ++ 46, 614, 1390, 1824, 951, 20, 2488, 2529, 54, 522, ++ 2059, 1200, 1487, 3218, 29, 2337, 951, 2128, 1242, 1208, ++ 2298, 36, 2418, 2597, 2773, 993, 757, 2611, 2828, 760, ++ 2141, 642, 1964, 2406, 645, 1116, 1478, 1319, 767, 1964, ++ 1966, 22, 1209, 1210, 993, 1470, 1213, 1214, 1215, 1216, ++ 96, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1824, ++ 2227, 1895, 2142, 3224, 662, 2086, 2086, 2973, 2399, 2628, ++ 2483, 1919, 1920, 119, 2350, 121, 2407, 123, 124, 125, ++ 657, 658, 2360, 2107, 775, 776, 777, 2270, 1936, 1967, ++ 3454, 2021, 17, 1971, 882, 3106, 787, 2045, 121, 786, ++ 123, 19, 2050, 25, 1982, 1953, 1954, 1532, 2056, 2057, ++ 1460, 51, 19, 2061, 1992, 96, 17, 16, 17, 30, ++ 3242, 1969, 1970, 19, 1972, 34, 47, 1975, 1976, 16, ++ 17, 1979, 19, 16, 17, 3501, 1984, 1401, 924, 953, ++ 1988, 1989, 1990, 1991, 73, 3281, 3282, 1995, 1996, 3285, ++ 1998, 82, 2462, 2688, 2086, 1419, 2004, 131, 189, 2007, ++ 2008, 2086, 2010, 1427, 1428, 2221, 952, 28, 3304, 66, ++ 1835, 2111, 2599, 112, 35, 3311, 16, 17, 21, 967, ++ 36, 83, 3498, 2625, 2626, 2465, 114, 46, 36, 2631, ++ 187, 2633, 191, 194, 2451, 68, 174, 265, 282, 2447, ++ 2448, 56, 815, 2963, 71, 43, 3938, 145, 16, 17, ++ 60, 201, 4031, 2884, 224, 358, 59, 60, 207, 339, ++ 71, 192, 2070, 2071, 2072, 2073, 4063, 224, 82, 309, ++ 16, 17, 157, 249, 140, 268, 277, 359, 1956, 157, ++ 440, 3511, 447, 128, 147, 3450, 1470, 21, 25, 1910, ++ 2075, 249, 128, 10, 364, 8, 88, 3393, 513, 650, ++ 34, 23, 537, 261, 877, 387, 995, 2760, 224, 182, ++ 16, 17, 157, 134, 48, 1938, 128, 4025, 16, 17, ++ 12, 157, 272, 129, 12, 59, 60, 2377, 129, 266, ++ 41, 332, 391, 351, 387, 391, 429, 482, 16, 17, ++ 228, 191, 505, 208, 208, 157, 174, 21, 1532, 231, ++ 19, 16, 17, 132, 165, 16, 17, 2565, 2566, 569, ++ 34, 3686, 603, 280, 16, 17, 3642, 283, 228, 151, ++ 537, 16, 17, 536, 48, 4067, 2370, 2371, 2372, 509, ++ 16, 17, 255, 298, 40, 59, 60, 252, 252, 208, ++ 631, 191, 252, 437, 2847, 211, 212, 3722, 507, 228, ++ 530, 636, 151, 211, 212, 550, 220, 2391, 222, 606, ++ 503, 64, 430, 4121, 132, 3691, 266, 16, 17, 2469, ++ 630, 189, 1115, 305, 135, 16, 17, 16, 17, 488, ++ 59, 60, 488, 370, 543, 241, 1129, 251, 355, 151, ++ 241, 402, 3538, 2493, 2494, 660, 168, 1018, 314, 141, ++ 2573, 3547, 383, 141, 1440, 537, 2356, 537, 1239, 810, ++ 1031, 454, 70, 70, 16, 17, 16, 17, 438, 182, ++ 446, 631, 637, 411, 163, 3571, 16, 17, 351, 3803, ++ 3576, 16, 17, 563, 537, 191, 51, 16, 17, 16, ++ 17, 283, 450, 3614, 231, 411, 73, 16, 17, 16, ++ 17, 507, 2835, 509, 2412, 16, 17, 508, 4287, 4288, ++ 3740, 374, 3677, 1050, 1051, 1052, 4313, 235, 2766, 469, ++ 526, 1982, 369, 146, 530, 372, 369, 3247, 631, 372, ++ 16, 17, 1460, 539, 16, 17, 351, 543, 487, 545, ++ 338, 2777, 2778, 2779, 371, 445, 2902, 86, 187, 629, ++ 481, 1460, 558, 1938, 1302, 1202, 546, 1452, 602, 2451, ++ 371, 1212, 2470, 1747, 2472, 2405, 2451, 637, 305, 369, ++ 531, 2479, 372, 601, 472, 16, 17, 2467, 1229, 1964, ++ 586, 2471, 415, 411, 2492, 224, 1334, 16, 17, 629, ++ 2498, 2499, 2573, 2573, 247, 2485, 2486, 587, 1725, 605, ++ 3231, 369, 3723, 1531, 372, 2495, 2514, 2515, 614, 1736, ++ 616, 2013, 1739, 2883, 283, 352, 2886, 2887, 1091, 1092, ++ 2279, 627, 1531, 369, 581, 482, 372, 633, 115, 2613, ++ 2538, 118, 638, 2523, 640, 2905, 642, 3024, 457, 645, ++ 631, 2881, 580, 649, 650, 1118, 16, 17, 654, 1395, ++ 633, 1425, 1398, 1126, 3149, 1128, 2873, 1403, 664, 665, ++ 666, 3421, 144, 369, 670, 1889, 372, 1140, 1141, 1142, ++ 2478, 369, 631, 2689, 372, 1148, 1247, 548, 1719, 570, ++ 501, 2573, 2490, 1429, 1430, 402, 627, 548, 2573, 1470, ++ 2075, 369, 548, 3969, 372, 4387, 595, 638, 3819, 561, ++ 63, 2086, 4028, 812, 369, 2595, 335, 372, 369, 1804, ++ 2610, 372, 1285, 594, 535, 582, 722, 369, 603, 3801, ++ 372, 537, 603, 611, 369, 659, 3221, 372, 3849, 537, ++ 4006, 631, 553, 369, 3705, 4059, 372, 2362, 3020, 617, ++ 629, 16, 17, 1314, 3263, 3264, 415, 16, 17, 631, ++ 635, 1532, 3271, 612, 1938, 3274, 3275, 635, 387, 2069, ++ 629, 617, 1333, 2571, 567, 612, 2909, 588, 1516, 612, ++ 369, 2449, 3291, 372, 780, 512, 782, 2398, 369, 589, ++ 369, 372, 2567, 372, 1357, 502, 3305, 2564, 2996, 603, ++ 635, 634, 3311, 3312, 3313, 3314, 575, 2781, 2782, 635, ++ 806, 807, 808, 631, 810, 811, 812, 2430, 814, 815, ++ 16, 17, 612, 2807, 16, 17, 925, 369, 600, 369, ++ 372, 1379, 372, 635, 807, 188, 1399, 404, 811, 369, ++ 630, 814, 372, 567, 369, 3956, 553, 372, 16, 17, ++ 369, 464, 369, 372, 612, 372, 852, 16, 17, 2843, ++ 369, 600, 369, 372, 4178, 372, 512, 575, 369, 865, ++ 597, 372, 630, 3265, 517, 3384, 612, 3269, 16, 17, ++ 2305, 877, 878, 3155, 2997, 3208, 882, 533, 595, 3212, ++ 445, 871, 3255, 369, 630, 631, 372, 369, 600, 51, ++ 372, 2075, 1464, 567, 2712, 16, 17, 3299, 3300, 3301, ++ 508, 508, 2086, 559, 582, 3307, 612, 16, 17, 598, ++ 3158, 16, 17, 3315, 612, 16, 17, 3208, 592, 925, ++ 459, 3212, 16, 17, 865, 631, 11, 3163, 369, 3167, ++ 2748, 372, 3798, 631, 612, 189, 4032, 878, 4034, 608, ++ 369, 540, 581, 372, 63, 16, 17, 612, 617, 3493, ++ 527, 612, 1645, 631, 215, 629, 16, 17, 3228, 4080, ++ 612, 967, 16, 17, 385, 630, 631, 612, 3047, 630, ++ 631, 157, 34, 370, 283, 552, 612, 2754, 1885, 631, ++ 3382, 2873, 1540, 989, 128, 4106, 631, 355, 2873, 3391, ++ 1885, 16, 17, 2774, 630, 631, 2836, 2837, 819, 369, ++ 191, 349, 372, 2464, 2465, 12, 629, 636, 1915, 90, ++ 633, 266, 1018, 612, 16, 17, 2997, 2997, 138, 3059, ++ 1915, 612, 4187, 612, 177, 1031, 157, 157, 2381, 629, ++ 2383, 2384, 2826, 153, 233, 2383, 2384, 400, 224, 2166, ++ 631, 630, 631, 242, 129, 2430, 3030, 16, 17, 2774, ++ 398, 174, 16, 17, 541, 2113, 159, 544, 879, 167, ++ 612, 2947, 612, 154, 1070, 224, 2451, 420, 1074, 2728, ++ 2729, 2730, 612, 164, 352, 2317, 3203, 612, 630, 631, ++ 630, 631, 1191, 612, 231, 612, 194, 1738, 367, 558, ++ 630, 631, 2241, 612, 369, 612, 631, 372, 16, 17, ++ 369, 612, 631, 372, 631, 2997, 415, 16, 17, 1115, ++ 2948, 630, 2997, 582, 631, 370, 204, 2519, 589, 1228, ++ 631, 592, 2899, 1129, 16, 17, 612, 458, 231, 1070, ++ 612, 1824, 1878, 1074, 141, 266, 266, 2410, 388, 16, ++ 17, 2069, 1888, 2828, 630, 1891, 1892, 2247, 2248, 3693, ++ 482, 527, 3485, 3486, 345, 531, 194, 1938, 3152, 3055, ++ 2069, 249, 125, 369, 2337, 125, 372, 369, 2392, 64, ++ 372, 612, 386, 1179, 3906, 3907, 375, 464, 16, 17, ++ 1753, 797, 2567, 612, 1755, 1191, 2313, 52, 2573, 351, ++ 631, 369, 464, 315, 372, 348, 349, 3191, 63, 2240, ++ 369, 354, 631, 372, 363, 352, 1743, 570, 629, 2250, ++ 354, 564, 531, 1322, 189, 1788, 16, 17, 432, 473, ++ 298, 369, 1228, 0, 372, 125, 25, 1233, 16, 17, ++ 16, 17, 1238, 3217, 631, 2408, 298, 3316, 3947, 1812, ++ 1813, 1247, 612, 16, 17, 1816, 2430, 508, 369, 352, ++ 2408, 372, 438, 4013, 622, 16, 17, 464, 126, 25, ++ 369, 631, 1799, 372, 369, 16, 17, 372, 369, 623, ++ 3804, 372, 157, 1845, 890, 369, 630, 368, 372, 1285, ++ 16, 17, 370, 445, 184, 16, 17, 372, 411, 16, ++ 17, 1297, 19, 1299, 2075, 3777, 1302, 1238, 369, 608, ++ 275, 372, 2737, 3374, 423, 2086, 4471, 397, 1314, 369, ++ 472, 211, 372, 1303, 569, 369, 1322, 280, 372, 597, ++ 280, 16, 17, 338, 2497, 16, 17, 1333, 1334, 410, ++ 3612, 617, 410, 16, 17, 657, 658, 612, 12, 2497, ++ 16, 17, 629, 612, 369, 360, 596, 372, 3238, 16, ++ 17, 1357, 247, 191, 1360, 480, 631, 629, 1467, 617, ++ 159, 630, 1368, 617, 402, 512, 177, 369, 204, 3259, ++ 372, 531, 240, 12, 1380, 1381, 1382, 1383, 1384, 1385, ++ 280, 16, 17, 2567, 1390, 1375, 3282, 16, 17, 2573, ++ 1396, 1397, 355, 1399, 473, 355, 1402, 1380, 1381, 1382, ++ 369, 1384, 555, 372, 482, 369, 612, 272, 372, 512, ++ 612, 16, 17, 535, 1397, 464, 1422, 631, 571, 1402, ++ 2881, 130, 629, 266, 464, 631, 3334, 16, 17, 631, ++ 464, 630, 231, 20, 612, 16, 17, 16, 17, 167, ++ 562, 191, 1383, 612, 1385, 536, 16, 17, 573, 635, ++ 597, 369, 347, 631, 372, 355, 339, 580, 16, 17, ++ 369, 1467, 631, 372, 612, 231, 2819, 141, 629, 2564, ++ 601, 601, 82, 12, 129, 1481, 637, 369, 1484, 1485, ++ 372, 1422, 630, 1473, 3478, 272, 96, 2948, 2873, 239, ++ 615, 612, 369, 531, 597, 372, 3852, 1113, 32, 16, ++ 17, 637, 141, 612, 635, 635, 305, 612, 631, 630, ++ 1516, 612, 16, 17, 16, 17, 4248, 4249, 612, 16, ++ 17, 142, 631, 3805, 16, 17, 631, 370, 631, 630, ++ 1536, 369, 1538, 1539, 372, 1541, 1542, 631, 617, 305, ++ 1481, 612, 111, 354, 1485, 464, 133, 1163, 1554, 417, ++ 1556, 1167, 612, 352, 2612, 1538, 1539, 3628, 612, 2708, ++ 631, 548, 16, 17, 17, 242, 353, 582, 464, 369, ++ 629, 631, 372, 402, 283, 3569, 223, 631, 637, 4192, ++ 629, 369, 4195, 369, 372, 262, 372, 612, 2761, 629, ++ 464, 464, 4074, 2244, 508, 629, 369, 560, 167, 372, ++ 560, 204, 141, 2761, 16, 17, 631, 167, 369, 504, ++ 612, 372, 2997, 3851, 16, 17, 4098, 4099, 369, 339, ++ 370, 372, 517, 16, 17, 194, 507, 524, 525, 631, ++ 511, 528, 529, 369, 194, 532, 372, 534, 369, 1645, ++ 1646, 372, 369, 612, 254, 372, 514, 1756, 612, 2430, ++ 464, 2342, 2343, 2344, 537, 16, 17, 16, 17, 2754, ++ 560, 531, 631, 2136, 16, 17, 630, 586, 587, 228, ++ 2143, 16, 17, 502, 369, 623, 590, 372, 369, 534, ++ 563, 372, 630, 2156, 16, 17, 369, 82, 130, 372, ++ 89, 16, 17, 369, 612, 1017, 372, 1703, 3133, 16, ++ 17, 2516, 369, 612, 4317, 372, 327, 228, 242, 108, ++ 629, 17, 630, 512, 609, 325, 2189, 191, 286, 287, ++ 612, 630, 228, 3500, 553, 3574, 3735, 3736, 3577, 3510, ++ 630, 265, 223, 629, 369, 612, 3421, 372, 630, 1745, ++ 369, 351, 204, 372, 555, 364, 1068, 1753, 339, 1755, ++ 1756, 16, 17, 630, 19, 629, 629, 239, 16, 17, ++ 571, 1767, 47, 1769, 369, 4207, 595, 372, 242, 1775, ++ 1776, 213, 1778, 191, 612, 3556, 472, 2350, 16, 17, ++ 369, 3630, 1788, 372, 2257, 1791, 2567, 31, 369, 1795, ++ 369, 372, 2573, 372, 16, 17, 16, 17, 597, 369, ++ 348, 349, 372, 413, 2899, 587, 1812, 1813, 1814, 1815, ++ 1816, 369, 612, 2997, 372, 629, 283, 537, 1824, 633, ++ 1810, 1827, 1828, 1829, 612, 220, 612, 222, 267, 603, ++ 630, 270, 631, 402, 1775, 1776, 142, 1778, 1844, 612, ++ 84, 283, 630, 563, 630, 580, 581, 1853, 583, 82, ++ 1791, 612, 369, 582, 1795, 372, 251, 630, 1848, 427, ++ 428, 612, 58, 630, 540, 369, 635, 369, 372, 630, ++ 372, 8, 369, 1814, 1815, 372, 612, 369, 637, 630, ++ 372, 612, 576, 2773, 1890, 612, 1827, 1828, 1829, 582, ++ 424, 39, 502, 30, 630, 366, 1902, 155, 46, 630, ++ 142, 502, 631, 1909, 82, 2477, 161, 2814, 637, 629, ++ 629, 155, 59, 60, 188, 369, 2823, 612, 372, 2814, ++ 817, 612, 438, 25, 71, 3833, 3834, 3835, 2823, 612, ++ 220, 3204, 222, 1923, 3034, 630, 612, 630, 631, 630, ++ 195, 201, 1932, 1933, 464, 612, 537, 630, 4015, 1890, ++ 4017, 6, 472, 1943, 1944, 1945, 1946, 369, 1948, 1949, ++ 372, 3955, 531, 630, 3064, 3065, 629, 369, 1909, 191, ++ 372, 191, 563, 412, 11, 2084, 369, 612, 174, 372, ++ 82, 2090, 178, 612, 553, 3085, 3159, 220, 233, 222, ++ 245, 629, 12, 189, 527, 630, 629, 242, 531, 629, ++ 2006, 630, 257, 624, 625, 626, 627, 612, 369, 3362, ++ 369, 372, 272, 372, 3362, 2021, 629, 369, 251, 2128, ++ 372, 327, 42, 612, 369, 630, 595, 372, 537, 1005, ++ 1006, 612, 2141, 612, 629, 3787, 629, 369, 629, 582, ++ 372, 630, 612, 3216, 369, 578, 629, 372, 171, 630, ++ 360, 630, 369, 231, 612, 372, 2046, 2047, 3216, 2049, ++ 630, 2051, 2052, 2053, 2054, 2055, 586, 587, 2058, 1045, ++ 2060, 637, 630, 175, 2889, 629, 3249, 97, 2084, 2825, ++ 125, 2774, 102, 629, 2090, 327, 2092, 342, 631, 2095, ++ 631, 3249, 4086, 629, 637, 612, 2102, 2103, 2104, 2105, ++ 125, 361, 2108, 128, 369, 2920, 629, 372, 612, 629, ++ 612, 369, 2095, 630, 372, 612, 2931, 313, 629, 2934, ++ 612, 11, 2128, 512, 2233, 453, 630, 415, 630, 231, ++ 375, 369, 12, 630, 372, 2141, 25, 1286, 630, 184, ++ 1289, 3949, 629, 1292, 604, 605, 629, 369, 436, 369, ++ 372, 629, 372, 397, 3906, 3907, 2265, 453, 612, 184, ++ 21, 2102, 2103, 2104, 4072, 2980, 3984, 125, 346, 475, ++ 476, 631, 629, 34, 352, 419, 630, 2714, 527, 467, ++ 630, 631, 531, 2756, 3992, 3993, 211, 48, 3996, 3997, ++ 3998, 3999, 629, 82, 629, 3233, 3234, 629, 59, 60, ++ 612, 630, 631, 305, 2777, 2778, 2779, 451, 3985, 469, ++ 612, 582, 17, 3358, 3359, 411, 2997, 401, 630, 612, ++ 3320, 111, 629, 540, 244, 527, 184, 2233, 630, 531, ++ 2703, 2804, 528, 629, 26, 280, 367, 630, 534, 129, ++ 3811, 3812, 32, 421, 346, 629, 595, 630, 631, 629, ++ 352, 612, 2258, 612, 629, 280, 629, 3718, 3719, 2265, ++ 612, 141, 2371, 507, 2373, 2374, 629, 612, 527, 630, ++ 159, 630, 629, 2279, 629, 12, 3449, 167, 630, 71, ++ 612, 629, 578, 58, 631, 630, 175, 612, 4096, 4097, ++ 82, 3449, 224, 595, 314, 612, 629, 4105, 630, 595, ++ 4052, 4053, 3360, 629, 194, 630, 2312, 629, 2417, 2418, ++ 355, 630, 631, 629, 620, 621, 622, 623, 624, 625, ++ 626, 627, 280, 4100, 629, 558, 630, 631, 4013, 629, ++ 355, 2337, 629, 213, 512, 3271, 128, 142, 3274, 3275, ++ 16, 17, 231, 629, 2350, 34, 629, 612, 629, 582, ++ 630, 631, 142, 629, 612, 3291, 629, 2363, 378, 2365, ++ 629, 3506, 617, 618, 619, 2371, 629, 2373, 2374, 630, ++ 631, 60, 629, 2363, 612, 2381, 629, 2383, 2384, 2488, ++ 622, 623, 624, 625, 626, 627, 276, 565, 629, 3960, ++ 612, 360, 612, 3964, 4146, 630, 631, 355, 735, 174, ++ 630, 631, 2408, 178, 141, 3500, 630, 631, 629, 4161, ++ 512, 2417, 2418, 629, 189, 3401, 305, 629, 755, 597, ++ 142, 1776, 4174, 1778, 16, 17, 115, 629, 220, 118, ++ 222, 768, 769, 593, 594, 631, 596, 126, 598, 630, ++ 631, 630, 631, 119, 120, 121, 122, 123, 3384, 82, ++ 104, 2457, 242, 629, 143, 629, 2462, 346, 630, 631, ++ 252, 2467, 629, 352, 629, 2471, 629, 2473, 629, 202, ++ 490, 4465, 1827, 1828, 1829, 265, 213, 2483, 629, 2485, ++ 2486, 488, 2488, 2458, 4236, 2475, 2476, 19, 629, 2495, ++ 629, 2497, 360, 2468, 629, 597, 4248, 4249, 111, 2474, ++ 629, 2507, 59, 60, 524, 630, 631, 629, 125, 6, ++ 2516, 2501, 402, 19, 629, 560, 629, 2523, 2524, 629, ++ 26, 2496, 327, 2529, 630, 631, 159, 2502, 151, 152, ++ 2536, 629, 3183, 2508, 2509, 560, 629, 327, 313, 2529, ++ 216, 217, 218, 219, 4296, 104, 630, 631, 630, 631, ++ 629, 240, 4123, 4124, 4306, 629, 348, 349, 348, 349, ++ 57, 629, 354, 630, 631, 71, 2507, 184, 360, 302, ++ 303, 629, 104, 2563, 307, 308, 82, 629, 232, 4397, ++ 470, 629, 3727, 3728, 49, 3730, 3731, 630, 2594, 2595, ++ 3163, 630, 631, 277, 211, 249, 49, 4349, 231, 4351, ++ 3073, 214, 560, 630, 631, 327, 360, 261, 400, 4361, ++ 3657, 3658, 502, 630, 631, 631, 496, 497, 498, 499, ++ 500, 501, 128, 512, 360, 157, 630, 631, 4380, 458, ++ 4382, 569, 4384, 513, 424, 624, 411, 166, 528, 4391, ++ 3113, 317, 472, 319, 320, 321, 630, 631, 145, 629, ++ 4402, 340, 328, 2594, 4472, 187, 266, 189, 630, 631, ++ 630, 631, 189, 280, 630, 631, 4418, 4419, 630, 631, ++ 475, 476, 204, 232, 508, 80, 468, 209, 630, 631, ++ 630, 631, 4434, 4435, 338, 475, 476, 4439, 630, 631, ++ 249, 197, 224, 369, 630, 631, 372, 630, 631, 489, ++ 232, 527, 261, 630, 631, 595, 567, 239, 597, 630, ++ 631, 630, 631, 346, 220, 3842, 222, 249, 2724, 352, ++ 166, 2727, 2728, 2729, 2730, 630, 631, 588, 589, 261, ++ 2736, 630, 631, 409, 266, 630, 631, 508, 355, 630, ++ 631, 63, 631, 275, 630, 631, 252, 630, 631, 2755, ++ 2756, 630, 631, 475, 476, 2761, 630, 631, 80, 496, ++ 497, 277, 499, 376, 501, 630, 631, 125, 2774, 3755, ++ 92, 2777, 2778, 2779, 387, 3761, 513, 158, 570, 338, ++ 91, 394, 631, 188, 2790, 461, 462, 362, 421, 523, ++ 2796, 480, 2798, 2902, 630, 2736, 450, 157, 2804, 3371, ++ 2790, 125, 630, 631, 128, 3342, 338, 630, 631, 3982, ++ 60, 630, 631, 2819, 128, 620, 621, 622, 623, 624, ++ 625, 626, 627, 228, 3982, 114, 184, 63, 360, 636, ++ 620, 621, 622, 623, 624, 625, 626, 627, 370, 6, ++ 1164, 1165, 348, 349, 80, 629, 123, 252, 354, 3169, ++ 3170, 113, 349, 211, 360, 544, 92, 104, 463, 513, ++ 184, 4, 220, 595, 222, 115, 188, 242, 118, 631, ++ 402, 193, 386, 486, 3126, 3127, 126, 2883, 56, 512, ++ 2886, 2887, 142, 2889, 573, 3430, 3431, 211, 430, 171, ++ 3985, 450, 114, 143, 400, 221, 2902, 637, 71, 2905, ++ 622, 623, 624, 625, 626, 627, 228, 142, 631, 12, ++ 631, 182, 600, 2903, 2920, 630, 630, 414, 450, 416, ++ 141, 2911, 280, 599, 195, 2931, 537, 9, 2934, 631, ++ 252, 637, 565, 4053, 630, 185, 612, 613, 614, 630, ++ 472, 159, 219, 560, 637, 19, 629, 3532, 3533, 265, ++ 2956, 142, 188, 2959, 513, 637, 280, 193, 2964, 631, ++ 3545, 636, 468, 49, 597, 578, 125, 3552, 2974, 277, ++ 277, 277, 2978, 277, 2980, 277, 277, 527, 631, 125, ++ 634, 513, 242, 629, 255, 232, 257, 272, 631, 2995, ++ 240, 2974, 228, 3578, 3579, 400, 385, 355, 631, 631, ++ 548, 82, 249, 631, 3010, 4100, 12, 242, 1084, 1085, ++ 1086, 3017, 3002, 4186, 261, 96, 252, 548, 2959, 631, ++ 617, 624, 631, 3029, 631, 184, 1102, 631, 4186, 242, ++ 104, 355, 243, 525, 179, 189, 631, 569, 184, 574, ++ 317, 3732, 3733, 3734, 321, 631, 85, 4033, 87, 581, ++ 582, 328, 211, 485, 389, 136, 630, 3947, 1134, 137, ++ 360, 1137, 631, 3172, 570, 211, 631, 327, 617, 601, ++ 617, 603, 617, 617, 345, 631, 3017, 3766, 400, 3188, ++ 1156, 1157, 607, 157, 1160, 617, 576, 337, 194, 128, ++ 340, 338, 327, 617, 617, 617, 617, 617, 630, 631, ++ 617, 3107, 634, 635, 1180, 1181, 26, 27, 617, 3115, ++ 149, 581, 617, 360, 617, 189, 4236, 617, 617, 617, ++ 125, 280, 3694, 617, 617, 3115, 360, 360, 399, 360, ++ 204, 191, 409, 3139, 280, 209, 327, 624, 4265, 59, ++ 60, 630, 62, 3680, 183, 631, 630, 630, 630, 630, ++ 386, 71, 630, 3159, 3160, 630, 630, 3163, 232, 191, ++ 631, 623, 82, 629, 400, 239, 3172, 417, 631, 491, ++ 90, 80, 3178, 254, 630, 249, 630, 569, 630, 184, ++ 630, 55, 3188, 630, 627, 462, 631, 261, 630, 142, ++ 3196, 65, 266, 630, 114, 630, 355, 473, 3790, 629, ++ 629, 275, 560, 450, 3893, 629, 211, 81, 128, 355, ++ 3216, 131, 630, 601, 631, 475, 476, 548, 230, 93, ++ 94, 95, 3228, 629, 519, 11, 202, 191, 637, 4349, ++ 191, 4351, 3238, 630, 3240, 109, 560, 169, 4365, 159, ++ 475, 476, 454, 3249, 325, 410, 472, 631, 570, 3255, ++ 189, 3257, 631, 3259, 47, 491, 336, 502, 502, 4432, ++ 4380, 502, 502, 502, 338, 3374, 513, 348, 349, 463, ++ 351, 3846, 80, 386, 4432, 280, 386, 386, 548, 188, ++ 137, 250, 4455, 250, 475, 476, 360, 137, 386, 4462, ++ 4276, 4277, 47, 4279, 544, 4468, 370, 4455, 4418, 4419, ++ 220, 528, 222, 528, 4462, 433, 629, 386, 228, 384, ++ 4468, 629, 576, 386, 386, 386, 236, 276, 637, 228, ++ 629, 582, 599, 573, 155, 630, 3332, 630, 402, 548, ++ 238, 251, 413, 104, 570, 3325, 238, 614, 637, 378, ++ 630, 637, 4328, 252, 4330, 4331, 617, 618, 619, 630, ++ 355, 3357, 3358, 3359, 637, 3464, 3362, 630, 3348, 637, ++ 620, 621, 622, 623, 624, 625, 626, 627, 3374, 637, ++ 637, 630, 630, 630, 327, 631, 450, 548, 548, 631, ++ 537, 272, 88, 422, 304, 620, 621, 622, 623, 624, ++ 625, 626, 627, 608, 47, 548, 367, 629, 472, 6, ++ 629, 560, 322, 617, 191, 629, 13, 4393, 15, 629, ++ 617, 191, 191, 239, 560, 191, 4063, 82, 246, 26, ++ 27, 502, 169, 631, 355, 90, 4001, 637, 637, 620, ++ 621, 622, 623, 624, 625, 626, 627, 249, 3444, 513, ++ 249, 318, 316, 3449, 373, 3554, 4430, 114, 114, 114, ++ 57, 252, 252, 637, 548, 62, 63, 377, 3464, 379, ++ 334, 232, 69, 629, 204, 629, 366, 387, 537, 447, ++ 386, 629, 370, 624, 637, 82, 240, 386, 249, 629, ++ 629, 240, 630, 90, 603, 1561, 630, 624, 630, 494, ++ 261, 400, 630, 100, 159, 569, 630, 637, 630, 4036, ++ 3506, 630, 360, 630, 629, 224, 630, 114, 582, 631, ++ 111, 267, 333, 386, 631, 4087, 630, 3523, 191, 3628, ++ 575, 128, 475, 476, 131, 637, 242, 601, 4065, 603, ++ 263, 138, 139, 71, 249, 455, 249, 360, 145, 631, ++ 629, 3516, 252, 617, 252, 630, 153, 631, 3554, 398, ++ 157, 82, 159, 629, 631, 560, 630, 631, 360, 19, ++ 634, 635, 360, 228, 631, 3555, 167, 338, 630, 360, ++ 631, 1647, 629, 488, 3580, 1651, 360, 47, 464, 630, ++ 187, 3587, 629, 629, 629, 266, 460, 3696, 629, 360, ++ 26, 27, 512, 194, 630, 47, 466, 1673, 36, 3605, ++ 630, 603, 415, 202, 3594, 148, 630, 259, 528, 630, ++ 204, 631, 532, 220, 474, 222, 629, 249, 629, 226, ++ 249, 228, 3628, 59, 60, 629, 62, 228, 631, 236, ++ 128, 551, 128, 629, 396, 71, 637, 86, 482, 304, ++ 144, 515, 630, 488, 251, 459, 82, 630, 630, 569, ++ 631, 630, 19, 630, 90, 630, 630, 322, 630, 533, ++ 34, 12, 13, 34, 355, 60, 4313, 240, 621, 622, ++ 623, 624, 625, 626, 627, 276, 630, 324, 114, 450, ++ 118, 346, 630, 630, 630, 254, 410, 125, 275, 367, ++ 3696, 603, 128, 239, 629, 131, 630, 304, 631, 637, ++ 47, 209, 324, 631, 415, 537, 582, 537, 3714, 630, ++ 582, 631, 629, 301, 592, 322, 629, 592, 629, 326, ++ 14, 3727, 3728, 159, 3730, 3731, 629, 111, 629, 575, ++ 629, 36, 629, 4146, 128, 252, 19, 252, 354, 177, ++ 630, 34, 513, 3852, 631, 629, 184, 4322, 4161, 169, ++ 454, 355, 103, 324, 173, 17, 537, 252, 365, 537, ++ 631, 4174, 537, 370, 531, 629, 586, 630, 630, 360, ++ 377, 3777, 379, 211, 212, 582, 4423, 582, 239, 386, ++ 387, 132, 350, 587, 220, 506, 222, 3777, 4325, 447, ++ 3796, 3797, 228, 603, 145, 355, 397, 169, 34, 138, ++ 236, 402, 3808, 630, 367, 575, 631, 629, 189, 193, ++ 4457, 418, 629, 118, 629, 251, 167, 518, 629, 170, ++ 125, 156, 31, 600, 189, 432, 433, 434, 435, 265, ++ 181, 67, 638, 630, 630, 3841, 630, 381, 3844, 61, ++ 539, 137, 280, 159, 228, 137, 3852, 512, 455, 402, ++ 73, 202, 600, 423, 191, 629, 3797, 31, 63, 63, ++ 367, 630, 4399, 528, 519, 522, 631, 268, 304, 470, ++ 47, 629, 177, 5, 47, 629, 3882, 228, 629, 184, ++ 360, 360, 239, 4296, 235, 630, 322, 155, 136, 635, ++ 367, 367, 276, 4306, 144, 629, 47, 3903, 47, 135, ++ 3841, 339, 3908, 154, 47, 512, 211, 212, 132, 155, ++ 600, 575, 350, 223, 282, 635, 354, 355, 150, 127, ++ 638, 528, 454, 159, 275, 532, 162, 528, 47, 629, ++ 47, 47, 4469, 534, 630, 53, 456, 635, 631, 221, ++ 252, 377, 630, 379, 551, 155, 631, 540, 4361, 556, ++ 206, 387, 553, 635, 631, 47, 630, 53, 3948, 630, ++ 196, 631, 569, 437, 189, 224, 540, 602, 189, 4382, ++ 189, 4384, 128, 355, 190, 280, 3982, 578, 4391, 215, ++ 629, 472, 2062, 631, 3913, 2272, 3335, 3334, 2446, 4402, ++ 658, 3603, 4101, 229, 595, 3940, 4255, 4066, 4256, 3601, ++ 3605, 3795, 1002, 4457, 4410, 46, 578, 1823, 4420, 4015, ++ 2774, 4017, 3787, 4019, 3787, 3787, 3787, 3787, 675, 455, ++ 3787, 4434, 4435, 680, 3787, 3787, 4439, 3787, 635, 3787, ++ 4293, 4139, 4293, 3787, 339, 4249, 3787, 3787, 4165, 4045, ++ 4164, 277, 1476, 1747, 1043, 2020, 1486, 1478, 3945, 354, ++ 355, 2929, 403, 2750, 3443, 2755, 407, 3139, 4091, 3842, ++ 717, 4190, 298, 3446, 1319, 4365, 4273, 4322, 4074, 4001, ++ 1531, 517, 423, 3610, 2013, 3003, 512, 734, 3259, 2526, ++ 431, 2595, 3238, 3247, 4074, 4091, 470, 2021, 439, 4340, ++ 4036, 3753, 528, 3055, 3282, 4101, 532, 3316, 4207, 537, ++ 3565, 4107, 4087, 541, 4094, 4095, 544, 491, 3554, 4023, ++ 11, 3188, 11, 464, 4123, 551, 4124, 555, 775, 776, ++ 777, 778, 560, 1545, 3964, 563, 477, 478, 3951, 3960, ++ 787, 3808, 2100, 569, 3761, 2020, 3240, 2519, 971, 631, ++ 1897, 3520, 1436, 3239, 528, 2332, 1814, 531, 1485, 1527, ++ 534, 2736, 2305, 3134, 2354, 3789, 599, 2223, 911, 3115, ++ 1834, 2135, 4271, 2714, 1129, 401, 2409, 2132, 2222, 3206, ++ 3867, 522, 3721, 4222, 410, 3332, 4223, 1102, 2251, 3249, ++ 4186, 3715, 2819, 1452, 622, 623, 570, 4399, 2515, 425, ++ 3696, 12, 13, 629, 578, 2359, 2105, 13, 1302, 1334, ++ 2299, 4207, 553, 2336, 3449, 3154, 3153, 443, 4198, 4199, ++ 3216, 868, 4186, 589, 1554, 671, 4222, 4223, 577, 1886, ++ 1388, 1416, 1887, 1766, 575, 3257, 577, 3137, 4315, 1340, ++ 4214, 4363, 537, 4283, 4462, 4468, 541, 3159, 3556, 544, ++ 1839, 2806, 1368, 3196, 3475, 3704, 482, 483, 569, 1795, ++ 555, 1358, 893, 3831, 1294, 560, 1536, 3837, 563, 2724, ++ 898, 570, 658, -1, 513, 4271, 513, 658, 658, -1, ++ -1, -1, 508, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 103, -1, -1, -1, -1, 103, -1, -1, ++ -1, 527, 4298, -1, 530, 531, -1, -1, -1, 4305, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 132, -1, -1, -1, -1, 132, 622, 623, -1, ++ -1, -1, -1, -1, 145, -1, -1, -1, -1, 145, ++ 119, 120, 121, 122, 123, -1, -1, -1, -1, -1, ++ -1, -1, 4451, 579, -1, -1, 167, 4337, -1, 170, ++ -1, 167, -1, -1, 170, -1, -1, -1, -1, -1, ++ 181, -1, -1, -1, -1, 181, -1, 1024, -1, -1, ++ -1, -1, -1, -1, -1, 4381, -1, -1, -1, -1, ++ 4386, 202, -1, -1, -1, -1, 202, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 228, -1, -1, ++ -1, -1, 228, -1, 235, -1, -1, 4423, -1, 235, ++ -1, -1, -1, 1080, 1081, -1, 4432, 216, 217, 218, ++ 219, -1, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, ++ 1097, 1098, 1099, 1100, 1101, 4451, -1, -1, -1, 4455, ++ -1, 4457, 1109, 1110, 275, 1112, 4462, 1114, -1, 275, ++ -1, 1118, 4468, -1, 1121, 1122, 1123, 1124, -1, 1126, ++ 1127, 1128, -1, -1, -1, -1, -1, -1, 1135, 1136, ++ -1, 1138, 1139, 1140, 1141, 1142, -1, -1, 1145, 1146, ++ 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, -1, ++ -1, 1158, 1159, -1, 34, 1162, -1, -1, -1, 1166, ++ -1, 1168, 1169, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 1182, 1183, -1, 317, -1, ++ 319, 320, 321, 1190, -1, -1, -1, 67, -1, 328, ++ 1197, 1198, 1199, 1200, -1, -1, -1, -1, -1, -1, ++ -1, 1208, 1209, 1210, -1, 1212, 1213, 1214, 1215, 1216, ++ -1, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, -1, ++ -1, -1, 1229, 1230, -1, -1, -1, -1, -1, -1, ++ -1, -1, 403, -1, -1, -1, 407, 403, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 423, -1, -1, 135, -1, 423, -1, -1, ++ 431, -1, -1, -1, -1, 431, -1, -1, 439, -1, ++ 409, -1, -1, 439, -1, -1, -1, -1, -1, 159, ++ -1, -1, 162, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 464, -1, -1, -1, -1, 464, 1306, ++ -1, -1, -1, -1, -1, -1, 477, 478, -1, -1, ++ -1, 477, 478, -1, -1, -1, 196, -1, -1, -1, ++ -1, -1, 461, 462, -1, 680, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 229, ++ -1, 522, -1, -1, -1, -1, 522, -1, -1, -1, ++ -1, 1368, 717, -1, -1, -1, -1, -1, -1, 1376, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 734, ++ -1, 225, 553, -1, -1, -1, -1, 553, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 277, -1, -1, ++ -1, -1, -1, -1, 575, -1, 577, -1, -1, 575, ++ -1, 577, -1, -1, -1, -1, -1, -1, 298, -1, ++ -1, -1, -1, 778, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 13, -1, 15, -1, ++ 284, 285, 286, 287, 288, 289, -1, 291, 292, 293, ++ 294, 295, 296, 297, 31, 299, 300, -1, 35, -1, ++ 599, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 1478, 49, 50, 613, 614, -1, -1, -1, -1, ++ 57, -1, -1, -1, -1, 62, 63, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 84, -1, -1, ++ -1, -1, -1, 868, -1, -1, -1, -1, -1, -1, ++ -1, 401, -1, -1, -1, -1, 103, -1, -1, -1, ++ 410, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 425, -1, 124, -1, -1, ++ -1, -1, -1, -1, -1, 132, 133, 134, -1, -1, ++ 1567, -1, -1, 443, -1, -1, -1, 144, 145, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 157, -1, -1, 427, 428, -1, -1, -1, -1, -1, ++ -1, -1, -1, 170, -1, -1, -1, -1, -1, -1, ++ -1, -1, 482, 483, -1, -1, -1, -1, -1, 186, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 202, -1, -1, 508, 206, ++ -1, -1, -1, 210, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 530, -1, -1, -1, -1, -1, -1, -1, 235, -1, ++ 237, -1, -1, -1, -1, -1, -1, -1, -1, 1024, ++ -1, -1, 1679, 1680, 1681, -1, 253, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 1693, -1, -1, -1, ++ -1, -1, -1, -1, 271, -1, -1, -1, 275, 579, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 1719, -1, -1, -1, -1, -1, 1725, -1, ++ -1, 1728, -1, 1730, -1, 1080, 1081, -1, -1, 1736, ++ -1, 1738, 1739, -1, 1089, 1090, -1, -1, 1093, 1094, ++ 1095, 1096, 1097, 1098, 1099, 1100, 1101, -1, -1, -1, ++ -1, -1, -1, -1, 1109, 1110, -1, 1112, -1, 1114, ++ -1, -1, -1, -1, -1, -1, 1121, 1122, 1123, 1124, ++ -1, -1, 1127, -1, -1, -1, -1, -1, -1, -1, ++ 1135, 1136, -1, 1138, 1139, -1, -1, -1, 365, -1, ++ 1145, 1146, 1147, -1, -1, 1150, 1151, 1152, 1153, 1154, ++ 1155, -1, 1809, 1158, 1159, 382, -1, 1162, -1, 386, ++ -1, 1166, -1, 1168, 1169, -1, -1, -1, -1, -1, ++ 397, -1, -1, -1, -1, -1, -1, 1182, 1183, -1, ++ -1, 408, -1, -1, -1, 1190, -1, -1, -1, -1, ++ -1, -1, 1197, 1198, 1199, -1, -1, -1, -1, -1, ++ -1, -1, -1, 430, 26, 27, 433, -1, 435, -1, ++ -1, 438, -1, -1, 441, 442, -1, -1, -1, -1, ++ -1, -1, 449, -1, 451, 1230, -1, -1, -1, -1, ++ -1, 458, -1, -1, -1, -1, -1, 464, -1, -1, ++ 62, -1, -1, 24, -1, 472, -1, -1, -1, -1, ++ 477, -1, 479, 34, 35, 482, -1, -1, -1, -1, ++ 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, ++ 507, -1, -1, -1, 511, -1, 67, -1, -1, -1, ++ -1, 72, 114, -1, -1, -1, -1, -1, -1, -1, ++ -1, 1306, -1, -1, -1, -1, 128, -1, -1, 131, ++ -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, ++ 101, -1, 103, -1, -1, -1, -1, -1, -1, 556, ++ -1, 112, -1, -1, -1, -1, -1, 159, -1, -1, ++ -1, 568, -1, -1, -1, 572, -1, -1, 575, -1, ++ -1, -1, -1, -1, 581, -1, 2013, -1, -1, -1, ++ -1, -1, -1, 1368, -1, -1, -1, -1, -1, -1, ++ -1, 1376, -1, -1, -1, -1, -1, 158, 159, -1, ++ -1, -1, 163, 610, -1, 166, 2043, -1, -1, 616, ++ -1, -1, -1, -1, -1, -1, -1, -1, 220, -1, ++ 222, -1, 629, -1, -1, -1, 228, -1, -1, -1, ++ -1, 192, -1, 194, 236, -1, -1, -1, -1, -1, ++ 201, -1, 203, -1, -1, -1, -1, -1, -1, 251, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 2098, -1, -1, -1, -1, 227, 228, 229, -1, ++ -1, -1, -1, -1, -1, -1, -1, 2114, -1, -1, ++ -1, 2118, -1, -1, -1, -1, 2123, 2124, -1, 250, ++ -1, -1, -1, -1, -1, 2132, 2133, -1, 2135, 2136, ++ 2137, 2138, 304, 2140, -1, -1, 2143, -1, -1, -1, ++ -1, 272, -1, -1, -1, -1, 2153, -1, 2155, 2156, ++ 322, 2158, 2159, 2160, 2161, -1, 2163, -1, -1, 2166, ++ -1, -1, -1, -1, -1, -1, -1, 298, 2175, -1, ++ -1, -1, -1, -1, -1, 2182, -1, 2184, -1, 2186, ++ 2187, 2188, 2189, -1, -1, -1, 2193, 2194, 2195, -1, ++ -1, -1, 2199, 2200, 2201, -1, 2203, -1, 2205, -1, ++ 2207, -1, 2209, -1, 2211, 377, -1, 379, -1, 2216, ++ -1, -1, 1567, -1, -1, 387, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 2234, -1, -1, ++ -1, -1, -1, 364, 2241, -1, -1, 2244, -1, -1, ++ -1, -1, -1, 2250, -1, -1, 2253, -1, -1, -1, ++ 2257, -1, -1, -1, -1, -1, -1, -1, -1, 390, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 401, 402, -1, -1, 405, 406, -1, -1, -1, -1, ++ -1, -1, -1, 455, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 426, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 2313, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 1679, 1680, 1681, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 469, -1, ++ 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 482, -1, -1, -1, -1, 528, -1, -1, -1, ++ 532, -1, -1, -1, 1719, -1, -1, -1, -1, -1, ++ -1, -1, -1, 1728, -1, 1730, -1, 508, -1, 551, ++ -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 569, -1, 530, ++ 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 2429, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 2447, 2448, 13, -1, 15, -1, -1, -1, 579, -1, ++ -1, -1, -1, -1, 1809, -1, -1, -1, -1, 590, ++ -1, -1, -1, -1, 35, -1, -1, 598, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 49, 50, ++ -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, ++ -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 2519, 84, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 124, -1, -1, -1, -1, 2565, 2566, ++ -1, 132, 133, 134, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 144, 145, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 2599, -1, -1, -1, -1, -1, -1, 170, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2616, ++ -1, -1, -1, 2620, -1, 186, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 202, -1, -1, -1, 206, -1, -1, -1, 210, ++ -1, -1, -1, 2650, 2651, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 2670, 235, -1, 237, -1, -1, -1, ++ -1, -1, 2679, -1, 2681, -1, 2683, -1, -1, -1, ++ -1, -1, 253, -1, -1, -1, -1, -1, 2043, -1, ++ -1, -1, -1, -1, -1, -1, 2703, -1, -1, -1, ++ 271, 2708, -1, -1, 275, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 2732, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2114, ++ -1, -1, -1, 2118, -1, -1, -1, -1, 2123, 2124, ++ -1, -1, -1, -1, -1, -1, -1, 2132, 2133, -1, ++ 2135, -1, 2137, 2138, -1, 2140, -1, -1, -1, -1, ++ -1, -1, 2799, -1, 365, -1, 2803, -1, 2153, -1, ++ 2155, -1, -1, 2158, 2159, 2160, 2161, -1, 2163, -1, ++ -1, 382, -1, -1, -1, 386, -1, -1, -1, -1, ++ 2175, -1, -1, -1, -1, -1, 397, 2182, -1, 2184, ++ -1, 2186, 2187, 2188, -1, -1, -1, 408, 2193, 2194, ++ 2195, -1, -1, 2850, 2199, 2200, 2201, -1, 2203, -1, ++ 2205, -1, 2207, -1, 2209, -1, 2211, -1, -1, 430, ++ -1, 2216, 433, -1, 435, -1, -1, 438, -1, -1, ++ 441, 442, -1, -1, -1, -1, -1, -1, 449, 2234, ++ 451, -1, -1, -1, -1, -1, -1, 458, -1, -1, ++ -1, -1, -1, 464, -1, 2250, -1, -1, 2253, -1, ++ -1, 472, -1, -1, -1, -1, 477, -1, 479, -1, ++ -1, 482, 6, -1, -1, -1, -1, -1, -1, 13, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 26, 27, -1, -1, 507, -1, -1, -1, ++ 511, -1, -1, -1, -1, -1, -1, 33, 34, -1, ++ -1, -1, -1, 39, -1, 41, -1, 43, 44, -1, ++ -1, -1, -1, 57, 2971, 2972, -1, -1, 62, -1, ++ -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 556, -1, -1, 82, 2996, ++ -1, -1, -1, -1, -1, -1, 90, 568, -1, -1, ++ -1, 572, -1, -1, 575, -1, 100, -1, -1, -1, ++ 581, -1, -1, -1, -1, -1, -1, 3024, -1, -1, ++ 114, -1, -1, -1, -1, -1, -1, -1, -1, 115, ++ 3037, -1, 118, -1, 128, -1, -1, 131, -1, 610, ++ 126, -1, -1, -1, 138, 616, -1, -1, -1, -1, ++ -1, 145, -1, -1, -1, -1, -1, 143, 629, 153, ++ -1, -1, -1, 3070, 3071, 159, 3073, -1, -1, -1, ++ -1, -1, -1, -1, 160, 3082, -1, -1, -1, -1, ++ 3087, -1, -1, 3090, -1, 3092, 3093, -1, -1, -1, ++ -1, -1, -1, 187, -1, -1, -1, 183, -1, 185, ++ -1, -1, -1, -1, -1, -1, 3113, -1, -1, -1, ++ -1, -1, 198, 199, -1, -1, -1, -1, -1, -1, ++ -1, 3128, -1, -1, -1, -1, 220, -1, 222, -1, ++ -1, -1, -1, -1, 228, -1, -1, -1, -1, -1, ++ -1, -1, 236, -1, -1, -1, 3153, -1, -1, -1, ++ -1, -1, -1, -1, 240, -1, -1, 251, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 3183, -1, -1, -1, ++ -1, -1, -1, 269, -1, 26, 27, -1, -1, -1, ++ 3197, -1, 278, 279, -1, 281, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 304, 3218, -1, -1, -1, -1, -1, -1, 59, 60, ++ 3227, 62, -1, -1, 310, 311, 312, -1, 322, -1, ++ 71, -1, 326, -1, -1, -1, -1, -1, -1, -1, ++ -1, 82, -1, 329, 330, 331, -1, -1, -1, 90, ++ -1, 337, -1, -1, 340, -1, -1, -1, -1, -1, ++ -1, 2616, -1, -1, -1, 2620, -1, -1, -1, -1, ++ 356, 357, -1, 114, -1, -1, 370, -1, -1, -1, ++ -1, -1, -1, 377, -1, 379, -1, 128, -1, -1, ++ 131, -1, -1, 387, -1, 2650, 2651, -1, -1, -1, ++ -1, -1, 3309, -1, -1, -1, 392, 393, -1, -1, ++ -1, -1, -1, -1, -1, 2670, -1, -1, 159, -1, ++ -1, -1, -1, -1, 2679, -1, 2681, -1, 2683, -1, ++ -1, 417, -1, -1, -1, -1, -1, -1, -1, 433, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 455, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 2732, -1, 220, ++ -1, 222, 468, -1, -1, -1, 472, 228, -1, -1, ++ -1, -1, -1, -1, -1, 236, -1, -1, 484, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 251, -1, -1, -1, -1, -1, -1, -1, 512, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 528, -1, -1, -1, 532, -1, ++ -1, -1, -1, 3450, 2799, -1, -1, -1, 2803, -1, ++ -1, -1, 538, -1, -1, 541, -1, 551, 544, 545, ++ 546, 547, -1, 304, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 569, -1, -1, -1, -1, ++ -1, 322, 3489, 3490, -1, -1, -1, -1, -1, -1, ++ -1, 3498, -1, -1, -1, 2850, -1, -1, -1, -1, ++ -1, -1, 588, 589, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 614, -1, ++ -1, -1, -1, -1, -1, -1, 377, -1, 379, -1, ++ -1, -1, -1, -1, -1, -1, 387, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 3565, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 3610, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 455, -1, 2971, 2972, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 3642, -1, -1, -1, 3646, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 3677, 512, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 3037, -1, 3691, -1, -1, 528, -1, -1, ++ -1, 532, -1, -1, -1, -1, -1, 3704, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 551, -1, -1, -1, -1, 3070, 3071, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 3082, 569, -1, ++ -1, -1, 3087, -1, -1, 3090, -1, 3092, 3093, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 3128, -1, -1, -1, -1, -1, -1, ++ 3787, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 3153, -1, ++ 3807, -1, -1, -1, 3811, 3812, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 3842, -1, -1, -1, -1, ++ -1, -1, 3197, 3850, -1, -1, -1, -1, -1, -1, ++ -1, -1, 3859, -1, 3861, -1, -1, -1, -1, -1, ++ -1, -1, -1, 3218, -1, -1, -1, -1, -1, -1, ++ -1, -1, 3227, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 3900, -1, -1, -1, -1, -1, 3906, ++ 3907, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 3951, -1, -1, -1, -1, -1, ++ -1, -1, -1, 3960, -1, -1, -1, 3964, -1, -1, ++ -1, -1, 3969, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4006, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 4025, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 4038, -1, 4040, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 4050, -1, 4052, 4053, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 4077, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 3450, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 4121, -1, 4123, 4124, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 3489, 3490, -1, 4144, -1, 4146, ++ -1, -1, -1, 3498, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 4161, 4162, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 4174, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 4187, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 4235, 4236, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 4248, 4249, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 4265, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 3642, -1, 4296, ++ -1, 3646, -1, -1, -1, -1, 4303, -1, -1, 4306, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 3677, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 4342, 3691, -1, -1, -1, ++ -1, -1, 4349, -1, 4351, -1, -1, -1, -1, 3704, ++ -1, -1, -1, -1, 4361, -1, -1, -1, 4365, -1, ++ -1, 4368, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 4380, -1, 4382, -1, 4384, -1, -1, ++ -1, -1, -1, -1, 4391, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 4402, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 4418, 4419, -1, -1, -1, -1, 4424, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 4434, 4435, -1, ++ -1, -1, 4439, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 4471, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 3850, -1, -1, -1, -1, ++ -1, -1, -1, -1, 3859, -1, 3861, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 3900, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 3969, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, 4006, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 4038, -1, 4040, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, 4050, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4144, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 4162, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 4187, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 4235, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 4303, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 4342, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, 4368, -1, -1, -1, 5, -1, 7, ++ 8, 9, 10, 11, -1, -1, 14, -1, -1, -1, ++ 18, -1, -1, 21, -1, 23, 24, 25, 26, 27, ++ 28, 29, -1, 31, -1, -1, 34, 35, 36, 37, ++ 38, 39, 40, -1, 42, 43, 44, 45, 46, -1, ++ 48, 49, -1, -1, 52, 53, 54, 55, 56, 4424, ++ 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, ++ 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, ++ 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, ++ 88, -1, 90, 91, -1, 93, 94, 95, 96, 97, ++ -1, 99, 100, 101, 102, -1, 4471, 105, 106, 107, ++ -1, 109, 110, 111, -1, 113, 114, 115, 116, 117, ++ 118, -1, -1, -1, -1, 123, 124, 125, -1, -1, ++ 128, 129, -1, 131, -1, -1, -1, 135, -1, 137, ++ 138, 139, 140, -1, -1, -1, 144, -1, -1, 147, ++ 148, 149, -1, -1, -1, 153, -1, 155, 156, -1, ++ 158, 159, 160, -1, 162, 163, -1, 165, 166, 167, ++ 168, 169, 170, 171, -1, 173, 174, 175, 176, 177, ++ 178, 179, -1, 181, 182, 183, 184, -1, 186, -1, ++ -1, -1, 190, -1, 192, -1, 194, -1, 196, 197, ++ 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, ++ 208, -1, 210, 211, 212, -1, 214, 215, -1, -1, ++ -1, 219, 220, 221, 222, 223, -1, 225, 226, 227, ++ -1, 229, -1, 231, -1, -1, -1, 235, 236, 237, ++ 238, -1, -1, 241, -1, 243, 244, -1, 246, 247, ++ -1, -1, -1, 251, -1, -1, 254, 255, 256, -1, ++ 258, 259, -1, 261, 262, 263, -1, -1, -1, -1, ++ -1, 269, 270, -1, 272, -1, 274, -1, 276, 277, ++ -1, -1, 280, -1, -1, -1, 284, 285, 286, 287, ++ 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, ++ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, ++ 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, ++ 318, -1, -1, 321, 322, 323, 324, -1, 326, 327, ++ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, ++ -1, 339, 340, 341, -1, -1, 344, 345, 346, 347, ++ 348, 349, 350, 351, 352, -1, 354, 355, -1, 357, ++ 358, 359, -1, 361, 362, 363, 364, -1, 366, 367, ++ -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, ++ 378, -1, 380, 381, -1, 383, 384, 385, 386, 387, ++ 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, ++ 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, ++ -1, 409, 410, 411, -1, -1, 414, -1, -1, -1, ++ 418, 419, 420, 421, 422, -1, -1, 425, 426, 427, ++ 428, 429, -1, 431, 432, -1, 434, 435, 436, 437, ++ 438, 439, -1, 441, -1, 443, 444, -1, 446, 447, ++ -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, ++ 458, 459, 460, -1, 462, 463, -1, -1, -1, 467, ++ 468, 469, 470, -1, -1, -1, 474, -1, -1, -1, ++ 478, -1, 480, 481, 482, 483, -1, 485, 486, 487, ++ 488, 489, 490, -1, -1, -1, -1, -1, -1, 497, ++ 498, -1, 500, -1, -1, 503, -1, -1, 506, 507, ++ 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, ++ 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, ++ 528, -1, 530, -1, 532, 533, 534, 535, -1, 537, ++ 538, 539, -1, 541, 542, 543, 544, -1, -1, -1, ++ -1, 549, 550, 551, 552, -1, 554, 555, 556, 557, ++ 558, 559, 560, 561, 562, 563, 564, 565, -1, 567, ++ 568, -1, -1, 571, -1, -1, 574, -1, 576, -1, ++ 578, 579, 580, -1, -1, 583, 584, 585, 586, 587, ++ -1, -1, 590, 591, -1, 593, 594, 595, 596, 597, ++ 598, 599, -1, -1, -1, -1, -1, -1, 606, 607, ++ -1, 609, 610, 611, -1, -1, 614, -1, -1, -1, ++ -1, -1, -1, -1, 622, 623, -1, -1, -1, -1, ++ 628, 629, -1, -1, 632, 633, -1, -1, 636, 637, ++ 5, -1, 7, 8, 9, 10, 11, 12, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, 34, ++ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, 53, 54, ++ 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, 100, 101, 102, -1, -1, ++ 105, 106, 107, -1, 109, 110, 111, -1, 113, 114, ++ 115, 116, 117, 118, -1, -1, -1, -1, 123, 124, ++ 125, -1, -1, 128, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, ++ 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ 205, 206, 207, 208, -1, 210, 211, 212, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, 223, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ 235, 236, 237, 238, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, 261, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, 280, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, ++ 305, 306, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, 323, 324, ++ -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, 339, 340, 341, -1, -1, 344, ++ 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, ++ 355, -1, 357, 358, 359, 360, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, 380, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ 395, -1, 397, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, 437, 438, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, 450, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, 509, 510, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, ++ 525, 526, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, 537, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, 554, ++ 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, 583, 584, ++ 585, 586, 587, -1, -1, 590, 591, -1, 593, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, -1, 614, ++ -1, -1, -1, -1, -1, -1, -1, 622, 623, -1, ++ -1, -1, -1, 628, 629, -1, -1, 632, 633, -1, ++ -1, 636, 637, 5, -1, 7, 8, 9, 10, 11, ++ -1, -1, 14, -1, -1, -1, 18, -1, -1, 21, ++ -1, 23, 24, 25, 26, 27, 28, 29, -1, 31, ++ -1, -1, 34, 35, 36, 37, 38, 39, 40, -1, ++ 42, 43, 44, -1, 46, -1, 48, 49, -1, -1, ++ 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, ++ 62, -1, 64, 65, 66, 67, 68, 69, 70, -1, ++ 72, 73, 74, 75, 76, 77, 78, 79, -1, 81, ++ 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, ++ -1, 93, 94, 95, 96, 97, -1, 99, 100, 101, ++ 102, -1, -1, 105, 106, 107, -1, 109, 110, 111, ++ -1, 113, 114, 115, 116, 117, 118, -1, -1, -1, ++ -1, 123, 124, 125, -1, -1, 128, 129, -1, 131, ++ -1, -1, -1, 135, -1, 137, 138, 139, 140, -1, ++ -1, -1, 144, -1, -1, 147, 148, 149, -1, -1, ++ -1, 153, -1, 155, 156, -1, 158, 159, 160, -1, ++ 162, 163, -1, 165, 166, 167, 168, 169, 170, 171, ++ -1, 173, 174, 175, 176, 177, 178, 179, -1, 181, ++ 182, 183, 184, -1, 186, -1, -1, -1, 190, 191, ++ 192, -1, 194, -1, 196, 197, 198, 199, 200, 201, ++ -1, 203, -1, 205, 206, 207, 208, -1, 210, 211, ++ 212, -1, 214, 215, -1, -1, -1, 219, 220, 221, ++ 222, 223, -1, 225, 226, 227, -1, 229, -1, 231, ++ -1, -1, -1, 235, 236, 237, 238, -1, -1, 241, ++ -1, 243, 244, -1, 246, 247, -1, -1, -1, 251, ++ -1, -1, 254, 255, 256, -1, -1, 259, -1, 261, ++ 262, 263, -1, -1, -1, -1, -1, 269, 270, -1, ++ 272, -1, 274, -1, 276, 277, -1, -1, 280, -1, ++ -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, ++ 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, ++ 302, 303, 304, 305, 306, 307, 308, -1, -1, -1, ++ -1, 313, 314, 315, 316, 317, 318, -1, -1, 321, ++ 322, 323, 324, -1, 326, 327, 328, 329, 330, 331, ++ 332, 333, 334, 335, 336, 337, -1, 339, 340, 341, ++ -1, -1, 344, 345, 346, 347, 348, 349, 350, 351, ++ 352, -1, 354, 355, -1, 357, 358, 359, -1, 361, ++ 362, 363, 364, -1, 366, 367, -1, -1, -1, -1, ++ -1, -1, -1, -1, 376, 377, 378, -1, 380, 381, ++ -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, ++ 392, 393, 394, 395, -1, 397, 398, 399, -1, 401, ++ -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, ++ -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, ++ 422, -1, -1, 425, 426, 427, 428, 429, -1, 431, ++ 432, -1, 434, 435, 436, 437, 438, 439, -1, 441, ++ -1, 443, 444, -1, 446, 447, -1, -1, 450, 451, ++ 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, ++ 462, 463, -1, -1, -1, 467, 468, 469, 470, -1, ++ -1, -1, 474, -1, -1, -1, 478, -1, 480, 481, ++ 482, 483, -1, 485, 486, 487, 488, 489, 490, -1, ++ -1, -1, -1, -1, -1, 497, 498, -1, 500, -1, ++ -1, 503, -1, -1, 506, 507, 508, 509, 510, 511, ++ 512, -1, 514, 515, 516, 517, 518, 519, 520, 521, ++ 522, 523, 524, 525, 526, 527, 528, -1, 530, -1, ++ 532, 533, 534, 535, -1, 537, 538, 539, -1, 541, ++ 542, 543, 544, -1, -1, -1, -1, -1, 550, 551, ++ 552, -1, 554, 555, 556, 557, 558, 559, 560, 561, ++ 562, 563, 564, 565, -1, 567, 568, -1, -1, 571, ++ -1, -1, 574, -1, 576, -1, 578, 579, 580, -1, ++ -1, 583, 584, 585, 586, 587, -1, -1, 590, 591, ++ -1, 593, 594, 595, 596, 597, 598, 599, -1, -1, ++ -1, -1, -1, -1, 606, 607, -1, 609, 610, 611, ++ -1, -1, 614, -1, -1, -1, -1, -1, -1, -1, ++ 622, 623, -1, -1, -1, -1, 628, 629, -1, -1, ++ 632, 633, -1, -1, 636, 637, 5, -1, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, 34, 35, 36, 37, 38, ++ 39, 40, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, 53, 54, 55, 56, -1, 58, ++ 59, 60, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, 100, 101, 102, -1, -1, 105, 106, 107, -1, ++ 109, 110, 111, -1, 113, 114, 115, 116, 117, 118, ++ -1, -1, -1, -1, 123, 124, 125, -1, -1, 128, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, 171, -1, 173, 174, 175, 176, 177, 178, ++ 179, -1, 181, 182, 183, 184, -1, 186, -1, -1, ++ -1, 190, 191, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, 205, 206, 207, 208, ++ -1, 210, 211, 212, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, 223, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, 235, 236, 237, 238, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, 261, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, 323, 324, -1, 326, 327, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ 339, 340, 341, -1, -1, 344, 345, 346, 347, 348, ++ 349, 350, 351, 352, -1, 354, 355, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, 380, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, 437, 438, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ 509, 510, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, 537, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, 554, 555, 556, 557, 558, ++ 559, 560, 561, 562, 563, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, 583, 584, 585, 586, 587, -1, ++ -1, 590, 591, -1, 593, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, -1, 614, -1, -1, -1, -1, ++ -1, -1, -1, 622, 623, -1, -1, -1, -1, 628, ++ 629, -1, -1, 632, 633, -1, -1, 636, 637, 5, ++ -1, 7, 8, 9, 10, 11, -1, -1, 14, -1, ++ -1, -1, 18, -1, -1, 21, -1, 23, 24, 25, ++ 26, 27, 28, 29, -1, 31, -1, -1, 34, 35, ++ 36, 37, 38, 39, 40, -1, 42, 43, 44, -1, ++ 46, -1, 48, 49, -1, -1, 52, 53, 54, 55, ++ 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, ++ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, ++ 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, ++ 86, 87, 88, -1, 90, 91, -1, 93, 94, 95, ++ 96, 97, -1, 99, 100, 101, 102, -1, -1, 105, ++ 106, 107, -1, 109, 110, 111, -1, 113, 114, 115, ++ 116, 117, 118, -1, -1, -1, -1, 123, 124, 125, ++ -1, -1, 128, 129, -1, 131, -1, -1, -1, 135, ++ -1, 137, 138, 139, 140, -1, -1, -1, 144, -1, ++ -1, 147, 148, 149, -1, -1, -1, 153, -1, 155, ++ 156, -1, 158, 159, 160, -1, 162, 163, -1, 165, ++ 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, ++ 176, 177, 178, 179, -1, 181, 182, 183, 184, -1, ++ 186, -1, -1, -1, 190, 191, 192, -1, 194, -1, ++ 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, ++ 206, 207, 208, -1, 210, 211, 212, -1, 214, 215, ++ -1, -1, -1, 219, 220, 221, 222, 223, -1, 225, ++ 226, 227, -1, 229, -1, 231, -1, -1, -1, 235, ++ 236, 237, 238, -1, -1, 241, -1, 243, 244, -1, ++ 246, 247, -1, -1, -1, 251, -1, -1, 254, 255, ++ 256, -1, -1, 259, -1, 261, 262, 263, -1, -1, ++ -1, -1, -1, 269, 270, -1, 272, -1, 274, -1, ++ 276, 277, -1, -1, 280, -1, -1, -1, 284, 285, ++ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, ++ 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, ++ 306, 307, 308, -1, -1, -1, -1, 313, 314, 315, ++ 316, 317, 318, -1, -1, 321, 322, 323, 324, -1, ++ 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, ++ 336, 337, -1, 339, 340, 341, -1, -1, 344, 345, ++ 346, 347, 348, 349, 350, 351, 352, -1, 354, 355, ++ -1, 357, 358, 359, -1, 361, 362, 363, 364, -1, ++ 366, 367, -1, -1, -1, -1, -1, -1, -1, -1, ++ 376, 377, 378, -1, 380, 381, -1, 383, 384, 385, ++ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, ++ -1, 397, 398, 399, -1, 401, -1, 403, 404, 405, ++ 406, 407, -1, 409, 410, 411, -1, -1, 414, -1, ++ -1, -1, 418, 419, 420, 421, 422, -1, -1, 425, ++ 426, 427, 428, 429, -1, 431, 432, -1, 434, 435, ++ 436, 437, 438, 439, -1, 441, -1, 443, 444, -1, ++ 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, ++ 456, 457, 458, 459, 460, -1, 462, 463, -1, -1, ++ -1, 467, 468, 469, 470, -1, -1, -1, 474, -1, ++ -1, -1, 478, -1, 480, 481, 482, 483, -1, 485, ++ 486, 487, 488, 489, 490, -1, -1, -1, -1, -1, ++ -1, 497, 498, -1, 500, -1, -1, 503, -1, -1, ++ 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, ++ 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, ++ 526, 527, 528, -1, 530, -1, 532, 533, 534, 535, ++ -1, 537, 538, 539, -1, 541, 542, 543, 544, -1, ++ -1, -1, -1, -1, 550, 551, 552, -1, 554, 555, ++ 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, ++ -1, 567, 568, -1, -1, 571, -1, -1, 574, -1, ++ 576, -1, 578, 579, 580, -1, -1, 583, 584, 585, ++ 586, 587, -1, -1, 590, 591, -1, 593, 594, 595, ++ 596, 597, 598, 599, -1, -1, -1, -1, -1, -1, ++ 606, 607, -1, 609, 610, 611, -1, -1, 614, -1, ++ -1, -1, -1, -1, -1, -1, 622, 623, -1, -1, ++ -1, -1, 628, 629, -1, -1, 632, 633, -1, -1, ++ 636, 637, 5, -1, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, 100, 101, 102, ++ -1, -1, 105, 106, 107, -1, 109, 110, 111, -1, ++ 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, ++ 123, 124, 125, -1, -1, 128, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, 171, -1, ++ 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, ++ 183, 184, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, 205, 206, 207, 208, -1, 210, 211, 212, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ 223, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, 235, 236, 237, 238, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, 261, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, 280, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, ++ 303, 304, 305, 306, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ 323, 324, -1, 326, 327, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, 339, 340, 341, -1, ++ -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, ++ -1, 354, 355, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, 380, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, 395, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, 437, 438, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, 450, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, 509, 510, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, 520, 521, 522, ++ 523, 524, 525, 526, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, 537, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, 554, 555, 556, 557, 558, 559, 560, 561, 562, ++ 563, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ 583, 584, 585, 586, 587, -1, -1, 590, 591, -1, ++ 593, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ -1, 614, -1, -1, -1, -1, -1, -1, -1, 622, ++ 623, -1, -1, -1, -1, 628, 629, -1, -1, 632, ++ 633, -1, -1, 636, 637, 5, -1, 7, 8, 9, ++ 10, 11, -1, -1, 14, -1, -1, -1, 18, -1, ++ -1, 21, -1, 23, 24, 25, 26, 27, 28, 29, ++ -1, 31, -1, -1, 34, 35, 36, 37, 38, 39, ++ 40, -1, 42, 43, 44, -1, 46, -1, 48, 49, ++ -1, -1, 52, 53, 54, 55, 56, -1, 58, 59, ++ 60, 61, 62, -1, 64, 65, 66, 67, 68, 69, ++ 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, ++ -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, ++ 90, 91, -1, 93, 94, 95, 96, 97, -1, 99, ++ 100, 101, 102, -1, -1, 105, 106, 107, -1, 109, ++ 110, 111, -1, 113, 114, 115, 116, 117, 118, -1, ++ -1, -1, -1, 123, 124, 125, -1, -1, 128, 129, ++ -1, 131, -1, -1, -1, 135, -1, 137, 138, 139, ++ 140, -1, -1, -1, 144, -1, -1, 147, 148, 149, ++ -1, -1, -1, 153, -1, 155, 156, -1, 158, 159, ++ 160, -1, 162, 163, -1, 165, 166, 167, 168, 169, ++ 170, 171, -1, 173, 174, 175, 176, 177, 178, 179, ++ -1, 181, 182, 183, 184, -1, 186, -1, -1, -1, ++ 190, -1, 192, -1, 194, -1, 196, 197, 198, 199, ++ 200, 201, -1, 203, -1, 205, 206, 207, 208, -1, ++ 210, 211, 212, -1, 214, 215, -1, -1, -1, 219, ++ 220, 221, 222, 223, -1, 225, 226, 227, -1, 229, ++ -1, 231, -1, -1, -1, 235, 236, 237, 238, -1, ++ -1, 241, -1, 243, 244, -1, 246, 247, -1, -1, ++ -1, 251, -1, -1, 254, 255, 256, -1, -1, 259, ++ -1, 261, 262, 263, -1, -1, -1, -1, -1, 269, ++ 270, -1, 272, -1, 274, -1, 276, 277, -1, -1, ++ 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, ++ 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, ++ 300, 301, 302, 303, 304, 305, 306, 307, 308, -1, ++ -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, ++ -1, 321, 322, 323, 324, -1, 326, 327, 328, 329, ++ 330, 331, 332, 333, 334, 335, 336, 337, -1, 339, ++ 340, 341, -1, -1, 344, 345, 346, 347, 348, 349, ++ 350, 351, 352, -1, 354, 355, -1, 357, 358, 359, ++ -1, 361, 362, 363, 364, -1, 366, 367, -1, -1, ++ -1, -1, -1, -1, -1, -1, 376, 377, 378, -1, ++ 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, ++ 390, 391, 392, 393, 394, 395, -1, 397, 398, 399, ++ -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, ++ 410, 411, -1, -1, 414, -1, -1, -1, 418, 419, ++ 420, 421, 422, -1, -1, 425, 426, 427, 428, 429, ++ -1, 431, 432, -1, 434, 435, 436, 437, 438, 439, ++ -1, 441, -1, 443, 444, -1, 446, 447, -1, -1, ++ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, ++ 460, -1, 462, 463, -1, -1, -1, 467, 468, 469, ++ 470, -1, -1, -1, 474, -1, -1, -1, 478, -1, ++ 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, ++ 490, -1, -1, -1, -1, -1, -1, 497, 498, -1, ++ 500, -1, -1, 503, -1, -1, 506, 507, 508, 509, ++ 510, 511, 512, -1, 514, 515, 516, 517, 518, 519, ++ 520, 521, 522, 523, 524, 525, 526, 527, 528, -1, ++ 530, -1, 532, 533, 534, 535, -1, 537, 538, 539, ++ -1, 541, 542, 543, 544, -1, -1, -1, -1, -1, ++ 550, 551, 552, -1, 554, 555, 556, 557, 558, 559, ++ 560, 561, 562, 563, 564, 565, -1, 567, 568, -1, ++ -1, 571, -1, -1, 574, -1, 576, -1, 578, 579, ++ 580, -1, -1, 583, 584, 585, 586, 587, -1, -1, ++ 590, 591, -1, 593, 594, 595, 596, 597, 598, 599, ++ -1, -1, -1, -1, -1, -1, 606, 607, -1, 609, ++ 610, 611, -1, -1, 614, -1, -1, -1, -1, -1, ++ -1, -1, 622, 623, -1, -1, -1, -1, 628, 629, ++ -1, -1, 632, 633, -1, -1, 636, 637, 5, -1, ++ 7, 8, 9, 10, 11, 12, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, 34, 35, 36, ++ 37, 38, 39, 40, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, 53, 54, 55, 56, ++ -1, 58, 59, 60, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, 100, 101, 102, -1, -1, 105, 106, ++ 107, -1, 109, 110, 111, -1, 113, 114, 115, 116, ++ 117, 118, -1, -1, -1, -1, 123, 124, 125, -1, ++ -1, 128, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, 171, -1, 173, 174, 175, 176, ++ 177, 178, 179, -1, 181, 182, 183, 184, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, 205, 206, ++ 207, 208, -1, 210, 211, 212, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, 223, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, 235, 236, ++ 237, 238, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, 261, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, 280, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, 323, 324, -1, 326, ++ 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, 339, 340, 341, -1, -1, 344, 345, 346, ++ 347, 348, -1, 350, 351, 352, -1, 354, 355, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, 380, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, 395, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ 437, 438, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, 450, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, 509, 510, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ 537, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, 554, 555, 556, ++ 557, 558, 559, 560, 561, 562, 563, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, 583, 584, 585, 586, ++ 587, -1, -1, 590, 591, -1, 593, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, -1, 614, -1, -1, ++ -1, -1, -1, -1, -1, 622, 623, -1, -1, -1, ++ -1, 628, 629, -1, -1, 632, 633, -1, -1, 636, ++ 637, 5, -1, 7, 8, 9, 10, 11, -1, -1, ++ 14, -1, -1, -1, 18, -1, -1, 21, -1, 23, ++ 24, 25, 26, 27, 28, 29, -1, 31, -1, -1, ++ 34, 35, 36, 37, 38, 39, 40, -1, 42, 43, ++ 44, -1, 46, -1, 48, 49, -1, -1, 52, 53, ++ 54, 55, 56, -1, 58, 59, 60, 61, 62, -1, ++ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, ++ 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, ++ 84, 85, 86, 87, 88, -1, 90, 91, -1, 93, ++ 94, 95, 96, 97, -1, 99, 100, 101, 102, -1, ++ -1, 105, 106, 107, -1, 109, 110, 111, -1, 113, ++ 114, 115, 116, 117, 118, -1, -1, -1, -1, 123, ++ 124, 125, -1, -1, 128, 129, -1, 131, -1, -1, ++ -1, 135, -1, 137, 138, 139, 140, -1, -1, -1, ++ 144, -1, -1, 147, 148, 149, -1, -1, -1, 153, ++ -1, 155, 156, -1, 158, 159, 160, -1, 162, 163, ++ -1, 165, 166, 167, 168, 169, 170, 171, -1, 173, ++ 174, 175, 176, 177, 178, 179, -1, 181, 182, 183, ++ 184, -1, 186, -1, -1, -1, 190, -1, 192, -1, ++ 194, -1, 196, 197, 198, 199, 200, 201, -1, 203, ++ -1, 205, 206, 207, 208, -1, 210, 211, 212, -1, ++ 214, 215, -1, -1, -1, 219, 220, 221, 222, 223, ++ -1, 225, 226, 227, -1, 229, -1, 231, -1, -1, ++ -1, 235, 236, 237, 238, -1, -1, 241, -1, 243, ++ 244, -1, 246, 247, -1, -1, -1, 251, -1, -1, ++ 254, 255, 256, -1, -1, 259, -1, 261, 262, 263, ++ -1, -1, -1, -1, -1, 269, 270, -1, 272, -1, ++ 274, -1, 276, 277, -1, -1, 280, -1, -1, -1, ++ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, ++ 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, ++ 304, 305, 306, 307, 308, -1, -1, -1, -1, 313, ++ 314, 315, 316, 317, 318, -1, -1, 321, 322, 323, ++ 324, -1, 326, 327, 328, 329, 330, 331, 332, 333, ++ 334, 335, 336, 337, -1, 339, 340, 341, -1, -1, ++ 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, ++ 354, 355, -1, 357, 358, 359, -1, 361, 362, 363, ++ 364, -1, 366, 367, -1, -1, -1, -1, -1, -1, ++ -1, -1, 376, 377, 378, -1, 380, 381, -1, 383, ++ 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, ++ 394, 395, -1, 397, 398, 399, -1, 401, -1, 403, ++ 404, 405, 406, 407, -1, 409, 410, 411, -1, -1, ++ 414, -1, -1, -1, 418, 419, 420, 421, 422, -1, ++ -1, 425, 426, 427, 428, 429, -1, 431, 432, -1, ++ 434, 435, 436, 437, 438, 439, -1, 441, -1, 443, ++ 444, -1, 446, 447, -1, -1, 450, 451, 452, 453, ++ 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, ++ -1, -1, -1, 467, 468, 469, 470, -1, -1, -1, ++ 474, -1, -1, -1, 478, -1, 480, 481, 482, 483, ++ -1, 485, 486, 487, 488, 489, 490, -1, -1, -1, ++ -1, -1, -1, 497, 498, -1, 500, -1, -1, 503, ++ -1, -1, 506, 507, 508, 509, 510, 511, 512, -1, ++ 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, ++ 524, 525, 526, 527, 528, -1, 530, -1, 532, 533, ++ 534, 535, -1, 537, 538, 539, -1, 541, 542, 543, ++ 544, -1, -1, -1, -1, -1, 550, 551, 552, -1, ++ 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, ++ 564, 565, -1, 567, 568, -1, -1, 571, -1, -1, ++ 574, -1, 576, -1, 578, 579, 580, -1, -1, 583, ++ 584, 585, 586, 587, -1, -1, 590, 591, -1, 593, ++ 594, 595, 596, 597, 598, 599, -1, -1, -1, -1, ++ -1, -1, 606, 607, -1, 609, 610, 611, -1, -1, ++ 614, -1, -1, -1, -1, -1, -1, -1, 622, 623, ++ -1, -1, -1, -1, 628, 629, -1, -1, 632, 633, ++ -1, -1, 636, 637, 5, -1, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, 34, 35, 36, 37, 38, 39, 40, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, 53, 54, 55, 56, -1, 58, 59, 60, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, 100, ++ 101, 102, -1, -1, 105, 106, 107, -1, 109, 110, ++ 111, -1, 113, 114, 115, 116, 117, 118, -1, -1, ++ -1, -1, 123, 124, 125, -1, -1, 128, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ 171, -1, 173, 174, 175, 176, 177, 178, 179, -1, ++ 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, 205, 206, 207, 208, -1, 210, ++ 211, 212, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, 223, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, 235, 236, 237, 238, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ 261, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, 280, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ 301, 302, 303, 304, 305, 306, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, 323, 324, -1, 326, 327, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, 339, 340, ++ 341, -1, -1, 344, 345, 346, 347, 348, 349, 350, ++ 351, 352, -1, 354, 355, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, 380, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, 395, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, 437, 438, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, 450, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, 509, 510, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, 520, ++ 521, 522, 523, 524, 525, 526, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, 537, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, 554, 555, 556, 557, 558, 559, 560, ++ 561, 562, 563, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, 583, 584, 585, 586, 587, -1, -1, 590, ++ 591, -1, 593, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, -1, 614, -1, -1, -1, -1, -1, -1, ++ -1, 622, 623, -1, -1, -1, -1, 628, 629, -1, ++ -1, 632, 633, -1, -1, 636, 637, 5, -1, 7, ++ 8, 9, 10, 11, -1, -1, 14, -1, -1, -1, ++ 18, -1, -1, 21, -1, 23, 24, 25, 26, 27, ++ 28, 29, -1, 31, -1, -1, 34, 35, 36, 37, ++ 38, 39, 40, -1, 42, 43, 44, -1, 46, -1, ++ 48, 49, -1, -1, 52, 53, 54, 55, 56, -1, ++ 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, ++ 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, ++ 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, ++ 88, -1, 90, 91, -1, 93, 94, 95, 96, 97, ++ -1, 99, 100, 101, 102, -1, -1, 105, 106, 107, ++ -1, 109, 110, 111, -1, 113, 114, 115, 116, 117, ++ 118, -1, -1, -1, -1, 123, 124, 125, -1, -1, ++ 128, 129, -1, 131, -1, -1, -1, 135, -1, 137, ++ 138, 139, 140, -1, -1, -1, 144, -1, -1, 147, ++ 148, 149, -1, -1, -1, 153, -1, 155, 156, -1, ++ 158, 159, 160, -1, 162, 163, -1, 165, 166, 167, ++ 168, 169, 170, 171, -1, 173, 174, 175, 176, 177, ++ 178, 179, -1, 181, 182, 183, 184, -1, 186, -1, ++ -1, -1, 190, -1, 192, -1, 194, -1, 196, 197, ++ 198, 199, 200, 201, -1, 203, -1, 205, 206, 207, ++ 208, -1, 210, 211, 212, -1, 214, 215, -1, -1, ++ -1, 219, 220, 221, 222, 223, -1, 225, 226, 227, ++ -1, 229, -1, 231, -1, -1, -1, 235, 236, 237, ++ 238, -1, -1, 241, -1, 243, 244, -1, 246, 247, ++ -1, -1, -1, 251, -1, -1, 254, 255, 256, -1, ++ -1, 259, -1, 261, 262, 263, -1, -1, -1, -1, ++ -1, 269, 270, -1, 272, -1, 274, -1, 276, 277, ++ -1, -1, 280, -1, -1, -1, 284, 285, 286, 287, ++ 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, ++ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, ++ 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, ++ 318, -1, -1, 321, 322, 323, 324, -1, 326, 327, ++ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, ++ -1, 339, 340, 341, -1, -1, 344, 345, 346, 347, ++ 348, 349, 350, 351, 352, -1, 354, 355, -1, 357, ++ 358, 359, -1, 361, 362, 363, 364, -1, 366, 367, ++ -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, ++ 378, -1, 380, 381, -1, 383, 384, 385, 386, 387, ++ 388, 389, 390, 391, 392, 393, 394, 395, -1, 397, ++ 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, ++ -1, 409, 410, 411, -1, -1, 414, -1, -1, -1, ++ 418, 419, 420, 421, 422, -1, -1, 425, 426, 427, ++ 428, 429, -1, 431, 432, -1, 434, 435, 436, 437, ++ 438, 439, -1, 441, -1, 443, 444, -1, 446, 447, ++ -1, -1, 450, 451, 452, 453, 454, 455, 456, 457, ++ 458, 459, 460, -1, 462, 463, -1, -1, -1, 467, ++ 468, 469, 470, -1, -1, -1, 474, -1, -1, -1, ++ 478, -1, 480, 481, 482, 483, -1, 485, 486, 487, ++ 488, 489, 490, -1, -1, -1, -1, -1, -1, 497, ++ 498, -1, 500, -1, -1, 503, -1, -1, 506, 507, ++ 508, 509, 510, 511, 512, -1, 514, 515, 516, 517, ++ 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, ++ 528, -1, 530, -1, 532, 533, 534, 535, -1, 537, ++ 538, 539, -1, 541, 542, 543, 544, -1, -1, -1, ++ -1, -1, 550, 551, 552, -1, 554, 555, 556, 557, ++ 558, 559, 560, 561, 562, 563, 564, 565, -1, 567, ++ 568, -1, -1, 571, -1, -1, 574, -1, 576, -1, ++ 578, 579, 580, -1, -1, 583, 584, 585, 586, 587, ++ -1, -1, 590, 591, -1, 593, 594, 595, 596, 597, ++ 598, 599, -1, -1, -1, -1, -1, -1, 606, 607, ++ -1, 609, 610, 611, -1, -1, 614, -1, -1, -1, ++ -1, -1, -1, -1, 622, 623, -1, -1, -1, -1, ++ 628, 629, -1, -1, 632, 633, -1, -1, 636, 637, ++ 5, -1, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, 34, ++ 35, 36, 37, 38, 39, 40, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, 53, 54, ++ 55, 56, -1, 58, 59, 60, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, 100, 101, 102, -1, -1, ++ 105, 106, 107, -1, 109, 110, 111, -1, 113, 114, ++ 115, 116, 117, 118, -1, -1, -1, -1, 123, 124, ++ 125, -1, -1, 128, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, ++ 175, 176, 177, 178, 179, -1, 181, 182, 183, 184, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ 205, 206, 207, 208, -1, 210, 211, 212, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, 223, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ 235, 236, 237, 238, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, 261, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, 280, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, ++ 305, 306, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, 323, 324, ++ -1, 326, 327, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, 339, 340, 341, -1, -1, 344, ++ 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, ++ 355, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, 380, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ 395, -1, 397, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, 437, 438, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, 450, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, 509, 510, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, ++ 525, 526, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, 537, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, 554, ++ 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, 583, 584, ++ 585, 586, 587, -1, -1, 590, 591, -1, 593, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, -1, 614, ++ -1, -1, -1, -1, -1, -1, -1, 622, 623, -1, ++ -1, -1, -1, 628, 629, -1, -1, 632, 633, -1, ++ -1, 636, 637, 5, -1, 7, 8, 9, 10, 11, ++ -1, -1, 14, -1, -1, -1, 18, -1, -1, 21, ++ -1, 23, 24, 25, 26, 27, 28, 29, -1, 31, ++ -1, -1, 34, 35, 36, 37, 38, 39, 40, -1, ++ 42, 43, 44, -1, 46, -1, 48, 49, -1, -1, ++ 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, ++ 62, -1, 64, 65, 66, 67, 68, 69, 70, -1, ++ 72, 73, 74, 75, 76, 77, 78, 79, -1, 81, ++ 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, ++ -1, 93, 94, 95, 96, 97, -1, 99, 100, 101, ++ 102, -1, -1, 105, 106, 107, -1, 109, 110, 111, ++ -1, 113, 114, 115, 116, 117, 118, -1, -1, -1, ++ -1, 123, 124, 125, -1, -1, 128, 129, -1, 131, ++ -1, -1, -1, 135, -1, 137, 138, 139, 140, -1, ++ -1, -1, 144, -1, -1, 147, 148, 149, -1, -1, ++ -1, 153, -1, 155, 156, -1, 158, 159, 160, -1, ++ 162, 163, -1, 165, 166, 167, 168, 169, 170, 171, ++ -1, 173, 174, 175, 176, 177, 178, 179, -1, 181, ++ 182, 183, 184, -1, 186, -1, -1, -1, 190, -1, ++ 192, -1, 194, -1, 196, 197, 198, 199, 200, 201, ++ -1, 203, -1, 205, 206, 207, 208, -1, 210, 211, ++ 212, -1, 214, 215, -1, -1, -1, 219, 220, 221, ++ 222, 223, -1, 225, 226, 227, -1, 229, -1, 231, ++ -1, -1, -1, 235, 236, 237, 238, -1, -1, 241, ++ -1, 243, 244, -1, 246, 247, -1, -1, -1, 251, ++ -1, -1, 254, 255, 256, -1, -1, 259, -1, 261, ++ 262, 263, -1, -1, -1, -1, -1, 269, 270, -1, ++ 272, -1, 274, -1, 276, 277, -1, -1, 280, -1, ++ -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, ++ 292, 293, 294, 295, 296, -1, 298, 299, 300, 301, ++ 302, 303, 304, 305, 306, 307, 308, 309, -1, -1, ++ -1, 313, 314, 315, 316, 317, 318, -1, -1, 321, ++ 322, 323, 324, -1, 326, 327, 328, 329, 330, 331, ++ 332, 333, 334, 335, 336, 337, -1, 339, 340, 341, ++ -1, -1, 344, 345, 346, 347, 348, -1, 350, 351, ++ 352, -1, 354, 355, -1, 357, 358, 359, -1, 361, ++ 362, 363, 364, -1, 366, 367, -1, -1, -1, -1, ++ -1, -1, -1, -1, 376, 377, 378, -1, 380, 381, ++ -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, ++ 392, 393, 394, 395, -1, 397, 398, 399, -1, 401, ++ -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, ++ -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, ++ 422, -1, -1, 425, 426, 427, 428, 429, -1, 431, ++ 432, -1, 434, 435, 436, 437, 438, 439, -1, 441, ++ -1, 443, 444, -1, 446, 447, -1, -1, 450, 451, ++ 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, ++ 462, 463, -1, -1, -1, 467, 468, 469, 470, -1, ++ -1, -1, 474, -1, -1, -1, 478, -1, 480, 481, ++ 482, 483, -1, 485, 486, 487, 488, 489, 490, -1, ++ -1, -1, -1, -1, -1, 497, 498, -1, 500, -1, ++ -1, 503, -1, -1, 506, 507, 508, 509, 510, 511, ++ 512, -1, 514, 515, 516, 517, 518, 519, 520, 521, ++ 522, 523, 524, 525, 526, 527, 528, -1, 530, -1, ++ 532, 533, 534, 535, -1, 537, 538, 539, -1, 541, ++ 542, 543, 544, -1, -1, -1, -1, -1, 550, 551, ++ 552, -1, 554, 555, 556, 557, 558, 559, 560, 561, ++ 562, 563, 564, 565, -1, 567, 568, -1, -1, 571, ++ -1, -1, 574, -1, 576, -1, 578, 579, 580, -1, ++ -1, 583, 584, 585, 586, 587, -1, -1, 590, 591, ++ -1, 593, 594, 595, 596, 597, 598, 599, -1, -1, ++ -1, -1, -1, -1, 606, 607, -1, 609, 610, 611, ++ -1, -1, 614, -1, -1, -1, -1, -1, -1, -1, ++ 622, 623, -1, -1, -1, -1, 628, 629, -1, -1, ++ 632, 633, -1, -1, 636, 637, 5, -1, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, 34, 35, 36, 37, 38, ++ 39, 40, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, 53, 54, 55, 56, -1, 58, ++ 59, 60, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, 100, 101, 102, -1, -1, 105, 106, 107, -1, ++ 109, 110, 111, -1, 113, 114, 115, 116, 117, 118, ++ -1, -1, -1, -1, 123, 124, 125, -1, -1, 128, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, 171, -1, 173, 174, 175, 176, 177, 178, ++ 179, -1, 181, 182, 183, 184, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, 205, 206, 207, 208, ++ -1, 210, 211, 212, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, 223, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, 235, 236, 237, 238, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, 261, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, 323, 324, -1, 326, 327, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ 339, 340, 341, -1, -1, 344, 345, 346, 347, 348, ++ -1, 350, 351, 352, -1, 354, 355, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, 380, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, 395, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, 437, 438, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, 450, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ 509, 510, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, 537, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, 554, 555, 556, 557, 558, ++ 559, 560, 561, 562, 563, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, 583, 584, 585, 586, 587, -1, ++ -1, 590, 591, -1, 593, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, -1, 614, -1, -1, -1, -1, ++ -1, -1, -1, 622, 623, -1, -1, -1, -1, 628, ++ 629, -1, -1, 632, 633, -1, -1, 636, 637, 5, ++ -1, 7, 8, 9, 10, 11, -1, -1, 14, -1, ++ -1, -1, 18, -1, -1, 21, -1, 23, 24, 25, ++ 26, 27, 28, 29, -1, 31, -1, -1, 34, 35, ++ 36, 37, 38, 39, 40, -1, 42, 43, 44, -1, ++ 46, -1, 48, 49, -1, -1, 52, 53, 54, 55, ++ 56, -1, 58, 59, 60, 61, 62, -1, 64, 65, ++ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, ++ 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, ++ 86, 87, 88, -1, 90, 91, -1, 93, 94, 95, ++ 96, 97, -1, 99, 100, 101, 102, -1, -1, 105, ++ 106, 107, -1, 109, 110, 111, -1, 113, 114, 115, ++ 116, 117, 118, -1, -1, -1, -1, 123, 124, 125, ++ -1, -1, 128, 129, -1, 131, -1, -1, -1, 135, ++ -1, 137, 138, 139, 140, -1, -1, -1, 144, -1, ++ -1, 147, 148, 149, -1, -1, -1, 153, -1, 155, ++ 156, -1, 158, 159, 160, -1, 162, 163, -1, 165, ++ 166, 167, 168, 169, 170, 171, -1, 173, 174, 175, ++ 176, 177, 178, 179, -1, 181, 182, 183, 184, -1, ++ 186, -1, -1, -1, 190, -1, 192, -1, 194, -1, ++ 196, 197, 198, 199, 200, 201, -1, 203, -1, 205, ++ 206, 207, 208, -1, 210, 211, 212, -1, 214, 215, ++ -1, -1, -1, 219, 220, 221, 222, 223, -1, 225, ++ 226, 227, -1, 229, -1, 231, -1, -1, -1, 235, ++ 236, 237, 238, -1, -1, 241, -1, 243, 244, -1, ++ 246, 247, -1, -1, -1, 251, -1, -1, 254, 255, ++ 256, -1, -1, 259, -1, 261, 262, 263, -1, -1, ++ -1, -1, -1, 269, 270, -1, 272, -1, 274, -1, ++ 276, 277, -1, -1, 280, -1, -1, -1, 284, 285, ++ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, ++ 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, ++ 306, 307, 308, -1, -1, -1, -1, 313, 314, 315, ++ 316, 317, 318, -1, -1, 321, 322, 323, 324, -1, ++ 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, ++ 336, 337, -1, 339, 340, 341, -1, -1, 344, 345, ++ 346, 347, 348, -1, 350, 351, 352, -1, 354, 355, ++ -1, 357, 358, 359, -1, 361, 362, 363, 364, -1, ++ 366, 367, -1, -1, -1, -1, -1, -1, -1, -1, ++ 376, 377, 378, -1, 380, 381, -1, 383, 384, 385, ++ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, ++ -1, 397, 398, 399, -1, 401, -1, 403, 404, 405, ++ 406, 407, -1, 409, 410, 411, -1, -1, 414, -1, ++ -1, -1, 418, 419, 420, 421, 422, -1, -1, 425, ++ 426, 427, 428, 429, -1, 431, 432, -1, 434, 435, ++ 436, 437, 438, 439, -1, 441, -1, 443, 444, -1, ++ 446, 447, -1, -1, 450, 451, 452, 453, 454, 455, ++ 456, 457, 458, 459, 460, -1, 462, 463, -1, -1, ++ -1, 467, 468, 469, 470, -1, -1, -1, 474, -1, ++ -1, -1, 478, -1, 480, 481, 482, 483, -1, 485, ++ 486, 487, 488, 489, 490, -1, -1, -1, -1, -1, ++ -1, 497, 498, -1, 500, -1, -1, 503, -1, -1, ++ 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, ++ 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, ++ 526, 527, 528, -1, 530, -1, 532, 533, 534, 535, ++ -1, 537, 538, 539, -1, 541, 542, 543, 544, -1, ++ -1, -1, -1, -1, 550, 551, 552, -1, 554, 555, ++ 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, ++ -1, 567, 568, -1, -1, 571, -1, -1, 574, -1, ++ 576, -1, 578, 579, 580, -1, -1, 583, 584, 585, ++ 586, 587, -1, -1, 590, 591, -1, 593, 594, 595, ++ 596, 597, 598, 599, -1, -1, -1, -1, -1, -1, ++ 606, 607, -1, 609, 610, 611, -1, -1, 614, -1, ++ -1, -1, -1, -1, -1, -1, 622, 623, -1, -1, ++ -1, -1, 628, 629, -1, -1, 632, 633, -1, -1, ++ 636, 637, 5, -1, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, 34, 35, 36, 37, 38, 39, 40, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, 100, 101, 102, ++ -1, -1, 105, 106, 107, -1, 109, 110, 111, -1, ++ 113, 114, 115, 116, 117, 118, -1, -1, -1, -1, ++ 123, 124, 125, -1, -1, 128, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, 171, -1, ++ 173, 174, 175, 176, 177, 178, 179, -1, 181, 182, ++ 183, 184, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, 205, 206, 207, 208, -1, 210, 211, 212, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ 223, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, 235, 236, 237, 238, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, 261, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, 280, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, ++ 303, 304, 305, 306, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ 323, 324, -1, 326, 327, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, 339, 340, 341, -1, ++ -1, 344, 345, 346, 347, 348, -1, 350, 351, 352, ++ -1, 354, 355, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, 380, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, 395, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, 437, 438, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, 450, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, 509, 510, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, 520, 521, 522, ++ 523, 524, 525, 526, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, 537, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, 554, 555, 556, 557, 558, 559, 560, 561, 562, ++ 563, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ 583, 584, 585, 586, 587, -1, -1, 590, 591, -1, ++ 593, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ -1, 614, -1, -1, -1, -1, -1, -1, -1, 622, ++ 623, -1, -1, -1, -1, 628, 629, -1, -1, 632, ++ 633, -1, -1, 636, 637, 5, -1, 7, 8, 9, ++ 10, 11, -1, -1, 14, -1, -1, -1, 18, -1, ++ -1, 21, -1, 23, 24, 25, 26, 27, 28, 29, ++ -1, 31, -1, -1, -1, 35, 36, -1, -1, 39, ++ -1, -1, 42, 43, 44, -1, 46, -1, 48, 49, ++ -1, -1, 52, -1, -1, 55, 56, -1, 58, 59, ++ -1, 61, 62, -1, 64, 65, 66, 67, 68, 69, ++ 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, ++ -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, ++ 90, 91, -1, 93, 94, 95, 96, 97, -1, 99, ++ -1, -1, 102, -1, -1, 105, -1, -1, -1, 109, ++ -1, -1, -1, 113, 114, 115, -1, -1, 118, -1, ++ -1, -1, -1, 123, 124, 125, -1, -1, -1, 129, ++ -1, 131, -1, -1, -1, 135, -1, 137, 138, 139, ++ 140, -1, -1, -1, 144, -1, -1, 147, 148, 149, ++ -1, -1, -1, 153, -1, 155, 156, -1, 158, 159, ++ 160, -1, 162, 163, -1, 165, 166, 167, 168, 169, ++ 170, -1, -1, 173, 174, 175, -1, 177, 178, 179, ++ -1, 181, 182, 183, 184, -1, 186, -1, -1, -1, ++ 190, -1, 192, -1, 194, -1, 196, 197, 198, 199, ++ 200, 201, -1, 203, -1, -1, 206, 207, 208, -1, ++ 210, 211, 212, -1, 214, 215, -1, -1, -1, 219, ++ 220, 221, 222, -1, -1, 225, 226, 227, -1, 229, ++ -1, 231, -1, -1, -1, -1, 236, 237, -1, -1, ++ -1, 241, -1, 243, 244, -1, 246, 247, -1, -1, ++ -1, 251, -1, -1, 254, 255, 256, -1, -1, 259, ++ -1, -1, 262, 263, -1, -1, -1, -1, -1, 269, ++ 270, -1, 272, -1, 274, -1, 276, 277, -1, -1, ++ 280, -1, -1, -1, 284, 285, 286, 287, 288, 289, ++ 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, ++ 300, -1, 302, 303, 304, 305, -1, 307, 308, -1, ++ -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, ++ -1, 321, 322, -1, 324, -1, 326, -1, 328, 329, ++ 330, 331, 332, 333, 334, 335, 336, 337, -1, 339, ++ 340, 341, -1, -1, 344, 345, 346, 347, -1, -1, ++ -1, 351, 352, -1, 354, 355, -1, 357, 358, 359, ++ -1, 361, 362, 363, 364, -1, 366, 367, -1, -1, ++ -1, -1, -1, -1, -1, -1, 376, 377, 378, -1, ++ -1, 381, -1, 383, 384, 385, 386, 387, 388, 389, ++ 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, ++ -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, ++ 410, 411, -1, -1, 414, -1, -1, -1, 418, 419, ++ 420, 421, 422, -1, -1, 425, 426, 427, 428, 429, ++ -1, 431, 432, -1, 434, 435, 436, -1, -1, 439, ++ -1, 441, -1, 443, 444, -1, 446, 447, -1, -1, ++ -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, ++ 460, -1, 462, 463, -1, -1, -1, 467, 468, 469, ++ 470, -1, -1, -1, 474, -1, -1, -1, 478, -1, ++ 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, ++ 490, -1, -1, -1, -1, -1, -1, 497, 498, -1, ++ 500, -1, -1, 503, -1, -1, 506, 507, 508, -1, ++ -1, 511, 512, -1, 514, 515, 516, 517, 518, 519, ++ -1, -1, 522, 523, 524, 525, -1, 527, 528, -1, ++ 530, -1, 532, 533, 534, 535, -1, 537, 538, 539, ++ -1, 541, 542, 543, 544, -1, -1, -1, -1, -1, ++ 550, 551, 552, -1, -1, 555, 556, 557, 558, 559, ++ 560, 561, 562, 563, 564, 565, -1, 567, 568, -1, ++ -1, 571, -1, -1, 574, -1, 576, -1, 578, 579, ++ 580, -1, -1, -1, -1, -1, -1, 587, -1, -1, ++ 590, -1, -1, -1, 594, 595, 596, 597, 598, 599, ++ -1, -1, -1, -1, -1, -1, 606, 607, -1, 609, ++ 610, 611, -1, -1, 614, -1, -1, -1, -1, -1, ++ -1, -1, 5, -1, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, 636, 637, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ 193, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, 228, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, 252, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, -1, 265, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, 464, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, 491, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ -1, 614, -1, -1, -1, -1, -1, 5, -1, 7, ++ 8, 9, 10, 11, -1, -1, 14, -1, -1, -1, ++ 18, -1, -1, 21, 637, 23, 24, 25, 26, 27, ++ 28, 29, -1, 31, -1, -1, -1, 35, -1, -1, ++ -1, 39, -1, -1, 42, 43, 44, -1, 46, -1, ++ 48, 49, -1, -1, 52, -1, -1, 55, 56, -1, ++ 58, 59, -1, 61, 62, -1, 64, 65, 66, 67, ++ 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, ++ 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, ++ 88, -1, 90, 91, 92, 93, 94, 95, 96, 97, ++ -1, 99, -1, -1, 102, -1, -1, 105, -1, -1, ++ -1, 109, -1, -1, -1, 113, 114, 115, -1, -1, ++ 118, -1, -1, -1, -1, 123, 124, -1, -1, -1, ++ -1, 129, -1, 131, -1, -1, -1, 135, -1, 137, ++ 138, 139, 140, -1, -1, -1, 144, -1, -1, 147, ++ 148, 149, -1, -1, -1, 153, -1, 155, 156, -1, ++ 158, 159, 160, -1, 162, 163, -1, 165, 166, 167, ++ 168, 169, 170, -1, -1, 173, 174, 175, -1, -1, ++ 178, 179, -1, 181, 182, 183, -1, -1, 186, -1, ++ -1, -1, 190, -1, 192, 193, 194, -1, 196, 197, ++ 198, 199, 200, 201, -1, 203, -1, -1, 206, 207, ++ 208, -1, 210, -1, -1, -1, 214, 215, -1, -1, ++ -1, 219, 220, 221, 222, -1, -1, 225, 226, 227, ++ 228, 229, -1, 231, -1, -1, -1, -1, 236, 237, ++ -1, -1, -1, 241, -1, 243, 244, -1, 246, 247, ++ -1, -1, -1, 251, 252, -1, 254, 255, 256, -1, ++ -1, 259, -1, -1, 262, 263, -1, -1, -1, -1, ++ -1, 269, 270, -1, 272, -1, 274, -1, 276, 277, ++ -1, -1, -1, -1, -1, -1, 284, 285, 286, 287, ++ 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, ++ 298, 299, 300, -1, 302, 303, 304, 305, -1, 307, ++ 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, ++ 318, -1, -1, 321, 322, -1, 324, -1, 326, -1, ++ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, ++ -1, -1, 340, 341, -1, -1, 344, 345, 346, 347, ++ -1, -1, -1, 351, 352, -1, -1, -1, -1, 357, ++ 358, 359, -1, 361, 362, 363, 364, -1, 366, 367, ++ -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, ++ 378, -1, -1, 381, -1, 383, 384, 385, 386, 387, ++ 388, 389, 390, 391, 392, 393, 394, -1, -1, 397, ++ 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, ++ -1, 409, 410, 411, -1, -1, 414, -1, -1, -1, ++ 418, 419, 420, 421, 422, -1, -1, 425, 426, 427, ++ 428, 429, -1, 431, 432, -1, 434, 435, 436, -1, ++ -1, 439, -1, 441, -1, 443, 444, -1, 446, 447, ++ -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, ++ 458, 459, 460, -1, 462, 463, -1, -1, -1, 467, ++ 468, 469, 470, -1, -1, -1, 474, -1, -1, -1, ++ 478, -1, 480, 481, 482, 483, -1, 485, 486, 487, ++ 488, 489, 490, 491, -1, -1, -1, -1, -1, 497, ++ 498, -1, 500, -1, -1, 503, -1, -1, 506, 507, ++ 508, -1, -1, 511, 512, -1, 514, 515, 516, 517, ++ 518, 519, -1, -1, 522, 523, 524, 525, -1, 527, ++ 528, -1, 530, -1, 532, 533, 534, 535, -1, -1, ++ 538, 539, -1, 541, 542, 543, 544, -1, -1, -1, ++ -1, -1, 550, 551, 552, -1, -1, -1, 556, 557, ++ 558, 559, -1, 561, 562, -1, 564, 565, -1, 567, ++ 568, -1, -1, 571, -1, -1, 574, -1, 576, -1, ++ 578, 579, 580, -1, -1, -1, -1, -1, -1, 587, ++ -1, -1, 590, -1, -1, -1, 594, 595, 596, 597, ++ 598, 599, -1, -1, -1, -1, -1, -1, 606, 607, ++ -1, 609, 610, 611, -1, -1, 614, -1, -1, -1, ++ -1, -1, 5, -1, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, 637, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, 464, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ -1, 614, -1, -1, -1, -1, -1, 5, -1, 7, ++ 8, 9, 10, 11, -1, -1, 14, 630, -1, -1, ++ 18, -1, -1, 21, 637, 23, 24, 25, 26, 27, ++ 28, 29, -1, 31, -1, -1, -1, 35, -1, -1, ++ -1, 39, -1, -1, 42, 43, 44, -1, 46, -1, ++ 48, 49, -1, -1, 52, -1, -1, 55, 56, -1, ++ 58, 59, -1, 61, 62, -1, 64, 65, 66, 67, ++ 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, ++ 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, ++ 88, -1, 90, 91, -1, 93, 94, 95, 96, 97, ++ -1, 99, -1, -1, 102, -1, -1, 105, -1, -1, ++ -1, 109, -1, -1, -1, 113, 114, 115, -1, -1, ++ 118, -1, -1, -1, -1, 123, 124, -1, -1, -1, ++ -1, 129, -1, 131, -1, -1, -1, 135, -1, 137, ++ 138, 139, 140, -1, -1, -1, 144, -1, -1, 147, ++ 148, 149, -1, -1, -1, 153, -1, 155, 156, -1, ++ 158, 159, 160, -1, 162, 163, -1, 165, 166, 167, ++ 168, 169, 170, -1, -1, 173, 174, 175, -1, -1, ++ 178, 179, -1, 181, 182, 183, -1, -1, 186, -1, ++ -1, -1, 190, -1, 192, -1, 194, -1, 196, 197, ++ 198, 199, 200, 201, -1, 203, -1, -1, 206, 207, ++ 208, -1, 210, -1, -1, -1, 214, 215, -1, -1, ++ -1, 219, 220, 221, 222, -1, -1, 225, 226, 227, ++ -1, 229, -1, 231, -1, -1, -1, -1, 236, 237, ++ -1, -1, -1, 241, -1, 243, 244, -1, 246, 247, ++ -1, -1, -1, 251, -1, -1, 254, 255, 256, -1, ++ -1, 259, -1, -1, 262, 263, -1, -1, -1, -1, ++ -1, 269, 270, -1, 272, -1, 274, -1, 276, 277, ++ -1, -1, -1, -1, -1, -1, 284, 285, 286, 287, ++ 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, ++ 298, 299, 300, -1, 302, 303, 304, 305, -1, 307, ++ 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, ++ 318, -1, -1, 321, 322, -1, 324, -1, 326, -1, ++ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, ++ -1, -1, 340, 341, -1, -1, 344, 345, 346, 347, ++ -1, -1, -1, 351, 352, -1, -1, -1, -1, 357, ++ 358, 359, -1, 361, 362, 363, 364, -1, 366, 367, ++ -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, ++ 378, -1, -1, 381, -1, 383, 384, 385, 386, 387, ++ 388, 389, 390, 391, 392, 393, 394, -1, -1, 397, ++ 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, ++ -1, 409, 410, 411, -1, -1, 414, -1, -1, -1, ++ 418, 419, 420, 421, 422, -1, -1, 425, 426, 427, ++ 428, 429, -1, 431, 432, -1, 434, 435, 436, -1, ++ -1, 439, -1, 441, -1, 443, 444, -1, 446, 447, ++ -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, ++ 458, 459, 460, -1, 462, 463, -1, -1, -1, 467, ++ 468, 469, 470, -1, -1, -1, 474, -1, -1, -1, ++ 478, -1, 480, 481, 482, 483, -1, 485, 486, 487, ++ 488, 489, 490, -1, -1, -1, -1, -1, -1, 497, ++ 498, -1, 500, -1, -1, 503, -1, -1, 506, 507, ++ 508, -1, -1, 511, 512, -1, 514, 515, 516, 517, ++ 518, 519, -1, -1, 522, 523, 524, 525, -1, 527, ++ 528, -1, 530, -1, 532, 533, 534, 535, -1, -1, ++ 538, 539, -1, 541, 542, 543, 544, -1, -1, -1, ++ -1, -1, 550, 551, 552, -1, -1, -1, 556, 557, ++ 558, 559, -1, 561, 562, -1, 564, 565, -1, 567, ++ 568, -1, -1, 571, -1, -1, 574, -1, 576, -1, ++ 578, 579, 580, -1, -1, -1, -1, -1, -1, 587, ++ -1, -1, 590, -1, -1, -1, 594, 595, 596, 597, ++ 598, 599, -1, -1, -1, -1, -1, -1, 606, 607, ++ -1, 609, 610, 611, -1, -1, 614, -1, -1, -1, ++ -1, -1, -1, -1, 5, -1, 7, 8, 9, 10, ++ 11, -1, 630, 14, -1, -1, -1, 18, 636, 637, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, -1, 614, -1, -1, -1, -1, -1, -1, ++ -1, 5, -1, 7, 8, 9, 10, 11, 629, -1, ++ 14, -1, -1, -1, 18, -1, 637, 21, -1, 23, ++ 24, 25, 26, 27, 28, 29, -1, 31, -1, -1, ++ -1, 35, -1, -1, -1, 39, -1, -1, 42, 43, ++ 44, -1, 46, -1, 48, 49, -1, -1, 52, -1, ++ -1, 55, 56, -1, 58, 59, -1, 61, 62, -1, ++ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, ++ 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, ++ 84, 85, 86, 87, 88, -1, 90, 91, -1, 93, ++ 94, 95, 96, 97, -1, 99, -1, -1, 102, -1, ++ -1, 105, -1, -1, -1, 109, -1, -1, -1, 113, ++ 114, 115, -1, -1, 118, -1, -1, -1, -1, 123, ++ 124, -1, -1, -1, -1, 129, -1, 131, -1, -1, ++ -1, 135, -1, 137, 138, 139, 140, -1, -1, -1, ++ 144, -1, -1, 147, 148, 149, -1, -1, -1, 153, ++ -1, 155, 156, -1, 158, 159, 160, -1, 162, 163, ++ -1, 165, 166, 167, 168, 169, 170, -1, -1, 173, ++ 174, 175, -1, -1, 178, 179, -1, 181, 182, 183, ++ -1, -1, 186, -1, -1, -1, 190, -1, 192, -1, ++ 194, -1, 196, 197, 198, 199, 200, 201, -1, 203, ++ -1, -1, 206, 207, 208, -1, 210, -1, -1, -1, ++ 214, 215, -1, -1, -1, 219, 220, 221, 222, -1, ++ -1, 225, 226, 227, -1, 229, -1, 231, -1, -1, ++ -1, -1, 236, 237, -1, 239, -1, 241, -1, 243, ++ 244, -1, 246, 247, -1, -1, -1, 251, -1, -1, ++ 254, 255, 256, -1, -1, 259, -1, -1, 262, 263, ++ -1, -1, -1, -1, -1, 269, 270, -1, 272, -1, ++ 274, -1, 276, 277, -1, -1, -1, -1, -1, -1, ++ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, ++ 294, 295, 296, -1, 298, 299, 300, -1, 302, 303, ++ 304, 305, -1, 307, 308, -1, -1, -1, -1, 313, ++ 314, 315, 316, 317, 318, -1, -1, 321, 322, -1, ++ 324, -1, 326, -1, 328, 329, 330, 331, 332, 333, ++ 334, 335, 336, 337, -1, -1, 340, 341, -1, -1, ++ 344, 345, 346, 347, -1, -1, -1, 351, 352, -1, ++ -1, -1, -1, 357, 358, 359, -1, 361, 362, 363, ++ 364, -1, 366, 367, -1, -1, -1, -1, -1, -1, ++ -1, -1, 376, 377, 378, -1, -1, 381, -1, 383, ++ 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, ++ 394, -1, -1, 397, 398, 399, -1, 401, -1, 403, ++ 404, 405, 406, 407, -1, 409, 410, 411, -1, -1, ++ 414, -1, -1, -1, 418, 419, 420, 421, 422, -1, ++ -1, 425, 426, 427, 428, 429, -1, 431, 432, -1, ++ 434, 435, 436, -1, -1, 439, -1, 441, -1, 443, ++ 444, -1, 446, 447, -1, -1, -1, 451, 452, 453, ++ 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, ++ -1, -1, -1, 467, 468, 469, 470, -1, -1, -1, ++ 474, -1, -1, -1, 478, -1, 480, 481, 482, 483, ++ -1, 485, 486, 487, 488, 489, 490, -1, -1, -1, ++ -1, -1, -1, 497, 498, -1, 500, -1, -1, 503, ++ -1, -1, 506, 507, 508, -1, -1, 511, 512, -1, ++ 514, 515, 516, 517, 518, 519, -1, -1, 522, 523, ++ 524, 525, -1, 527, 528, -1, 530, -1, 532, 533, ++ 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, ++ 544, -1, -1, -1, -1, -1, 550, 551, 552, -1, ++ -1, -1, 556, 557, 558, 559, -1, 561, 562, -1, ++ 564, 565, -1, 567, 568, -1, -1, 571, -1, -1, ++ 574, -1, 576, -1, 578, 579, 580, -1, -1, -1, ++ -1, -1, -1, 587, -1, -1, 590, -1, -1, -1, ++ 594, 595, 596, 597, 598, 599, -1, -1, -1, -1, ++ -1, -1, 606, 607, -1, 609, 610, 611, -1, -1, ++ 614, -1, -1, -1, -1, -1, 5, -1, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, 637, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, -1, -1, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, -1, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, -1, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, -1, 614, -1, -1, -1, -1, ++ -1, -1, -1, -1, 5, 624, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, 637, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, -1, 614, -1, -1, -1, -1, -1, -1, ++ -1, 5, -1, 7, 8, 9, 10, 11, 629, -1, ++ 14, -1, -1, -1, 18, -1, 637, 21, -1, 23, ++ 24, 25, 26, 27, 28, 29, -1, 31, -1, -1, ++ -1, 35, -1, -1, -1, 39, -1, -1, 42, 43, ++ 44, -1, 46, -1, 48, 49, -1, -1, 52, -1, ++ -1, 55, 56, -1, 58, 59, -1, 61, 62, -1, ++ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, ++ 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, ++ 84, 85, 86, 87, 88, -1, 90, 91, -1, 93, ++ 94, 95, 96, 97, -1, 99, -1, -1, 102, -1, ++ -1, 105, -1, -1, -1, 109, -1, -1, -1, 113, ++ 114, 115, -1, -1, 118, -1, -1, -1, -1, 123, ++ 124, -1, -1, -1, -1, 129, -1, 131, -1, -1, ++ -1, 135, -1, 137, 138, 139, 140, -1, -1, -1, ++ 144, -1, -1, 147, 148, 149, -1, -1, -1, 153, ++ -1, 155, 156, -1, 158, 159, 160, -1, 162, 163, ++ -1, 165, 166, 167, 168, 169, 170, -1, -1, 173, ++ 174, 175, -1, -1, 178, 179, -1, 181, 182, 183, ++ -1, -1, 186, -1, -1, -1, 190, -1, 192, -1, ++ 194, -1, 196, 197, 198, 199, 200, 201, -1, 203, ++ -1, -1, 206, 207, 208, -1, 210, -1, -1, -1, ++ 214, 215, -1, -1, -1, 219, 220, 221, 222, -1, ++ -1, 225, 226, 227, -1, 229, -1, 231, -1, -1, ++ -1, -1, 236, 237, -1, -1, -1, 241, -1, 243, ++ 244, -1, 246, 247, -1, -1, -1, 251, -1, -1, ++ 254, 255, 256, -1, -1, 259, -1, -1, 262, 263, ++ -1, -1, -1, -1, -1, 269, 270, -1, 272, -1, ++ 274, -1, 276, 277, -1, -1, -1, -1, -1, -1, ++ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, ++ 294, 295, 296, -1, 298, 299, 300, -1, 302, 303, ++ 304, 305, -1, 307, 308, -1, -1, -1, -1, 313, ++ 314, 315, 316, 317, 318, -1, -1, 321, 322, -1, ++ 324, -1, 326, -1, 328, 329, 330, 331, 332, 333, ++ 334, 335, 336, 337, -1, -1, 340, 341, -1, -1, ++ 344, 345, 346, 347, -1, -1, -1, 351, 352, -1, ++ -1, -1, -1, 357, 358, 359, -1, 361, 362, 363, ++ 364, -1, 366, 367, -1, -1, -1, -1, -1, -1, ++ -1, -1, 376, 377, 378, -1, -1, 381, -1, 383, ++ 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, ++ 394, -1, -1, 397, 398, 399, -1, 401, -1, 403, ++ 404, 405, 406, 407, -1, 409, 410, 411, -1, -1, ++ 414, -1, -1, -1, 418, 419, 420, 421, 422, -1, ++ -1, 425, 426, 427, 428, 429, -1, 431, 432, -1, ++ 434, 435, 436, -1, -1, 439, -1, 441, -1, 443, ++ 444, -1, 446, 447, -1, -1, -1, 451, 452, 453, ++ 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, ++ -1, -1, -1, 467, 468, 469, 470, -1, -1, -1, ++ 474, -1, -1, -1, 478, -1, 480, 481, 482, 483, ++ -1, 485, 486, 487, 488, 489, 490, -1, -1, -1, ++ -1, -1, -1, 497, 498, -1, 500, -1, -1, 503, ++ -1, -1, 506, 507, 508, -1, -1, 511, 512, -1, ++ 514, 515, 516, 517, 518, 519, -1, -1, 522, 523, ++ 524, 525, -1, 527, 528, -1, 530, -1, 532, 533, ++ 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, ++ 544, -1, -1, -1, -1, -1, 550, 551, 552, -1, ++ -1, -1, 556, 557, 558, 559, -1, 561, 562, -1, ++ 564, 565, -1, 567, 568, -1, -1, 571, -1, -1, ++ 574, -1, 576, -1, 578, 579, 580, -1, -1, -1, ++ -1, -1, -1, 587, -1, -1, 590, -1, -1, -1, ++ 594, 595, 596, 597, 598, 599, -1, -1, -1, -1, ++ -1, -1, 606, 607, -1, 609, 610, 611, -1, -1, ++ 614, -1, -1, -1, -1, -1, -1, -1, 5, -1, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, 636, 637, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ -1, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, -1, 614, -1, -1, ++ -1, -1, -1, 5, -1, 7, 8, 9, 10, 11, ++ -1, -1, 14, -1, -1, -1, 18, -1, -1, 21, ++ 637, 23, 24, 25, 26, 27, 28, 29, -1, 31, ++ -1, -1, -1, 35, -1, -1, -1, 39, -1, -1, ++ 42, 43, 44, -1, 46, -1, 48, 49, -1, -1, ++ 52, -1, -1, 55, 56, -1, 58, 59, -1, 61, ++ 62, -1, 64, 65, 66, 67, 68, 69, 70, -1, ++ 72, 73, 74, 75, 76, 77, 78, 79, -1, 81, ++ 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, ++ -1, 93, 94, 95, 96, 97, -1, 99, -1, -1, ++ 102, -1, -1, 105, -1, -1, -1, 109, -1, -1, ++ -1, 113, 114, 115, -1, -1, 118, -1, -1, -1, ++ -1, 123, 124, -1, -1, -1, -1, 129, -1, 131, ++ -1, -1, -1, 135, -1, 137, 138, 139, 140, -1, ++ -1, -1, 144, -1, -1, 147, 148, 149, -1, -1, ++ -1, 153, -1, 155, 156, -1, 158, 159, 160, -1, ++ 162, 163, -1, 165, 166, 167, 168, 169, 170, -1, ++ -1, 173, 174, 175, -1, -1, 178, 179, -1, 181, ++ 182, 183, -1, -1, 186, -1, -1, -1, 190, -1, ++ 192, -1, 194, -1, 196, 197, 198, 199, 200, 201, ++ -1, 203, -1, -1, 206, 207, 208, -1, 210, -1, ++ -1, -1, 214, 215, -1, -1, -1, 219, 220, 221, ++ 222, -1, -1, 225, 226, 227, -1, 229, -1, 231, ++ -1, -1, -1, -1, 236, 237, -1, -1, -1, 241, ++ -1, 243, 244, -1, 246, 247, -1, -1, -1, 251, ++ -1, -1, 254, 255, 256, -1, -1, 259, -1, -1, ++ 262, 263, -1, -1, -1, -1, -1, 269, 270, -1, ++ 272, -1, 274, -1, 276, 277, -1, -1, -1, -1, ++ -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, ++ 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, ++ 302, 303, 304, 305, -1, 307, 308, -1, -1, -1, ++ -1, 313, 314, 315, 316, 317, 318, -1, -1, 321, ++ 322, -1, 324, -1, 326, -1, 328, 329, 330, 331, ++ 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, ++ -1, -1, 344, 345, 346, 347, -1, -1, -1, 351, ++ 352, -1, -1, -1, -1, 357, 358, 359, -1, 361, ++ 362, 363, 364, -1, 366, 367, -1, -1, -1, -1, ++ -1, -1, -1, -1, 376, 377, 378, -1, -1, 381, ++ -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, ++ 392, 393, 394, -1, -1, 397, 398, 399, -1, 401, ++ -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, ++ -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, ++ 422, -1, -1, 425, 426, 427, 428, 429, -1, 431, ++ 432, -1, 434, 435, 436, -1, -1, 439, -1, 441, ++ -1, 443, 444, -1, 446, 447, -1, -1, -1, 451, ++ 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, ++ 462, 463, -1, -1, -1, 467, 468, 469, 470, -1, ++ -1, -1, 474, -1, -1, -1, 478, -1, 480, 481, ++ 482, 483, -1, 485, 486, 487, 488, 489, 490, -1, ++ -1, -1, -1, -1, -1, 497, 498, -1, 500, -1, ++ -1, 503, -1, -1, 506, 507, 508, -1, -1, 511, ++ 512, -1, 514, 515, 516, 517, 518, 519, -1, -1, ++ 522, 523, 524, 525, -1, 527, 528, -1, 530, -1, ++ 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, ++ 542, 543, 544, -1, -1, -1, -1, -1, 550, 551, ++ 552, -1, -1, -1, 556, 557, 558, 559, -1, 561, ++ 562, -1, 564, 565, -1, 567, 568, -1, -1, 571, ++ -1, -1, 574, -1, 576, -1, 578, 579, 580, -1, ++ -1, -1, -1, -1, -1, 587, -1, -1, 590, -1, ++ -1, -1, 594, 595, 596, 597, 598, 599, -1, -1, ++ -1, -1, -1, -1, 606, 607, -1, 609, 610, 611, ++ -1, -1, 614, -1, -1, -1, -1, -1, 5, -1, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, 637, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ -1, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, -1, 614, -1, -1, ++ -1, -1, -1, 5, -1, 7, 8, 9, 10, 11, ++ -1, -1, 14, -1, -1, -1, 18, -1, -1, 21, ++ 637, 23, 24, 25, 26, 27, 28, 29, -1, 31, ++ -1, -1, -1, 35, -1, -1, -1, 39, -1, -1, ++ 42, 43, 44, -1, 46, -1, 48, 49, -1, -1, ++ 52, -1, -1, 55, 56, -1, 58, 59, -1, 61, ++ 62, -1, 64, 65, 66, 67, 68, 69, 70, -1, ++ 72, 73, 74, 75, 76, 77, 78, 79, -1, 81, ++ 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, ++ -1, 93, 94, 95, 96, 97, -1, 99, -1, -1, ++ 102, -1, -1, 105, -1, -1, -1, 109, -1, -1, ++ -1, 113, 114, 115, -1, -1, 118, -1, -1, -1, ++ -1, 123, 124, -1, -1, -1, -1, 129, -1, 131, ++ -1, -1, -1, 135, -1, 137, 138, 139, 140, -1, ++ -1, -1, 144, -1, -1, 147, 148, 149, -1, -1, ++ -1, 153, -1, 155, 156, -1, 158, 159, 160, -1, ++ 162, 163, -1, 165, 166, 167, 168, 169, 170, -1, ++ -1, 173, 174, 175, -1, -1, 178, 179, -1, 181, ++ 182, 183, -1, -1, 186, -1, -1, -1, 190, -1, ++ 192, -1, 194, -1, 196, 197, 198, 199, 200, 201, ++ -1, 203, -1, -1, 206, 207, 208, -1, 210, -1, ++ -1, -1, 214, 215, -1, -1, -1, 219, 220, 221, ++ 222, -1, -1, 225, 226, 227, -1, 229, -1, 231, ++ -1, -1, -1, -1, 236, 237, -1, -1, -1, 241, ++ -1, 243, 244, -1, 246, 247, -1, -1, -1, 251, ++ -1, -1, 254, 255, 256, -1, -1, 259, -1, -1, ++ 262, 263, -1, -1, -1, -1, -1, 269, 270, -1, ++ 272, -1, 274, -1, 276, 277, -1, -1, -1, -1, ++ -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, ++ 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, ++ 302, 303, 304, 305, -1, 307, 308, -1, -1, -1, ++ -1, 313, 314, 315, 316, 317, 318, -1, -1, 321, ++ 322, -1, 324, -1, 326, -1, 328, 329, 330, 331, ++ 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, ++ -1, -1, 344, 345, 346, 347, -1, -1, -1, 351, ++ 352, -1, -1, -1, -1, 357, 358, 359, -1, 361, ++ 362, 363, 364, -1, 366, 367, -1, -1, -1, -1, ++ -1, -1, -1, -1, 376, 377, 378, -1, -1, 381, ++ -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, ++ 392, 393, 394, -1, -1, 397, 398, 399, -1, 401, ++ -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, ++ -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, ++ 422, -1, -1, 425, 426, 427, 428, 429, -1, 431, ++ 432, -1, 434, 435, 436, -1, -1, 439, -1, 441, ++ -1, 443, 444, -1, 446, 447, -1, -1, -1, 451, ++ 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, ++ 462, 463, -1, -1, -1, 467, 468, 469, 470, -1, ++ -1, -1, 474, -1, -1, -1, 478, -1, 480, 481, ++ 482, 483, -1, 485, 486, 487, 488, 489, 490, -1, ++ -1, -1, -1, -1, -1, 497, 498, -1, 500, -1, ++ -1, 503, -1, -1, 506, 507, 508, -1, -1, 511, ++ 512, -1, 514, 515, 516, 517, 518, 519, -1, -1, ++ 522, 523, 524, 525, -1, 527, 528, -1, 530, -1, ++ 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, ++ 542, 543, 544, -1, -1, -1, -1, -1, 550, 551, ++ 552, -1, -1, -1, 556, 557, 558, 559, -1, 561, ++ 562, -1, 564, 565, -1, 567, 568, -1, -1, 571, ++ -1, -1, 574, -1, 576, -1, 578, 579, 580, -1, ++ -1, -1, -1, -1, -1, 587, -1, -1, 590, -1, ++ -1, -1, 594, 595, 596, 597, 598, 599, -1, -1, ++ -1, -1, -1, -1, 606, 607, -1, 609, 610, 611, ++ -1, -1, 614, -1, -1, -1, -1, -1, 5, -1, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, 637, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, 264, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ 537, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, -1, 614, -1, -1, ++ -1, -1, 5, -1, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, 636, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, 264, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, 537, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ -1, 614, -1, -1, -1, -1, 5, -1, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, 636, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, -1, -1, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, 264, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, -1, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, 537, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, -1, 614, -1, -1, -1, -1, ++ 5, -1, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, -1, 636, 23, 24, ++ 25, 26, 27, 28, -1, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, -1, -1, -1, -1, 52, 53, -1, ++ 55, 56, -1, 58, -1, -1, -1, -1, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, -1, ++ -1, -1, -1, -1, -1, -1, 81, -1, 83, -1, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, -1, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, -1, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ -1, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, -1, -1, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, 180, 181, 182, 183, -1, ++ -1, -1, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, -1, 207, 208, -1, -1, -1, -1, -1, -1, ++ 215, -1, -1, -1, 219, 220, 221, 222, 223, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, -1, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, 248, -1, -1, 251, -1, -1, -1, ++ 255, 256, -1, -1, 259, 260, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, 282, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, -1, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 377, 378, -1, -1, -1, -1, 383, 384, ++ 385, -1, 387, 388, 389, 390, 391, 392, 393, -1, ++ -1, -1, -1, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, -1, -1, 434, ++ -1, 436, 437, -1, 439, -1, -1, -1, 443, -1, ++ -1, 446, 447, 448, -1, -1, -1, 452, 453, 454, ++ 455, 456, 457, -1, 459, 460, -1, 462, -1, -1, ++ -1, -1, 467, 468, 469, -1, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, -1, 481, -1, 483, -1, ++ 485, -1, 487, -1, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, -1, 508, -1, -1, -1, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, -1, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, -1, -1, -1, -1, 571, -1, -1, 574, ++ -1, -1, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, 602, -1, -1, ++ -1, 606, -1, -1, 609, -1, 611, -1, -1, 614, ++ -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, ++ 14, -1, -1, -1, 18, -1, 631, 21, -1, 23, ++ 24, 25, 26, 27, 28, 29, -1, 31, -1, -1, ++ -1, 35, -1, -1, -1, 39, -1, -1, 42, 43, ++ 44, -1, 46, -1, 48, 49, -1, -1, 52, -1, ++ -1, 55, 56, -1, 58, 59, -1, 61, 62, -1, ++ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, ++ 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, ++ 84, 85, 86, 87, 88, -1, 90, 91, -1, 93, ++ 94, 95, 96, 97, -1, 99, -1, -1, 102, -1, ++ -1, 105, -1, 107, -1, 109, -1, -1, -1, 113, ++ 114, 115, -1, -1, 118, -1, -1, -1, -1, 123, ++ 124, -1, -1, -1, -1, 129, -1, 131, -1, -1, ++ -1, 135, -1, 137, 138, 139, 140, -1, -1, -1, ++ 144, -1, -1, 147, 148, 149, -1, -1, -1, 153, ++ -1, 155, 156, -1, 158, 159, 160, -1, 162, 163, ++ -1, 165, 166, 167, 168, 169, 170, -1, -1, 173, ++ 174, 175, -1, -1, 178, 179, -1, 181, 182, 183, ++ -1, -1, 186, -1, -1, -1, 190, -1, 192, -1, ++ 194, -1, 196, 197, 198, 199, 200, 201, -1, 203, ++ -1, -1, 206, 207, 208, -1, 210, -1, -1, -1, ++ 214, 215, -1, -1, -1, 219, 220, 221, 222, -1, ++ -1, 225, 226, 227, -1, 229, -1, 231, -1, -1, ++ -1, -1, 236, 237, -1, -1, -1, 241, -1, 243, ++ 244, -1, 246, 247, -1, -1, -1, 251, -1, -1, ++ 254, 255, 256, -1, -1, 259, -1, -1, 262, 263, ++ 264, -1, -1, -1, -1, 269, 270, -1, 272, -1, ++ 274, -1, 276, 277, -1, -1, -1, -1, -1, -1, ++ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, ++ 294, 295, 296, -1, 298, 299, 300, -1, 302, 303, ++ 304, 305, -1, 307, 308, -1, -1, -1, -1, 313, ++ 314, 315, 316, 317, 318, -1, -1, 321, 322, -1, ++ 324, -1, 326, -1, 328, 329, 330, 331, 332, 333, ++ 334, 335, 336, 337, -1, -1, 340, 341, -1, -1, ++ 344, 345, 346, 347, -1, -1, -1, 351, 352, -1, ++ -1, -1, -1, 357, 358, 359, -1, 361, 362, 363, ++ 364, -1, 366, 367, -1, -1, -1, -1, -1, -1, ++ -1, -1, 376, 377, 378, -1, -1, 381, -1, 383, ++ 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, ++ 394, -1, -1, 397, 398, 399, -1, 401, -1, 403, ++ 404, 405, 406, 407, -1, 409, 410, 411, -1, -1, ++ 414, -1, -1, -1, 418, 419, 420, 421, 422, -1, ++ -1, 425, 426, 427, 428, 429, -1, 431, 432, -1, ++ 434, 435, 436, -1, -1, 439, -1, 441, -1, 443, ++ 444, -1, 446, 447, -1, -1, -1, 451, 452, 453, ++ 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, ++ -1, -1, -1, 467, 468, 469, 470, -1, -1, -1, ++ 474, -1, -1, -1, 478, -1, 480, 481, 482, 483, ++ -1, 485, 486, 487, 488, 489, 490, -1, -1, -1, ++ -1, -1, -1, 497, 498, -1, 500, -1, -1, 503, ++ -1, -1, 506, 507, 508, -1, -1, 511, 512, -1, ++ 514, 515, 516, 517, 518, 519, -1, -1, 522, 523, ++ 524, 525, -1, 527, 528, -1, 530, -1, 532, 533, ++ 534, 535, -1, 537, 538, 539, -1, 541, 542, 543, ++ 544, -1, -1, -1, -1, -1, 550, 551, 552, -1, ++ -1, -1, 556, 557, 558, 559, -1, 561, 562, -1, ++ 564, 565, -1, 567, 568, -1, -1, 571, -1, -1, ++ 574, -1, 576, -1, 578, 579, 580, -1, -1, -1, ++ -1, -1, -1, 587, -1, -1, 590, -1, -1, -1, ++ 594, 595, 596, 597, 598, 599, -1, -1, -1, -1, ++ -1, -1, 606, 607, -1, 609, 610, 611, -1, -1, ++ 614, 5, -1, 7, 8, 9, 10, 11, -1, -1, ++ 14, -1, -1, -1, 18, 629, -1, 21, -1, 23, ++ 24, 25, 26, 27, 28, 29, -1, 31, -1, -1, ++ -1, 35, -1, -1, -1, 39, -1, -1, 42, 43, ++ 44, -1, 46, -1, 48, 49, -1, -1, 52, -1, ++ -1, 55, 56, -1, 58, 59, -1, 61, 62, -1, ++ 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, ++ 74, 75, 76, 77, 78, 79, -1, 81, 82, 83, ++ 84, 85, 86, 87, 88, -1, 90, 91, -1, 93, ++ 94, 95, 96, 97, -1, 99, -1, -1, 102, -1, ++ -1, 105, -1, -1, -1, 109, -1, -1, -1, 113, ++ 114, 115, -1, -1, 118, -1, -1, -1, -1, 123, ++ 124, -1, -1, -1, -1, 129, -1, 131, -1, -1, ++ -1, 135, -1, 137, 138, 139, 140, -1, -1, -1, ++ 144, -1, -1, 147, 148, 149, -1, -1, -1, 153, ++ -1, 155, 156, -1, 158, 159, 160, -1, 162, 163, ++ -1, 165, 166, 167, 168, 169, 170, -1, -1, 173, ++ 174, 175, -1, -1, 178, 179, -1, 181, 182, 183, ++ -1, -1, 186, -1, -1, -1, 190, -1, 192, -1, ++ 194, -1, 196, 197, 198, 199, 200, 201, -1, 203, ++ -1, -1, 206, 207, 208, -1, 210, -1, -1, -1, ++ 214, 215, -1, -1, -1, 219, 220, 221, 222, -1, ++ -1, 225, 226, 227, -1, 229, -1, 231, -1, -1, ++ -1, -1, 236, 237, -1, -1, -1, 241, -1, 243, ++ 244, -1, 246, 247, -1, -1, -1, 251, -1, -1, ++ 254, 255, 256, -1, -1, 259, -1, -1, 262, 263, ++ -1, -1, -1, -1, -1, 269, 270, -1, 272, -1, ++ 274, -1, 276, 277, -1, -1, -1, -1, -1, -1, ++ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, ++ 294, 295, 296, -1, 298, 299, 300, -1, 302, 303, ++ 304, 305, -1, 307, 308, -1, -1, -1, -1, 313, ++ 314, 315, 316, 317, 318, -1, -1, 321, 322, -1, ++ 324, -1, 326, -1, 328, 329, 330, 331, 332, 333, ++ 334, 335, 336, 337, -1, -1, 340, 341, -1, -1, ++ 344, 345, 346, 347, -1, -1, -1, 351, 352, -1, ++ -1, -1, -1, 357, 358, 359, -1, 361, 362, 363, ++ 364, -1, 366, 367, -1, -1, -1, -1, -1, -1, ++ -1, -1, 376, 377, 378, -1, -1, 381, -1, 383, ++ 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, ++ 394, -1, -1, 397, 398, 399, -1, 401, -1, 403, ++ 404, 405, 406, 407, -1, 409, 410, 411, -1, -1, ++ 414, -1, -1, -1, 418, 419, 420, 421, 422, -1, ++ -1, 425, 426, 427, 428, 429, -1, 431, 432, -1, ++ 434, 435, 436, -1, -1, 439, -1, 441, -1, 443, ++ 444, -1, 446, 447, -1, -1, -1, 451, 452, 453, ++ 454, 455, 456, 457, 458, 459, 460, -1, 462, 463, ++ -1, -1, -1, 467, 468, 469, 470, -1, -1, -1, ++ 474, -1, -1, -1, 478, -1, 480, 481, 482, 483, ++ -1, 485, 486, 487, 488, 489, 490, -1, -1, -1, ++ -1, -1, -1, 497, 498, -1, 500, -1, -1, 503, ++ -1, -1, 506, 507, 508, -1, -1, 511, 512, -1, ++ 514, 515, 516, 517, 518, 519, -1, -1, 522, 523, ++ 524, 525, -1, 527, 528, -1, 530, -1, 532, 533, ++ 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, ++ 544, -1, -1, -1, -1, -1, 550, 551, 552, -1, ++ -1, -1, 556, 557, 558, 559, -1, 561, 562, -1, ++ 564, 565, -1, 567, 568, -1, -1, 571, -1, -1, ++ 574, -1, 576, -1, 578, 579, 580, -1, -1, -1, ++ -1, -1, -1, 587, -1, -1, 590, -1, -1, -1, ++ 594, 595, 596, 597, 598, 599, -1, -1, -1, -1, ++ -1, -1, 606, 607, -1, 609, 610, 611, -1, 5, ++ 614, 7, 8, 9, 10, 11, -1, -1, 14, -1, ++ 624, -1, 18, -1, -1, 21, -1, 23, 24, 25, ++ 26, 27, 28, 29, -1, 31, -1, -1, -1, 35, ++ -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, ++ 46, -1, 48, 49, -1, -1, 52, -1, -1, 55, ++ 56, -1, 58, 59, -1, 61, 62, -1, 64, 65, ++ 66, 67, 68, 69, 70, -1, 72, 73, 74, 75, ++ 76, 77, 78, 79, -1, 81, 82, 83, 84, 85, ++ 86, 87, 88, -1, 90, 91, -1, 93, 94, 95, ++ 96, 97, -1, 99, -1, -1, 102, -1, -1, 105, ++ -1, -1, -1, 109, -1, -1, -1, 113, 114, 115, ++ -1, -1, 118, -1, -1, -1, -1, 123, 124, -1, ++ -1, -1, -1, 129, -1, 131, -1, -1, -1, 135, ++ -1, 137, 138, 139, 140, -1, -1, -1, 144, -1, ++ -1, 147, 148, 149, -1, -1, -1, 153, -1, 155, ++ 156, -1, 158, 159, 160, -1, 162, 163, -1, 165, ++ 166, 167, 168, 169, 170, -1, -1, 173, 174, 175, ++ -1, -1, 178, 179, -1, 181, 182, 183, -1, -1, ++ 186, -1, -1, -1, 190, -1, 192, -1, 194, -1, ++ 196, 197, 198, 199, 200, 201, -1, 203, -1, -1, ++ 206, 207, 208, -1, 210, -1, -1, -1, 214, 215, ++ -1, -1, -1, 219, 220, 221, 222, -1, -1, 225, ++ 226, 227, -1, 229, -1, 231, -1, -1, -1, -1, ++ 236, 237, -1, -1, -1, 241, -1, 243, 244, -1, ++ 246, 247, -1, -1, -1, 251, -1, -1, 254, 255, ++ 256, -1, -1, 259, -1, -1, 262, 263, -1, -1, ++ -1, -1, -1, 269, 270, -1, 272, -1, 274, -1, ++ 276, 277, -1, -1, -1, -1, -1, -1, 284, 285, ++ 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, ++ 296, -1, 298, 299, 300, -1, 302, 303, 304, 305, ++ -1, 307, 308, -1, -1, -1, -1, 313, 314, 315, ++ 316, 317, 318, -1, -1, 321, 322, -1, 324, -1, ++ 326, -1, 328, 329, 330, 331, 332, 333, 334, 335, ++ 336, 337, -1, -1, 340, 341, -1, -1, 344, 345, ++ 346, 347, -1, -1, -1, 351, 352, -1, -1, -1, ++ -1, 357, 358, 359, -1, 361, 362, 363, 364, -1, ++ 366, 367, -1, -1, -1, -1, -1, -1, -1, -1, ++ 376, 377, 378, -1, -1, 381, -1, 383, 384, 385, ++ 386, 387, 388, 389, 390, 391, 392, 393, 394, -1, ++ -1, 397, 398, 399, -1, 401, -1, 403, 404, 405, ++ 406, 407, -1, 409, 410, 411, -1, -1, 414, -1, ++ -1, -1, 418, 419, 420, 421, 422, -1, -1, 425, ++ 426, 427, 428, 429, -1, 431, 432, -1, 434, 435, ++ 436, -1, -1, 439, -1, 441, -1, 443, 444, -1, ++ 446, 447, -1, -1, -1, 451, 452, 453, 454, 455, ++ 456, 457, 458, 459, 460, -1, 462, 463, -1, -1, ++ -1, 467, 468, 469, 470, -1, -1, -1, 474, -1, ++ -1, -1, 478, -1, 480, 481, 482, 483, -1, 485, ++ 486, 487, 488, 489, 490, -1, -1, -1, -1, -1, ++ -1, 497, 498, -1, 500, -1, -1, 503, -1, -1, ++ 506, 507, 508, -1, -1, 511, 512, -1, 514, 515, ++ 516, 517, 518, 519, -1, -1, 522, 523, 524, 525, ++ -1, 527, 528, -1, 530, -1, 532, 533, 534, 535, ++ -1, -1, 538, 539, -1, 541, 542, 543, 544, -1, ++ -1, -1, -1, -1, 550, 551, 552, -1, -1, -1, ++ 556, 557, 558, 559, -1, 561, 562, -1, 564, 565, ++ -1, 567, 568, -1, -1, 571, -1, -1, 574, -1, ++ 576, -1, 578, 579, 580, -1, -1, -1, -1, -1, ++ -1, 587, -1, -1, 590, -1, -1, -1, 594, 595, ++ 596, 597, 598, 599, -1, -1, -1, -1, -1, -1, ++ 606, 607, -1, 609, 610, 611, -1, 5, 614, 7, ++ 8, 9, 10, 11, -1, -1, 14, -1, 624, -1, ++ 18, -1, -1, 21, -1, 23, 24, 25, 26, 27, ++ 28, 29, -1, 31, -1, -1, -1, 35, -1, -1, ++ -1, 39, -1, -1, 42, 43, 44, -1, 46, -1, ++ 48, 49, -1, -1, 52, -1, -1, 55, 56, -1, ++ 58, 59, -1, 61, 62, -1, 64, 65, 66, 67, ++ 68, 69, 70, -1, 72, 73, 74, 75, 76, 77, ++ 78, 79, -1, 81, 82, 83, 84, 85, 86, 87, ++ 88, -1, 90, 91, -1, 93, 94, 95, 96, 97, ++ -1, 99, -1, -1, 102, -1, -1, 105, -1, -1, ++ -1, 109, -1, -1, -1, 113, 114, 115, -1, -1, ++ 118, -1, -1, -1, -1, 123, 124, -1, -1, -1, ++ -1, 129, -1, 131, -1, -1, -1, 135, -1, 137, ++ 138, 139, 140, -1, -1, -1, 144, -1, -1, 147, ++ 148, 149, -1, -1, -1, 153, -1, 155, 156, -1, ++ 158, 159, 160, -1, 162, 163, -1, 165, 166, 167, ++ 168, 169, 170, -1, -1, 173, 174, 175, -1, -1, ++ 178, 179, -1, 181, 182, 183, -1, -1, 186, -1, ++ -1, -1, 190, -1, 192, -1, 194, -1, 196, 197, ++ 198, 199, 200, 201, -1, 203, -1, -1, 206, 207, ++ 208, -1, 210, -1, -1, -1, 214, 215, -1, -1, ++ -1, 219, 220, 221, 222, -1, -1, 225, 226, 227, ++ -1, 229, -1, 231, -1, -1, -1, -1, 236, 237, ++ -1, -1, -1, 241, -1, 243, 244, -1, 246, 247, ++ -1, -1, -1, 251, -1, -1, 254, 255, 256, -1, ++ -1, 259, -1, -1, 262, 263, -1, -1, -1, -1, ++ -1, 269, 270, -1, 272, -1, 274, -1, 276, 277, ++ -1, -1, -1, -1, -1, -1, 284, 285, 286, 287, ++ 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, ++ 298, 299, 300, -1, 302, 303, 304, 305, -1, 307, ++ 308, -1, -1, -1, -1, 313, 314, 315, 316, 317, ++ 318, -1, -1, 321, 322, -1, 324, -1, 326, -1, ++ 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, ++ -1, -1, 340, 341, -1, -1, 344, 345, 346, 347, ++ -1, -1, -1, 351, 352, -1, -1, -1, -1, 357, ++ 358, 359, -1, 361, 362, 363, 364, -1, 366, 367, ++ -1, -1, -1, -1, -1, -1, -1, -1, 376, 377, ++ 378, -1, -1, 381, -1, 383, 384, 385, 386, 387, ++ 388, 389, 390, 391, 392, 393, 394, -1, -1, 397, ++ 398, 399, -1, 401, -1, 403, 404, 405, 406, 407, ++ -1, 409, 410, 411, -1, -1, 414, -1, -1, -1, ++ 418, 419, 420, 421, 422, -1, -1, 425, 426, 427, ++ 428, 429, -1, 431, 432, -1, 434, 435, 436, -1, ++ -1, 439, -1, 441, -1, 443, 444, -1, 446, 447, ++ -1, -1, -1, 451, 452, 453, 454, 455, 456, 457, ++ 458, 459, 460, -1, 462, 463, -1, -1, -1, 467, ++ 468, 469, 470, -1, -1, -1, 474, -1, -1, -1, ++ 478, -1, 480, 481, 482, 483, -1, 485, 486, 487, ++ 488, 489, 490, -1, -1, -1, -1, -1, -1, 497, ++ 498, -1, 500, -1, -1, 503, -1, -1, 506, 507, ++ 508, -1, -1, 511, 512, -1, 514, 515, 516, 517, ++ 518, 519, -1, -1, 522, 523, 524, 525, -1, 527, ++ 528, -1, 530, -1, 532, 533, 534, 535, -1, -1, ++ 538, 539, -1, 541, 542, 543, 544, -1, -1, -1, ++ -1, -1, 550, 551, 552, -1, -1, -1, 556, 557, ++ 558, 559, -1, 561, 562, -1, 564, 565, -1, 567, ++ 568, -1, -1, 571, -1, -1, 574, -1, 576, -1, ++ 578, 579, 580, -1, -1, -1, -1, -1, -1, 587, ++ -1, -1, 590, -1, -1, -1, 594, 595, 596, 597, ++ 598, 599, -1, -1, -1, -1, -1, -1, 606, 607, ++ -1, 609, 610, 611, -1, 5, 614, 7, 8, 9, ++ 10, 11, -1, -1, 14, -1, 624, -1, 18, -1, ++ -1, 21, -1, 23, 24, 25, 26, 27, 28, 29, ++ -1, 31, -1, -1, -1, 35, -1, -1, -1, 39, ++ -1, -1, 42, 43, 44, -1, 46, -1, 48, 49, ++ -1, -1, 52, -1, -1, 55, 56, -1, 58, 59, ++ -1, 61, 62, -1, 64, 65, 66, 67, 68, 69, ++ 70, -1, 72, 73, 74, 75, 76, 77, 78, 79, ++ -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, ++ 90, 91, -1, 93, 94, 95, 96, 97, -1, 99, ++ -1, -1, 102, -1, -1, 105, -1, -1, -1, 109, ++ -1, -1, -1, 113, 114, 115, -1, -1, 118, -1, ++ -1, -1, -1, 123, 124, -1, -1, -1, -1, 129, ++ -1, 131, -1, -1, -1, 135, -1, 137, 138, 139, ++ 140, -1, -1, -1, 144, -1, -1, 147, 148, 149, ++ -1, -1, -1, 153, -1, 155, 156, -1, 158, 159, ++ 160, -1, 162, 163, -1, 165, 166, 167, 168, 169, ++ 170, -1, -1, 173, 174, 175, -1, -1, 178, 179, ++ -1, 181, 182, 183, -1, -1, 186, -1, -1, -1, ++ 190, -1, 192, -1, 194, -1, 196, 197, 198, 199, ++ 200, 201, -1, 203, -1, -1, 206, 207, 208, -1, ++ 210, -1, -1, -1, 214, 215, -1, -1, -1, 219, ++ 220, 221, 222, -1, -1, 225, 226, 227, -1, 229, ++ -1, 231, -1, -1, -1, -1, 236, 237, -1, -1, ++ -1, 241, -1, 243, 244, -1, 246, 247, -1, -1, ++ -1, 251, -1, -1, 254, 255, 256, -1, -1, 259, ++ -1, -1, 262, 263, -1, -1, -1, -1, -1, 269, ++ 270, -1, 272, -1, 274, -1, 276, 277, -1, -1, ++ -1, -1, -1, -1, 284, 285, 286, 287, 288, 289, ++ 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, ++ 300, -1, 302, 303, 304, 305, -1, 307, 308, -1, ++ -1, -1, -1, 313, 314, 315, 316, 317, 318, -1, ++ -1, 321, 322, -1, 324, -1, 326, -1, 328, 329, ++ 330, 331, 332, 333, 334, 335, 336, 337, -1, -1, ++ 340, 341, -1, -1, 344, 345, 346, 347, -1, -1, ++ -1, 351, 352, -1, -1, -1, -1, 357, 358, 359, ++ -1, 361, 362, 363, 364, -1, 366, 367, -1, -1, ++ -1, -1, -1, -1, -1, -1, 376, 377, 378, -1, ++ -1, 381, -1, 383, 384, 385, 386, 387, 388, 389, ++ 390, 391, 392, 393, 394, -1, -1, 397, 398, 399, ++ -1, 401, -1, 403, 404, 405, 406, 407, -1, 409, ++ 410, 411, -1, -1, 414, -1, -1, -1, 418, 419, ++ 420, 421, 422, -1, -1, 425, 426, 427, 428, 429, ++ -1, 431, 432, -1, 434, 435, 436, -1, -1, 439, ++ -1, 441, -1, 443, 444, -1, 446, 447, -1, -1, ++ -1, 451, 452, 453, 454, 455, 456, 457, 458, 459, ++ 460, -1, 462, 463, -1, -1, -1, 467, 468, 469, ++ 470, -1, -1, -1, 474, -1, -1, -1, 478, -1, ++ 480, 481, 482, 483, -1, 485, 486, 487, 488, 489, ++ 490, -1, -1, -1, -1, -1, -1, 497, 498, -1, ++ 500, -1, -1, 503, -1, -1, 506, 507, 508, -1, ++ -1, 511, 512, -1, 514, 515, 516, 517, 518, 519, ++ -1, -1, 522, 523, 524, 525, -1, 527, 528, -1, ++ 530, -1, 532, 533, 534, 535, -1, -1, 538, 539, ++ -1, 541, 542, 543, 544, -1, -1, -1, -1, -1, ++ 550, 551, 552, -1, -1, -1, 556, 557, 558, 559, ++ -1, 561, 562, -1, 564, 565, -1, 567, 568, -1, ++ -1, 571, -1, -1, 574, -1, 576, -1, 578, 579, ++ 580, -1, -1, -1, -1, -1, -1, 587, -1, -1, ++ 590, -1, -1, -1, 594, 595, 596, 597, 598, 599, ++ -1, -1, -1, -1, -1, -1, 606, 607, -1, 609, ++ 610, 611, -1, 5, 614, 7, 8, 9, 10, 11, ++ -1, -1, 14, -1, 624, -1, 18, -1, -1, 21, ++ -1, 23, 24, 25, 26, 27, 28, 29, -1, 31, ++ -1, -1, 34, 35, -1, -1, -1, 39, -1, -1, ++ 42, 43, 44, -1, 46, -1, 48, 49, -1, -1, ++ 52, -1, -1, 55, 56, -1, 58, 59, -1, 61, ++ 62, -1, 64, 65, 66, 67, 68, 69, 70, -1, ++ 72, 73, 74, 75, 76, 77, 78, 79, -1, 81, ++ 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, ++ -1, 93, 94, 95, 96, 97, -1, 99, -1, -1, ++ 102, -1, -1, 105, -1, -1, -1, 109, -1, -1, ++ -1, 113, 114, 115, -1, -1, 118, -1, -1, -1, ++ -1, 123, 124, -1, -1, -1, 128, 129, -1, 131, ++ -1, -1, -1, 135, -1, 137, 138, 139, 140, -1, ++ -1, -1, 144, -1, -1, 147, 148, 149, -1, -1, ++ -1, 153, -1, 155, 156, -1, 158, 159, 160, -1, ++ 162, 163, -1, 165, 166, 167, 168, 169, 170, -1, ++ -1, 173, 174, 175, -1, -1, 178, 179, -1, 181, ++ 182, 183, -1, -1, 186, -1, -1, -1, 190, -1, ++ 192, -1, 194, -1, 196, 197, 198, 199, 200, 201, ++ -1, 203, -1, -1, 206, 207, 208, -1, 210, -1, ++ -1, -1, 214, 215, -1, -1, -1, 219, 220, 221, ++ 222, -1, -1, 225, 226, 227, -1, 229, -1, 231, ++ -1, -1, -1, -1, 236, 237, -1, -1, -1, 241, ++ -1, 243, 244, -1, 246, 247, -1, -1, -1, 251, ++ -1, -1, 254, 255, 256, -1, -1, 259, -1, -1, ++ 262, 263, 264, -1, -1, -1, -1, 269, 270, -1, ++ 272, -1, 274, -1, 276, 277, -1, -1, -1, -1, ++ -1, -1, 284, 285, 286, 287, 288, 289, 290, 291, ++ 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, ++ 302, 303, 304, 305, -1, 307, 308, -1, -1, -1, ++ -1, 313, 314, 315, 316, 317, 318, -1, -1, 321, ++ 322, -1, 324, -1, 326, -1, 328, 329, 330, 331, ++ 332, 333, 334, 335, 336, 337, -1, -1, 340, 341, ++ -1, -1, 344, 345, 346, 347, -1, -1, -1, 351, ++ 352, -1, -1, -1, -1, 357, 358, 359, -1, 361, ++ 362, 363, 364, -1, 366, 367, -1, -1, -1, -1, ++ -1, -1, -1, -1, 376, 377, 378, -1, -1, 381, ++ -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, ++ 392, 393, 394, -1, -1, 397, 398, 399, -1, 401, ++ -1, 403, 404, 405, 406, 407, -1, 409, 410, 411, ++ -1, -1, 414, -1, -1, -1, 418, 419, 420, 421, ++ 422, -1, -1, 425, 426, 427, 428, 429, -1, 431, ++ 432, -1, 434, 435, 436, -1, -1, 439, -1, 441, ++ -1, 443, 444, -1, 446, 447, -1, -1, -1, 451, ++ 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, ++ 462, 463, -1, -1, -1, 467, 468, 469, 470, -1, ++ -1, 473, 474, -1, -1, -1, 478, -1, 480, 481, ++ 482, 483, -1, 485, 486, 487, 488, 489, 490, -1, ++ -1, -1, -1, -1, -1, 497, 498, -1, 500, -1, ++ -1, 503, -1, -1, 506, 507, 508, -1, -1, 511, ++ 512, -1, 514, 515, 516, 517, 518, 519, -1, -1, ++ 522, 523, 524, 525, -1, 527, 528, -1, 530, -1, ++ 532, 533, 534, 535, -1, 537, 538, 539, -1, 541, ++ 542, 543, 544, -1, -1, -1, -1, -1, 550, 551, ++ 552, -1, -1, -1, 556, 557, 558, 559, -1, 561, ++ 562, -1, 564, 565, -1, 567, 568, -1, -1, 571, ++ -1, -1, 574, -1, 576, -1, 578, 579, 580, -1, ++ -1, -1, -1, -1, -1, 587, -1, -1, 590, -1, ++ -1, -1, 594, 595, 596, 597, 598, 599, -1, -1, ++ -1, -1, -1, -1, 606, 607, -1, 609, 610, 611, ++ -1, -1, 614, -1, 5, 617, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, 125, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, 184, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ 211, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, 280, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, 348, 349, -1, ++ 351, 352, -1, -1, 355, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, 493, 494, 495, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, 560, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, 125, -1, -1, 128, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, 184, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, 211, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, 280, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, 355, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, 537, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, 560, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, -1, -1, ++ 55, 56, -1, 58, 59, -1, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, 124, ++ 125, -1, -1, 128, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, -1, 181, 182, 183, 184, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, 206, 207, 208, -1, 210, 211, -1, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, -1, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, 237, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, 280, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, 351, 352, -1, -1, ++ 355, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, -1, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ -1, -1, 397, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, -1, -1, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, -1, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, -1, -1, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, 537, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, 556, 557, 558, 559, 560, 561, 562, -1, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, 125, -1, ++ -1, 128, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, 184, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, 211, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, 280, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, 355, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ 537, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, 560, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, 36, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, 211, 212, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, -1, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, 537, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, 280, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, 355, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, 380, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, 560, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, 34, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, 128, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, 264, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, 537, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, -1, -1, ++ 55, 56, -1, 58, 59, -1, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, 124, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, -1, 181, 182, 183, -1, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, 206, 207, 208, -1, 210, -1, -1, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, -1, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, 237, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, 280, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, 351, 352, -1, -1, ++ 355, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, 380, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ -1, -1, 397, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, -1, -1, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, -1, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, -1, -1, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, 556, 557, 558, 559, 560, 561, 562, -1, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, 34, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, 128, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, 264, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ 537, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, -1, -1, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, 280, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, 355, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, 380, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, -1, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, 560, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, 107, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, 264, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, 537, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, 12, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, 264, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, 537, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, 34, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, -1, -1, ++ 55, 56, -1, 58, 59, -1, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, 124, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, -1, 181, 182, 183, -1, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, 206, 207, 208, -1, 210, -1, -1, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, -1, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, 237, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, -1, 262, 263, 264, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, 351, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, -1, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ -1, -1, 397, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, -1, -1, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, -1, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, -1, -1, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, 537, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, 556, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, 128, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, 264, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ 537, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, -1, -1, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, 264, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, -1, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, 537, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, 19, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, 537, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, 98, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, 172, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, -1, -1, ++ 55, 56, -1, 58, 59, -1, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, 124, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, -1, 181, 182, 183, -1, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, 206, 207, 208, -1, 210, -1, -1, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, -1, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, 237, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, 351, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, -1, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ -1, -1, 397, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, -1, -1, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, -1, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, 494, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, -1, -1, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, 556, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, 191, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ -1, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, 128, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, -1, -1, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, -1, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, -1, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, 128, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, 12, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, 21, -1, 23, 24, ++ 25, 26, 27, 28, 29, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, 48, 49, -1, -1, 52, -1, -1, ++ 55, 56, -1, 58, 59, -1, 61, 62, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, ++ 75, 76, 77, 78, 79, -1, 81, 82, 83, 84, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, 96, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, 124, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, 144, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, 169, 170, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, -1, 181, 182, 183, -1, ++ -1, 186, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, 206, 207, 208, -1, 210, -1, -1, -1, 214, ++ 215, -1, -1, -1, 219, 220, 221, 222, -1, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, 237, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, 254, ++ 255, 256, -1, -1, 259, -1, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, 351, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1, ++ -1, 376, 377, 378, -1, -1, 381, -1, 383, 384, ++ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, ++ -1, -1, 397, 398, 399, 400, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, 432, -1, 434, ++ 435, 436, -1, -1, 439, -1, 441, -1, 443, 444, ++ -1, 446, 447, -1, -1, -1, 451, 452, 453, 454, ++ 455, 456, 457, 458, 459, 460, -1, 462, 463, -1, ++ -1, -1, 467, 468, 469, 470, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, 480, 481, 482, 483, -1, ++ 485, 486, 487, 488, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, 507, 508, -1, -1, 511, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, 556, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, 567, 568, -1, -1, 571, -1, -1, 574, ++ -1, 576, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, 607, -1, 609, 610, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, 21, -1, 23, 24, 25, 26, ++ 27, 28, 29, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, 48, 49, -1, -1, 52, -1, -1, 55, 56, ++ -1, 58, 59, -1, 61, 62, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, ++ 77, 78, 79, -1, 81, 82, 83, 84, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, 96, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, 124, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, 144, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, 169, 170, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, -1, 181, 182, 183, -1, -1, 186, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, 206, ++ 207, 208, -1, 210, -1, -1, -1, 214, 215, -1, ++ -1, -1, 219, 220, 221, 222, -1, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ 237, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, -1, -1, -1, 251, -1, -1, 254, 255, 256, ++ -1, -1, 259, -1, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, -1, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, 351, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, 366, ++ 367, -1, -1, -1, -1, -1, -1, -1, -1, 376, ++ 377, 378, -1, -1, 381, -1, 383, 384, 385, 386, ++ 387, 388, 389, 390, 391, 392, 393, 394, -1, -1, ++ 397, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, 432, -1, 434, 435, 436, ++ -1, -1, 439, -1, 441, -1, 443, 444, -1, 446, ++ 447, -1, -1, -1, 451, 452, 453, 454, 455, 456, ++ 457, 458, 459, 460, -1, 462, 463, -1, -1, -1, ++ 467, 468, 469, 470, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, 480, 481, 482, 483, -1, 485, 486, ++ 487, 488, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ 507, 508, -1, -1, 511, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ 537, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, 556, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ 567, 568, -1, -1, 571, -1, -1, 574, -1, 576, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, -1, -1, -1, -1, 606, ++ 607, -1, 609, 610, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, 21, -1, 23, 24, 25, 26, 27, 28, ++ 29, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, 48, ++ 49, -1, -1, 52, -1, -1, 55, 56, -1, 58, ++ 59, -1, 61, 62, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, ++ 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, 96, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, 124, -1, -1, -1, 128, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, 144, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ 169, 170, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, -1, 181, 182, 183, -1, -1, 186, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, 206, 207, 208, ++ -1, 210, -1, -1, -1, 214, 215, -1, -1, -1, ++ 219, 220, 221, 222, -1, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, 237, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, -1, ++ -1, -1, 251, -1, -1, 254, 255, 256, -1, -1, ++ 259, -1, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, -1, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, 351, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, 366, 367, -1, ++ -1, -1, -1, -1, -1, -1, -1, 376, 377, 378, ++ -1, -1, 381, -1, 383, 384, 385, 386, 387, 388, ++ 389, 390, 391, 392, 393, 394, -1, -1, 397, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, 432, -1, 434, 435, 436, -1, -1, ++ 439, -1, 441, -1, 443, 444, -1, 446, 447, -1, ++ -1, -1, 451, 452, 453, 454, 455, 456, 457, 458, ++ 459, 460, -1, 462, 463, -1, -1, -1, 467, 468, ++ 469, 470, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, 480, 481, 482, 483, -1, 485, 486, 487, 488, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, 507, 508, ++ -1, -1, 511, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, -1, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, 556, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, 567, 568, ++ -1, -1, 571, -1, -1, 574, -1, 576, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, -1, -1, -1, -1, 606, 607, -1, ++ 609, 610, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, 48, 49, -1, ++ -1, 52, -1, -1, 55, 56, -1, 58, 59, -1, ++ 61, 62, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, 74, 75, 76, 77, 78, 79, -1, ++ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, 96, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, 124, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, 144, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, 169, 170, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, -1, ++ 181, 182, 183, -1, -1, 186, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, 206, 207, 208, -1, 210, ++ -1, -1, -1, 214, 215, -1, -1, -1, 219, 220, ++ 221, 222, -1, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, 237, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, -1, -1, -1, ++ 251, -1, -1, 254, 255, 256, -1, -1, 259, -1, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, -1, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ 351, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, 366, 367, -1, -1, -1, ++ -1, -1, -1, -1, -1, 376, 377, 378, -1, -1, ++ 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, ++ 391, 392, 393, 394, -1, -1, 397, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, 432, -1, 434, 435, 436, -1, -1, 439, -1, ++ 441, -1, 443, 444, -1, 446, 447, -1, -1, -1, ++ 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, ++ -1, 462, 463, -1, -1, -1, 467, 468, 469, 470, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, 480, ++ 481, 482, 483, -1, 485, 486, 487, 488, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, 507, 508, -1, -1, ++ 511, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, 556, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, 567, 568, -1, -1, ++ 571, -1, -1, 574, -1, 576, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, -1, -1, -1, -1, 606, 607, -1, 609, 610, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, 21, -1, ++ 23, 24, 25, 26, 27, 28, 29, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, 48, 49, -1, -1, 52, ++ -1, -1, 55, 56, -1, 58, 59, -1, 61, 62, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, 74, 75, 76, 77, 78, 79, -1, 81, 82, ++ 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, 96, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, 144, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, 169, 170, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, -1, 181, 182, ++ 183, -1, -1, 186, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, 206, 207, 208, -1, 210, -1, -1, ++ -1, 214, 215, -1, -1, -1, 219, 220, 221, 222, ++ -1, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, 237, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, -1, -1, -1, 251, -1, ++ -1, 254, 255, 256, -1, -1, 259, -1, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, -1, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, 351, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, 366, 367, -1, -1, -1, -1, -1, ++ -1, -1, -1, 376, 377, 378, -1, -1, 381, -1, ++ 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, ++ 393, 394, -1, -1, 397, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, 432, ++ -1, 434, 435, 436, -1, -1, 439, -1, 441, -1, ++ 443, 444, -1, 446, 447, -1, -1, -1, 451, 452, ++ 453, 454, 455, 456, 457, 458, 459, 460, -1, 462, ++ 463, -1, -1, -1, 467, 468, 469, 470, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, 480, 481, 482, ++ 483, -1, 485, 486, 487, 488, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, 507, 508, -1, -1, 511, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, 556, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, 567, 568, -1, -1, 571, -1, ++ -1, 574, -1, 576, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, -1, ++ -1, -1, -1, 606, 607, -1, 609, 610, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, -1, -1, 23, 24, ++ 25, 26, 27, 28, -1, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, -1, -1, -1, -1, 52, 53, -1, ++ 55, 56, -1, 58, -1, -1, -1, -1, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, -1, ++ -1, -1, -1, -1, -1, -1, 81, -1, 83, -1, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, -1, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, -1, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, ++ -1, -1, 147, 148, 149, -1, 151, 152, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, -1, -1, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, 180, 181, 182, 183, -1, ++ -1, -1, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, -1, 207, 208, -1, -1, -1, -1, -1, -1, ++ 215, -1, -1, -1, 219, 220, 221, 222, 223, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, -1, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, 248, -1, -1, 251, -1, -1, -1, ++ 255, 256, -1, -1, 259, 260, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, 282, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, -1, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 377, 378, -1, -1, -1, -1, 383, 384, ++ 385, -1, 387, 388, 389, 390, 391, 392, 393, -1, ++ -1, -1, -1, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, -1, -1, 434, ++ -1, 436, 437, -1, 439, -1, -1, -1, 443, -1, ++ -1, 446, 447, 448, -1, -1, -1, 452, 453, 454, ++ 455, 456, 457, -1, 459, 460, -1, 462, -1, -1, ++ -1, -1, 467, 468, 469, -1, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, -1, 481, -1, 483, -1, ++ 485, -1, 487, -1, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, -1, 508, -1, -1, -1, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, -1, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, -1, -1, -1, -1, 571, -1, -1, 574, ++ -1, -1, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, 602, -1, -1, ++ -1, 606, -1, -1, 609, -1, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, -1, -1, 23, 24, 25, 26, ++ 27, 28, -1, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, -1, -1, -1, -1, 52, 53, -1, 55, 56, ++ -1, 58, -1, -1, -1, -1, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, -1, -1, -1, ++ -1, -1, -1, -1, 81, -1, 83, -1, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, -1, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, -1, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, ++ 147, 148, 149, -1, 151, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, -1, -1, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, 180, 181, 182, 183, -1, -1, -1, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, -1, ++ 207, 208, -1, -1, -1, -1, -1, -1, 215, -1, ++ -1, -1, 219, 220, 221, 222, 223, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ -1, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, 248, -1, -1, 251, -1, -1, -1, 255, 256, ++ -1, -1, 259, 260, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, 282, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, -1, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 377, 378, -1, -1, -1, -1, 383, 384, 385, -1, ++ 387, 388, 389, 390, 391, 392, 393, -1, -1, -1, ++ -1, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, -1, -1, 434, -1, 436, ++ 437, -1, 439, -1, -1, -1, 443, -1, -1, 446, ++ 447, 448, -1, -1, -1, 452, 453, 454, 455, 456, ++ 457, -1, 459, 460, -1, 462, -1, -1, -1, -1, ++ 467, 468, 469, -1, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, -1, 481, -1, 483, -1, 485, -1, ++ 487, -1, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ -1, 508, -1, -1, -1, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ -1, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, -1, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ -1, -1, -1, -1, 571, -1, -1, 574, -1, -1, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, 600, -1, 602, -1, -1, -1, 606, ++ -1, -1, 609, -1, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, -1, -1, 23, 24, 25, 26, 27, 28, ++ -1, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, -1, ++ -1, -1, -1, 52, 53, -1, 55, 56, -1, 58, ++ -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, -1, -1, -1, -1, -1, ++ -1, -1, 81, -1, 83, -1, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, -1, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, -1, -1, -1, 147, 148, ++ 149, -1, 151, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ -1, -1, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, 180, 181, 182, 183, -1, -1, -1, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, -1, 207, 208, ++ -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, ++ 219, 220, 221, 222, 223, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, -1, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, 248, ++ -1, -1, 251, -1, -1, -1, 255, 256, -1, -1, ++ 259, 260, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, 282, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, -1, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 377, 378, ++ -1, -1, -1, -1, 383, 384, 385, -1, 387, 388, ++ 389, 390, 391, 392, 393, -1, -1, -1, -1, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, -1, -1, 434, -1, 436, 437, -1, ++ 439, -1, -1, -1, 443, -1, -1, 446, 447, 448, ++ -1, -1, -1, 452, 453, 454, 455, 456, 457, -1, ++ 459, 460, -1, 462, -1, -1, -1, -1, 467, 468, ++ 469, -1, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, -1, 481, -1, 483, -1, 485, -1, 487, -1, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, -1, 508, ++ -1, -1, -1, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, -1, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, -1, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, -1, -1, ++ -1, -1, 571, -1, -1, 574, -1, -1, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, 600, -1, 602, -1, -1, -1, 606, -1, -1, ++ 609, -1, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ -1, -1, 23, 24, 25, 26, 27, 28, -1, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, -1, -1, -1, ++ -1, 52, 53, -1, 55, 56, -1, 58, -1, -1, ++ -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, -1, -1, -1, -1, -1, -1, -1, ++ 81, -1, 83, -1, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, -1, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, -1, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, -1, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, 155, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, -1, -1, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, 180, ++ 181, 182, 183, -1, -1, -1, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, -1, 207, 208, -1, -1, ++ -1, -1, -1, -1, 215, -1, -1, -1, 219, 220, ++ 221, 222, 223, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, -1, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, 248, -1, -1, ++ 251, -1, -1, -1, 255, 256, -1, -1, 259, 260, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, 282, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ -1, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 377, 378, -1, -1, ++ -1, -1, 383, 384, 385, -1, 387, 388, 389, 390, ++ 391, 392, 393, -1, -1, -1, -1, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, -1, -1, 434, -1, 436, 437, -1, 439, -1, ++ -1, -1, 443, -1, -1, 446, 447, 448, -1, -1, ++ -1, 452, 453, 454, 455, 456, 457, -1, 459, 460, ++ -1, 462, -1, -1, -1, -1, 467, 468, 469, -1, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, -1, ++ 481, -1, 483, -1, 485, -1, 487, -1, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, -1, 508, -1, -1, ++ -1, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, -1, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, -1, -1, -1, -1, ++ 571, -1, -1, 574, -1, -1, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, 602, -1, -1, -1, 606, -1, -1, 609, -1, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, -1, -1, ++ 23, 24, 25, 26, 27, 28, -1, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, -1, -1, -1, -1, 52, ++ 53, -1, 55, 56, -1, 58, -1, -1, -1, -1, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, -1, -1, -1, -1, -1, -1, -1, 81, -1, ++ 83, -1, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, -1, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, -1, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, -1, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, 155, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, -1, -1, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, 180, 181, 182, ++ 183, -1, -1, -1, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, -1, 207, 208, -1, -1, -1, -1, ++ -1, -1, 215, -1, -1, -1, 219, 220, 221, 222, ++ 223, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, -1, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, 248, -1, -1, 251, -1, ++ -1, -1, 255, 256, -1, -1, 259, 260, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, 282, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, -1, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 377, 378, -1, -1, -1, -1, ++ 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, ++ 393, -1, -1, -1, -1, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, -1, ++ -1, 434, -1, 436, 437, -1, 439, -1, -1, -1, ++ 443, -1, -1, 446, 447, 448, -1, -1, -1, 452, ++ 453, 454, 455, 456, 457, -1, 459, 460, -1, 462, ++ -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, -1, 481, -1, ++ 483, -1, 485, -1, 487, -1, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, -1, 508, -1, -1, -1, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, -1, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, -1, -1, -1, -1, 571, -1, ++ -1, 574, -1, -1, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, 602, ++ -1, -1, -1, 606, -1, -1, 609, -1, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, -1, -1, 23, 24, ++ 25, 26, 27, 28, -1, -1, 31, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, -1, -1, -1, -1, 52, 53, -1, ++ 55, 56, -1, 58, -1, -1, -1, -1, -1, 64, ++ 65, 66, 67, 68, 69, 70, -1, 72, 73, -1, ++ -1, -1, -1, -1, -1, -1, 81, -1, 83, -1, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, -1, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, -1, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ 155, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, -1, -1, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, 180, 181, 182, 183, -1, ++ -1, -1, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, -1, 207, 208, -1, -1, -1, -1, -1, -1, ++ 215, -1, -1, -1, 219, 220, 221, 222, 223, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, -1, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, 248, -1, -1, 251, -1, -1, -1, ++ 255, 256, -1, -1, 259, 260, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, 282, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, -1, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, 364, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 377, 378, -1, -1, -1, -1, 383, 384, ++ 385, -1, 387, 388, 389, 390, 391, 392, 393, -1, ++ -1, -1, -1, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, -1, -1, 434, ++ -1, 436, 437, -1, 439, -1, -1, -1, 443, -1, ++ -1, 446, 447, 448, -1, -1, -1, 452, 453, 454, ++ 455, 456, 457, -1, 459, 460, -1, 462, -1, -1, ++ -1, -1, 467, 468, 469, -1, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, -1, 481, -1, 483, -1, ++ 485, -1, 487, -1, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, -1, 508, -1, -1, -1, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, -1, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, -1, -1, -1, -1, 571, -1, -1, 574, ++ -1, -1, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, 602, -1, -1, ++ -1, 606, -1, -1, 609, -1, 611, -1, 5, 614, ++ 7, 8, 9, 10, 11, -1, -1, 14, -1, -1, ++ -1, 18, -1, -1, -1, -1, 23, 24, 25, 26, ++ 27, 28, -1, -1, 31, -1, -1, -1, 35, -1, ++ -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, ++ -1, -1, -1, -1, -1, 52, 53, -1, 55, 56, ++ -1, 58, -1, -1, -1, -1, -1, 64, 65, 66, ++ 67, 68, 69, 70, -1, 72, 73, -1, -1, -1, ++ -1, -1, -1, -1, 81, -1, 83, -1, 85, 86, ++ 87, 88, -1, 90, 91, -1, 93, 94, 95, -1, ++ 97, -1, 99, -1, -1, 102, -1, -1, 105, -1, ++ -1, -1, 109, -1, -1, -1, 113, 114, 115, -1, ++ -1, 118, -1, -1, -1, -1, 123, -1, -1, -1, ++ -1, -1, 129, -1, 131, -1, -1, -1, 135, -1, ++ 137, 138, 139, 140, -1, -1, -1, -1, -1, -1, ++ 147, 148, 149, -1, -1, -1, 153, -1, 155, 156, ++ -1, 158, 159, 160, -1, 162, 163, -1, 165, 166, ++ 167, 168, -1, -1, -1, -1, 173, 174, 175, -1, ++ -1, 178, 179, 180, 181, 182, 183, -1, -1, -1, ++ -1, -1, -1, 190, -1, 192, -1, 194, -1, 196, ++ 197, 198, 199, 200, 201, -1, 203, -1, -1, -1, ++ 207, 208, -1, -1, -1, -1, -1, -1, 215, -1, ++ -1, -1, 219, 220, 221, 222, 223, -1, 225, 226, ++ 227, -1, 229, -1, 231, -1, -1, -1, -1, 236, ++ -1, -1, -1, -1, 241, -1, 243, 244, -1, 246, ++ 247, 248, -1, -1, 251, -1, -1, -1, 255, 256, ++ -1, -1, 259, 260, -1, 262, 263, -1, -1, -1, ++ -1, -1, 269, 270, -1, 272, -1, 274, -1, 276, ++ 277, -1, -1, -1, -1, 282, -1, 284, 285, 286, ++ 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, ++ -1, 298, 299, 300, -1, 302, 303, 304, 305, -1, ++ 307, 308, -1, -1, -1, -1, 313, 314, 315, 316, ++ 317, 318, -1, -1, 321, 322, -1, 324, -1, 326, ++ -1, 328, 329, 330, 331, 332, 333, 334, 335, 336, ++ 337, -1, -1, 340, 341, -1, -1, 344, 345, 346, ++ 347, -1, -1, -1, -1, 352, -1, -1, -1, -1, ++ 357, 358, 359, -1, 361, 362, 363, 364, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ 377, 378, -1, -1, -1, -1, 383, 384, 385, -1, ++ 387, 388, 389, 390, 391, 392, 393, -1, -1, -1, ++ -1, 398, 399, -1, 401, -1, 403, 404, 405, 406, ++ 407, -1, 409, 410, 411, -1, -1, 414, -1, -1, ++ -1, 418, 419, 420, 421, 422, -1, -1, 425, 426, ++ 427, 428, 429, -1, 431, -1, -1, 434, -1, 436, ++ 437, -1, 439, -1, -1, -1, 443, -1, -1, 446, ++ 447, 448, -1, -1, -1, 452, 453, 454, 455, 456, ++ 457, -1, 459, 460, -1, 462, -1, -1, -1, -1, ++ 467, 468, 469, -1, -1, -1, -1, 474, -1, -1, ++ -1, 478, -1, -1, 481, -1, 483, -1, 485, -1, ++ 487, -1, 489, 490, -1, -1, -1, -1, -1, -1, ++ 497, 498, -1, 500, -1, -1, 503, -1, -1, 506, ++ -1, 508, -1, -1, -1, 512, -1, 514, 515, 516, ++ 517, 518, 519, -1, -1, 522, 523, 524, 525, -1, ++ 527, 528, -1, 530, -1, 532, 533, 534, 535, -1, ++ -1, 538, 539, -1, 541, 542, 543, 544, -1, -1, ++ -1, -1, -1, 550, 551, 552, -1, -1, -1, -1, ++ 557, 558, 559, -1, 561, 562, -1, 564, 565, -1, ++ -1, -1, -1, -1, 571, -1, -1, 574, -1, -1, ++ -1, 578, 579, 580, -1, -1, -1, -1, -1, -1, ++ 587, -1, -1, 590, -1, -1, -1, 594, 595, 596, ++ 597, 598, 599, -1, -1, 602, -1, -1, -1, 606, ++ -1, -1, 609, -1, 611, -1, 5, 614, 7, 8, ++ 9, 10, 11, -1, -1, 14, -1, -1, -1, 18, ++ -1, -1, -1, -1, 23, 24, 25, 26, 27, 28, ++ -1, -1, 31, -1, -1, -1, 35, -1, -1, -1, ++ 39, -1, -1, 42, 43, 44, -1, 46, -1, -1, ++ -1, -1, -1, 52, 53, -1, 55, 56, -1, 58, ++ -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, ++ 69, 70, -1, 72, 73, -1, -1, -1, -1, -1, ++ -1, -1, 81, -1, 83, -1, 85, 86, 87, 88, ++ -1, 90, 91, -1, 93, 94, 95, -1, 97, -1, ++ 99, -1, -1, 102, -1, -1, 105, -1, -1, -1, ++ 109, -1, -1, -1, 113, 114, 115, -1, -1, 118, ++ -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, ++ 129, -1, 131, -1, -1, -1, 135, -1, 137, 138, ++ 139, 140, -1, -1, -1, -1, -1, -1, 147, 148, ++ 149, -1, -1, -1, 153, -1, 155, 156, -1, 158, ++ 159, 160, -1, 162, 163, -1, 165, 166, 167, 168, ++ -1, -1, -1, -1, 173, 174, 175, -1, -1, 178, ++ 179, 180, 181, 182, 183, -1, -1, -1, -1, -1, ++ -1, 190, -1, 192, -1, 194, -1, 196, 197, 198, ++ 199, 200, 201, -1, 203, -1, -1, -1, 207, 208, ++ -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, ++ 219, 220, 221, 222, 223, -1, 225, 226, 227, -1, ++ 229, -1, 231, -1, -1, -1, -1, 236, -1, -1, ++ -1, -1, 241, -1, 243, 244, -1, 246, 247, 248, ++ -1, -1, 251, -1, -1, -1, 255, 256, -1, -1, ++ 259, 260, -1, 262, 263, -1, -1, -1, -1, -1, ++ 269, 270, -1, 272, -1, 274, -1, 276, 277, -1, ++ -1, -1, -1, 282, -1, 284, 285, 286, 287, 288, ++ 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, ++ 299, 300, -1, 302, 303, 304, 305, -1, 307, 308, ++ -1, -1, -1, -1, 313, 314, 315, 316, 317, 318, ++ -1, -1, 321, 322, -1, 324, -1, 326, -1, 328, ++ 329, 330, 331, 332, 333, 334, 335, 336, 337, -1, ++ -1, 340, 341, -1, -1, 344, 345, 346, 347, -1, ++ -1, -1, -1, 352, -1, -1, -1, -1, 357, 358, ++ 359, -1, 361, 362, 363, 364, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, 377, 378, ++ -1, -1, -1, -1, 383, 384, 385, -1, 387, 388, ++ 389, 390, 391, 392, 393, -1, -1, -1, -1, 398, ++ 399, -1, 401, -1, 403, 404, 405, 406, 407, -1, ++ 409, 410, 411, -1, -1, 414, -1, -1, -1, 418, ++ 419, 420, 421, 422, -1, -1, 425, 426, 427, 428, ++ 429, -1, 431, -1, -1, 434, -1, 436, 437, -1, ++ 439, -1, -1, -1, 443, -1, -1, 446, 447, 448, ++ -1, -1, -1, 452, 453, 454, 455, 456, 457, -1, ++ 459, 460, -1, 462, -1, -1, -1, -1, 467, 468, ++ 469, -1, -1, -1, -1, 474, -1, -1, -1, 478, ++ -1, -1, 481, -1, 483, -1, 485, -1, 487, -1, ++ 489, 490, -1, -1, -1, -1, -1, -1, 497, 498, ++ -1, 500, -1, -1, 503, -1, -1, 506, -1, 508, ++ -1, -1, -1, 512, -1, 514, 515, 516, 517, 518, ++ 519, -1, -1, 522, 523, 524, 525, -1, 527, 528, ++ -1, 530, -1, 532, 533, 534, 535, -1, -1, 538, ++ 539, -1, 541, 542, 543, 544, -1, -1, -1, -1, ++ -1, 550, 551, 552, -1, -1, -1, -1, 557, 558, ++ 559, -1, 561, 562, -1, 564, 565, -1, -1, -1, ++ -1, -1, 571, -1, -1, 574, -1, -1, -1, 578, ++ 579, 580, -1, -1, -1, -1, -1, -1, 587, -1, ++ -1, 590, -1, -1, -1, 594, 595, 596, 597, 598, ++ 599, -1, -1, 602, -1, -1, -1, 606, -1, -1, ++ 609, -1, 611, -1, 5, 614, 7, 8, 9, 10, ++ 11, -1, -1, 14, -1, -1, -1, 18, -1, -1, ++ -1, -1, 23, 24, 25, 26, 27, 28, -1, -1, ++ 31, -1, -1, -1, 35, -1, -1, -1, 39, -1, ++ -1, 42, 43, 44, -1, 46, -1, -1, -1, -1, ++ -1, 52, 53, -1, 55, 56, -1, 58, -1, -1, ++ -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, ++ -1, 72, 73, -1, -1, -1, -1, -1, -1, -1, ++ 81, -1, 83, -1, 85, 86, 87, 88, -1, 90, ++ 91, -1, 93, 94, 95, -1, 97, -1, 99, -1, ++ -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, ++ -1, -1, 113, 114, 115, -1, -1, 118, -1, -1, ++ -1, -1, 123, -1, -1, -1, -1, -1, 129, -1, ++ 131, -1, -1, -1, 135, -1, 137, 138, 139, 140, ++ -1, -1, -1, -1, -1, -1, 147, 148, 149, -1, ++ -1, -1, 153, -1, -1, 156, -1, 158, 159, 160, ++ -1, 162, 163, -1, 165, 166, 167, 168, -1, -1, ++ -1, -1, 173, 174, 175, -1, -1, 178, 179, 180, ++ 181, 182, 183, -1, -1, -1, -1, -1, -1, 190, ++ -1, 192, -1, 194, -1, 196, 197, 198, 199, 200, ++ 201, -1, 203, -1, -1, -1, 207, 208, -1, -1, ++ -1, -1, -1, -1, 215, -1, -1, -1, 219, 220, ++ 221, 222, 223, -1, 225, 226, 227, -1, 229, -1, ++ 231, -1, -1, -1, -1, 236, -1, -1, -1, -1, ++ 241, -1, 243, 244, -1, 246, 247, 248, -1, -1, ++ 251, -1, -1, -1, 255, 256, -1, -1, 259, 260, ++ -1, 262, 263, -1, -1, -1, -1, -1, 269, 270, ++ -1, 272, -1, 274, -1, 276, 277, -1, -1, -1, ++ -1, 282, -1, 284, 285, 286, 287, 288, 289, 290, ++ 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, ++ -1, 302, 303, 304, 305, -1, 307, 308, -1, -1, ++ -1, -1, 313, 314, 315, 316, 317, 318, -1, -1, ++ 321, 322, -1, 324, -1, 326, -1, 328, 329, 330, ++ 331, 332, 333, 334, 335, 336, 337, -1, -1, 340, ++ 341, -1, -1, 344, 345, 346, 347, -1, -1, -1, ++ -1, 352, -1, -1, -1, -1, 357, 358, 359, -1, ++ 361, 362, 363, 364, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 377, 378, -1, -1, ++ -1, -1, 383, 384, 385, -1, 387, 388, 389, 390, ++ 391, 392, 393, -1, -1, -1, -1, 398, 399, -1, ++ 401, -1, 403, 404, 405, 406, 407, -1, 409, 410, ++ 411, -1, -1, 414, -1, -1, -1, 418, 419, 420, ++ 421, 422, -1, -1, 425, 426, 427, 428, 429, -1, ++ 431, -1, -1, 434, -1, 436, 437, -1, 439, -1, ++ -1, -1, 443, -1, -1, 446, 447, 448, -1, -1, ++ -1, 452, 453, 454, 455, 456, 457, -1, 459, 460, ++ -1, 462, -1, -1, -1, -1, 467, 468, 469, -1, ++ -1, -1, -1, 474, -1, -1, -1, 478, -1, -1, ++ 481, -1, 483, -1, 485, -1, 487, -1, 489, 490, ++ -1, -1, -1, -1, -1, -1, 497, 498, -1, 500, ++ -1, -1, 503, -1, -1, 506, -1, 508, -1, -1, ++ -1, 512, -1, 514, 515, 516, 517, 518, 519, -1, ++ -1, 522, 523, 524, 525, -1, 527, 528, -1, 530, ++ -1, 532, 533, 534, 535, -1, -1, 538, 539, -1, ++ 541, 542, 543, 544, -1, -1, -1, -1, -1, 550, ++ 551, 552, -1, -1, -1, -1, 557, 558, 559, -1, ++ 561, 562, -1, 564, 565, -1, -1, -1, -1, -1, ++ 571, -1, -1, 574, -1, -1, -1, 578, 579, 580, ++ -1, -1, -1, -1, -1, -1, 587, -1, -1, 590, ++ -1, -1, -1, 594, 595, 596, 597, 598, 599, -1, ++ -1, 602, -1, -1, -1, 606, -1, -1, 609, -1, ++ 611, -1, 5, 614, 7, 8, 9, 10, 11, -1, ++ -1, 14, -1, -1, -1, 18, -1, -1, -1, -1, ++ 23, 24, 25, 26, 27, 28, -1, -1, 31, -1, ++ -1, -1, 35, -1, -1, -1, 39, -1, -1, 42, ++ 43, 44, -1, 46, -1, -1, -1, -1, -1, 52, ++ 53, -1, 55, 56, -1, 58, -1, -1, -1, -1, ++ -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, ++ 73, -1, -1, -1, -1, -1, -1, -1, 81, -1, ++ 83, -1, 85, 86, 87, 88, -1, 90, 91, -1, ++ 93, 94, 95, -1, 97, -1, 99, -1, -1, 102, ++ -1, -1, 105, -1, -1, -1, 109, -1, -1, -1, ++ 113, 114, 115, -1, -1, 118, -1, -1, -1, -1, ++ 123, -1, -1, -1, -1, -1, 129, -1, 131, -1, ++ -1, -1, 135, -1, 137, 138, 139, 140, -1, -1, ++ -1, -1, -1, -1, 147, 148, 149, -1, -1, -1, ++ 153, -1, -1, 156, -1, 158, 159, 160, -1, 162, ++ 163, -1, 165, 166, 167, 168, -1, -1, -1, -1, ++ 173, 174, 175, -1, -1, 178, 179, 180, 181, 182, ++ 183, -1, -1, -1, -1, -1, -1, 190, -1, 192, ++ -1, 194, -1, 196, 197, 198, 199, 200, 201, -1, ++ 203, -1, -1, -1, 207, 208, -1, -1, -1, -1, ++ -1, -1, 215, -1, -1, -1, 219, 220, 221, 222, ++ 223, -1, 225, 226, 227, -1, 229, -1, 231, -1, ++ -1, -1, -1, 236, -1, -1, -1, -1, 241, -1, ++ 243, 244, -1, 246, 247, 248, -1, -1, 251, -1, ++ -1, -1, 255, 256, -1, -1, 259, 260, -1, 262, ++ 263, -1, -1, -1, -1, -1, 269, 270, -1, 272, ++ -1, 274, -1, 276, 277, -1, -1, -1, -1, 282, ++ -1, 284, 285, 286, 287, 288, 289, 290, 291, 292, ++ 293, 294, 295, 296, -1, 298, 299, 300, -1, 302, ++ 303, 304, 305, -1, 307, 308, -1, -1, -1, -1, ++ 313, 314, 315, 316, 317, 318, -1, -1, 321, 322, ++ -1, 324, -1, 326, -1, 328, 329, 330, 331, 332, ++ 333, 334, 335, 336, 337, -1, -1, 340, 341, -1, ++ -1, 344, 345, 346, 347, -1, -1, -1, -1, 352, ++ -1, -1, -1, -1, 357, 358, 359, -1, 361, 362, ++ 363, 364, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 377, 378, -1, -1, -1, -1, ++ 383, 384, 385, -1, 387, 388, 389, 390, 391, 392, ++ 393, -1, -1, -1, -1, 398, 399, -1, 401, -1, ++ 403, 404, 405, 406, 407, -1, 409, 410, 411, -1, ++ -1, 414, -1, -1, -1, 418, 419, 420, 421, 422, ++ -1, -1, 425, 426, 427, 428, 429, -1, 431, -1, ++ -1, 434, -1, 436, 437, -1, 439, -1, -1, -1, ++ 443, -1, -1, 446, 447, 448, -1, -1, -1, 452, ++ 453, 454, 455, 456, 457, -1, 459, 460, -1, 462, ++ -1, -1, -1, -1, 467, 468, 469, -1, -1, -1, ++ -1, 474, -1, -1, -1, 478, -1, -1, 481, -1, ++ 483, -1, 485, -1, 487, -1, 489, 490, -1, -1, ++ -1, -1, -1, -1, 497, 498, -1, 500, -1, -1, ++ 503, -1, -1, 506, -1, 508, -1, -1, -1, 512, ++ -1, 514, 515, 516, 517, 518, 519, -1, -1, 522, ++ 523, 524, 525, -1, 527, 528, -1, 530, -1, 532, ++ 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, ++ 543, 544, -1, -1, -1, -1, -1, 550, 551, 552, ++ -1, -1, -1, -1, 557, 558, 559, -1, 561, 562, ++ -1, 564, 565, -1, -1, -1, -1, -1, 571, -1, ++ -1, 574, -1, -1, -1, 578, 579, 580, -1, -1, ++ -1, -1, -1, -1, 587, -1, -1, 590, -1, -1, ++ -1, 594, 595, 596, 597, 598, 599, -1, -1, 602, ++ -1, -1, -1, 606, -1, -1, 609, -1, 611, -1, ++ 5, 614, 7, 8, 9, 10, 11, -1, -1, 14, ++ -1, -1, -1, 18, -1, -1, -1, -1, 23, 24, ++ 25, 26, 27, 28, -1, -1, -1, -1, -1, -1, ++ 35, -1, -1, -1, 39, -1, -1, 42, 43, 44, ++ -1, 46, -1, -1, -1, -1, -1, 52, -1, -1, ++ 55, 56, -1, 58, -1, -1, -1, -1, -1, 64, ++ 65, 66, 67, -1, 69, 70, -1, 72, 73, -1, ++ -1, -1, -1, -1, -1, -1, 81, -1, 83, -1, ++ 85, 86, 87, 88, -1, 90, 91, -1, 93, 94, ++ 95, -1, 97, -1, 99, -1, -1, 102, -1, -1, ++ 105, -1, -1, -1, 109, -1, -1, -1, 113, 114, ++ 115, -1, -1, 118, -1, -1, -1, -1, 123, -1, ++ -1, -1, -1, -1, 129, -1, 131, -1, -1, -1, ++ 135, -1, 137, 138, 139, 140, -1, -1, -1, -1, ++ -1, -1, 147, 148, 149, -1, -1, -1, 153, -1, ++ -1, 156, -1, 158, 159, 160, -1, 162, 163, -1, ++ 165, 166, 167, 168, -1, -1, -1, -1, 173, 174, ++ 175, -1, -1, 178, 179, -1, 181, 182, 183, -1, ++ -1, -1, -1, -1, -1, 190, -1, 192, -1, 194, ++ -1, 196, 197, 198, 199, 200, 201, -1, 203, -1, ++ -1, -1, 207, 208, -1, -1, -1, -1, -1, -1, ++ 215, -1, -1, -1, 219, 220, 221, 222, -1, -1, ++ 225, 226, 227, -1, 229, -1, 231, -1, -1, -1, ++ -1, 236, -1, -1, -1, -1, 241, -1, 243, 244, ++ -1, 246, 247, -1, -1, -1, 251, -1, -1, -1, ++ 255, 256, -1, -1, 259, -1, -1, 262, 263, -1, ++ -1, -1, -1, -1, 269, 270, -1, 272, -1, 274, ++ -1, 276, 277, -1, -1, -1, -1, -1, -1, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, -1, 298, 299, 300, -1, 302, 303, 304, ++ 305, -1, 307, 308, -1, -1, -1, -1, 313, 314, ++ 315, 316, 317, 318, -1, -1, 321, 322, -1, 324, ++ -1, 326, -1, 328, 329, 330, 331, 332, 333, 334, ++ 335, 336, 337, -1, -1, 340, 341, -1, -1, 344, ++ 345, 346, 347, -1, -1, -1, -1, 352, -1, -1, ++ -1, -1, 357, 358, 359, -1, 361, 362, 363, -1, ++ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 377, 378, -1, -1, -1, -1, 383, 384, ++ 385, -1, 387, 388, 389, 390, 391, 392, 393, -1, ++ -1, -1, -1, 398, 399, -1, 401, -1, 403, 404, ++ 405, 406, 407, -1, 409, 410, 411, -1, -1, 414, ++ -1, -1, -1, 418, 419, 420, 421, 422, -1, -1, ++ 425, 426, 427, 428, 429, -1, 431, -1, -1, 434, ++ -1, 436, -1, -1, 439, -1, -1, -1, 443, -1, ++ -1, 446, 447, -1, -1, -1, -1, 452, 453, 454, ++ 455, 456, 457, -1, 459, 460, -1, 462, -1, -1, ++ -1, -1, 467, 468, 469, -1, -1, -1, -1, 474, ++ -1, -1, -1, 478, -1, -1, 481, -1, 483, -1, ++ 485, -1, 487, -1, 489, 490, -1, -1, -1, -1, ++ -1, -1, 497, 498, -1, 500, -1, -1, 503, -1, ++ -1, 506, -1, 508, -1, -1, -1, 512, -1, 514, ++ 515, 516, 517, 518, 519, -1, -1, 522, 523, 524, ++ 525, -1, 527, 528, -1, 530, -1, 532, 533, 534, ++ 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, ++ -1, -1, -1, -1, -1, 550, 551, 552, -1, -1, ++ -1, -1, 557, 558, 559, -1, 561, 562, -1, 564, ++ 565, -1, -1, -1, -1, -1, 571, -1, -1, 574, ++ -1, -1, -1, 578, 579, 580, -1, -1, -1, -1, ++ -1, -1, 587, -1, -1, 590, -1, -1, -1, 594, ++ 595, 596, 597, 598, 599, -1, -1, -1, -1, -1, ++ -1, 606, -1, -1, 609, -1, 611, -1, -1, 614 ++}; ++ ++ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing ++ symbol of state STATE-NUM. */ ++static const yytype_uint16 yystos[] = ++{ ++ 0, 13, 15, 31, 35, 49, 50, 57, 62, 63, ++ 84, 103, 124, 132, 133, 134, 144, 145, 157, 170, ++ 186, 202, 206, 210, 235, 237, 253, 271, 275, 365, ++ 382, 386, 397, 408, 430, 433, 435, 438, 441, 442, ++ 449, 451, 458, 464, 472, 477, 479, 482, 507, 511, ++ 556, 568, 572, 575, 581, 610, 616, 629, 640, 643, ++ 644, 645, 646, 647, 649, 654, 656, 663, 693, 721, ++ 728, 837, 928, 1002, 1045, 1048, 1056, 1061, 1067, 1069, ++ 1072, 1078, 1081, 1086, 1093, 1105, 1106, 1272, 1274, 1284, ++ 1287, 1312, 1320, 1331, 1338, 1352, 1355, 1358, 1368, 1374, ++ 1378, 1383, 1384, 1434, 1451, 1457, 1459, 1466, 1468, 1496, ++ 1502, 1503, 1504, 1505, 1558, 1566, 1567, 1568, 11, 111, ++ 129, 194, 276, 402, 470, 528, 1037, 1038, 1527, 1528, ++ 1529, 1532, 272, 353, 1080, 1497, 537, 1425, 228, 5, ++ 7, 8, 9, 10, 11, 14, 18, 21, 23, 24, ++ 25, 26, 27, 28, 29, 31, 35, 39, 42, 43, ++ 44, 46, 48, 49, 52, 55, 56, 58, 59, 61, ++ 62, 64, 65, 66, 67, 68, 69, 70, 72, 73, ++ 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, ++ 85, 86, 87, 88, 90, 91, 93, 94, 95, 96, ++ 97, 99, 102, 105, 109, 113, 114, 115, 118, 123, ++ 124, 129, 131, 135, 137, 138, 139, 140, 144, 147, ++ 148, 149, 153, 155, 156, 158, 159, 160, 162, 163, ++ 165, 166, 167, 168, 169, 170, 173, 174, 175, 178, ++ 179, 181, 182, 183, 186, 190, 192, 194, 196, 197, ++ 198, 199, 200, 201, 203, 206, 207, 208, 210, 214, ++ 215, 219, 220, 221, 222, 225, 226, 227, 229, 231, ++ 236, 237, 241, 243, 244, 246, 247, 251, 254, 255, ++ 256, 259, 262, 263, 269, 270, 272, 274, 276, 277, ++ 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, ++ 294, 295, 296, 298, 299, 300, 302, 303, 304, 305, ++ 307, 308, 313, 314, 315, 316, 317, 318, 321, 322, ++ 324, 326, 328, 329, 330, 331, 332, 333, 334, 335, ++ 336, 337, 340, 341, 344, 345, 346, 347, 351, 352, ++ 357, 358, 359, 361, 362, 363, 364, 366, 367, 376, ++ 377, 378, 381, 383, 384, 385, 386, 387, 388, 389, ++ 390, 391, 392, 393, 394, 397, 398, 399, 401, 403, ++ 404, 405, 406, 407, 409, 410, 411, 414, 418, 419, ++ 420, 421, 422, 425, 426, 427, 428, 429, 431, 432, ++ 434, 435, 436, 439, 441, 443, 444, 446, 447, 451, ++ 452, 453, 454, 455, 456, 457, 458, 459, 460, 462, ++ 463, 467, 468, 469, 470, 474, 478, 480, 481, 482, ++ 483, 485, 486, 487, 488, 489, 490, 497, 498, 500, ++ 503, 506, 507, 508, 511, 512, 514, 515, 516, 517, ++ 518, 519, 522, 523, 524, 525, 527, 528, 530, 532, ++ 533, 534, 535, 538, 539, 541, 542, 543, 544, 550, ++ 551, 552, 556, 557, 558, 559, 561, 562, 564, 565, ++ 567, 568, 571, 574, 576, 578, 579, 580, 587, 590, ++ 594, 595, 596, 597, 598, 599, 606, 607, 609, 610, ++ 611, 614, 687, 1424, 1428, 1432, 1433, 298, 527, 531, ++ 1453, 1073, 606, 1498, 111, 193, 276, 470, 491, 528, ++ 534, 570, 578, 669, 670, 889, 890, 891, 980, 981, ++ 982, 1321, 1273, 111, 167, 194, 228, 276, 402, 470, ++ 528, 534, 553, 578, 595, 1283, 1428, 1080, 686, 637, ++ 1421, 1423, 1428, 655, 1285, 391, 488, 1379, 114, 228, ++ 611, 1389, 1453, 1080, 629, 838, 1428, 1375, 458, 578, ++ 1453, 1080, 1288, 1369, 494, 718, 722, 723, 1428, 686, ++ 1498, 1428, 1109, 1111, 1112, 367, 1436, 1339, 722, 507, ++ 511, 482, 550, 482, 531, 1333, 391, 488, 1458, 1313, ++ 1428, 31, 84, 155, 397, 419, 451, 507, 1560, 464, ++ 629, 1107, 0, 157, 641, 397, 174, 385, 1356, 1421, ++ 1428, 617, 1013, 1428, 617, 687, 204, 687, 264, 1425, ++ 1428, 1430, 783, 784, 787, 810, 1428, 531, 224, 363, ++ 1039, 1040, 1041, 167, 1008, 1527, 1453, 1498, 1087, 694, ++ 637, 548, 1057, 595, 1070, 1453, 17, 1499, 223, 892, ++ 204, 1430, 785, 810, 686, 372, 1524, 1528, 1529, 1530, ++ 1531, 1532, 531, 890, 228, 228, 228, 224, 283, 411, ++ 1329, 1330, 7, 21, 28, 34, 36, 37, 38, 40, ++ 53, 54, 59, 60, 69, 72, 74, 75, 76, 77, ++ 78, 79, 96, 100, 101, 106, 107, 110, 111, 116, ++ 117, 118, 123, 125, 128, 171, 176, 177, 184, 198, ++ 200, 205, 211, 212, 219, 223, 235, 238, 256, 261, ++ 269, 280, 301, 306, 317, 321, 323, 327, 328, 329, ++ 330, 331, 339, 348, 349, 350, 354, 355, 359, 380, ++ 387, 392, 393, 395, 409, 437, 438, 450, 456, 462, ++ 509, 510, 516, 520, 521, 526, 537, 541, 542, 543, ++ 544, 554, 555, 556, 560, 563, 578, 583, 584, 585, ++ 586, 591, 593, 599, 614, 622, 623, 628, 629, 632, ++ 633, 636, 637, 1127, 1128, 1129, 1130, 1134, 1141, 1142, ++ 1143, 1144, 1145, 1146, 1154, 1158, 1171, 1408, 1410, 1412, ++ 1413, 1417, 1419, 1424, 1428, 223, 1282, 1282, 1282, 1428, ++ 204, 1282, 1282, 810, 1282, 686, 1282, 1453, 650, 1359, ++ 12, 13, 103, 132, 145, 167, 170, 181, 202, 228, ++ 235, 275, 403, 407, 423, 431, 439, 464, 477, 478, ++ 522, 553, 575, 577, 1469, 1471, 1473, 1474, 1428, 364, ++ 68, 415, 637, 1430, 130, 213, 283, 1290, 1428, 1425, ++ 207, 487, 1380, 239, 1385, 1452, 1453, 929, 1122, 47, ++ 839, 191, 34, 298, 1344, 1376, 1428, 686, 1082, 1062, ++ 130, 283, 1291, 1319, 298, 410, 482, 1370, 1371, 587, ++ 719, 472, 724, 12, 407, 1467, 1471, 548, 1499, 1110, ++ 12, 141, 213, 496, 497, 498, 499, 500, 501, 513, ++ 1116, 1117, 1118, 1523, 1435, 24, 35, 59, 60, 67, ++ 72, 99, 101, 103, 112, 159, 163, 166, 192, 194, ++ 201, 203, 227, 228, 229, 250, 272, 298, 364, 390, ++ 401, 402, 405, 406, 426, 469, 482, 512, 530, 531, ++ 579, 598, 954, 979, 1340, 1344, 1345, 1347, 1442, 724, ++ 1050, 1051, 1050, 1050, 603, 1049, 1050, 1332, 1428, 1425, ++ 1453, 1319, 36, 211, 212, 537, 1409, 1426, 1559, 1559, ++ 1559, 1559, 1559, 1111, 1107, 630, 635, 1428, 1354, 1353, ++ 315, 535, 562, 1004, 576, 107, 1430, 1431, 1006, 789, ++ 811, 1428, 1005, 366, 6, 57, 145, 349, 414, 416, ++ 812, 1421, 1041, 687, 502, 1533, 1534, 1007, 1068, 1088, ++ 1089, 1090, 1091, 1421, 629, 695, 1428, 657, 1278, 1279, ++ 1421, 1071, 1278, 56, 351, 351, 430, 1500, 348, 349, ++ 1133, 1428, 788, 811, 188, 6, 1431, 1484, 1487, 438, ++ 10, 402, 553, 673, 1122, 1526, 1534, 1542, 1546, 1547, ++ 1553, 673, 1122, 1525, 1534, 1542, 1547, 1553, 1527, 1532, ++ 892, 1428, 1428, 1428, 191, 1322, 1326, 1327, 1428, 1329, ++ 629, 629, 629, 1141, 629, 629, 629, 1127, 1174, 629, ++ 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, ++ 629, 629, 629, 629, 1126, 1126, 629, 1125, 629, 629, ++ 629, 563, 629, 1408, 629, 629, 629, 629, 629, 629, ++ 629, 629, 629, 629, 629, 1127, 629, 629, 629, 629, ++ 1172, 1173, 1417, 1428, 629, 629, 629, 629, 629, 629, ++ 629, 629, 629, 1127, 1125, 629, 629, 629, 629, 629, ++ 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, ++ 629, 1125, 629, 1408, 629, 629, 629, 1408, 629, 629, ++ 36, 211, 212, 537, 953, 629, 1126, 1125, 1125, 629, ++ 629, 629, 629, 629, 1141, 1141, 1141, 1127, 1518, 1519, ++ 1428, 1159, 1428, 16, 17, 369, 372, 612, 1131, 1132, ++ 161, 195, 245, 257, 342, 617, 618, 619, 1135, 32, ++ 142, 242, 265, 327, 424, 475, 476, 489, 620, 621, ++ 622, 623, 624, 625, 626, 627, 1133, 1141, 71, 371, ++ 631, 1426, 629, 637, 171, 1428, 687, 1428, 360, 811, ++ 687, 1430, 821, 1345, 687, 1431, 1483, 1277, 1282, 582, ++ 651, 34, 67, 135, 159, 162, 196, 215, 229, 277, ++ 298, 401, 410, 425, 443, 482, 483, 508, 530, 579, ++ 1360, 1364, 1365, 1453, 401, 1472, 453, 453, 528, 534, ++ 578, 595, 367, 1476, 527, 360, 1478, 66, 482, 1475, ++ 112, 595, 1477, 360, 631, 19, 617, 1224, 1225, 1460, ++ 1428, 224, 1036, 488, 90, 410, 1381, 49, 88, 283, ++ 1391, 1421, 1454, 1455, 1079, 630, 1127, 267, 270, 412, ++ 840, 842, 636, 648, 1425, 277, 1083, 1431, 1084, 1085, ++ 1421, 595, 1059, 1453, 239, 1279, 1292, 1293, 49, 1372, ++ 631, 1426, 55, 65, 81, 93, 94, 95, 109, 316, ++ 334, 460, 515, 533, 725, 727, 1472, 360, 360, 458, ++ 1501, 1500, 569, 1506, 1507, 624, 1120, 1121, 1122, 1118, ++ 1437, 1438, 1439, 166, 472, 265, 601, 1351, 629, 111, ++ 167, 194, 402, 531, 553, 595, 1351, 12, 901, 1430, ++ 266, 1243, 1245, 191, 242, 1346, 1348, 70, 508, 189, ++ 508, 527, 70, 508, 12, 42, 97, 102, 244, 314, ++ 378, 490, 524, 1334, 1335, 1336, 166, 215, 508, 508, ++ 1243, 1351, 1348, 277, 158, 73, 404, 527, 552, 508, ++ 590, 1047, 429, 503, 1052, 1053, 1046, 91, 1279, 1036, ++ 631, 362, 1562, 523, 1563, 249, 446, 1561, 630, 1507, ++ 1509, 1511, 1512, 157, 642, 1105, 1357, 1409, 1428, 128, ++ 887, 888, 898, 899, 963, 114, 1126, 636, 688, 6, ++ 790, 688, 629, 113, 807, 807, 807, 4, 1003, 1009, ++ 463, 595, 1534, 1278, 242, 631, 386, 1099, 1101, 1102, ++ 696, 697, 1127, 225, 284, 285, 286, 287, 288, 289, ++ 291, 292, 293, 294, 295, 296, 297, 299, 300, 427, ++ 428, 658, 659, 662, 174, 411, 631, 1058, 1278, 58, ++ 174, 178, 189, 313, 411, 1074, 1075, 1076, 56, 430, ++ 171, 668, 790, 114, 807, 221, 631, 1122, 1122, 1122, ++ 167, 194, 194, 1534, 1421, 983, 984, 983, 983, 1280, ++ 1281, 1421, 1422, 1428, 631, 1324, 637, 1328, 1127, 1127, ++ 12, 141, 1166, 1226, 1166, 1166, 1166, 600, 1176, 1127, ++ 1127, 1171, 1171, 1127, 1127, 1127, 1139, 1140, 1127, 1127, ++ 1127, 1127, 1127, 1127, 141, 1166, 1226, 630, 125, 184, ++ 211, 280, 355, 560, 630, 1252, 1255, 1256, 630, 1127, ++ 1127, 1127, 1127, 1417, 1518, 119, 120, 121, 122, 123, ++ 216, 217, 218, 219, 317, 319, 320, 321, 328, 409, ++ 461, 462, 599, 613, 614, 1221, 1222, 1171, 115, 118, ++ 541, 544, 1223, 141, 1161, 1127, 1127, 1127, 1127, 1221, ++ 1171, 1127, 1171, 1173, 9, 631, 637, 141, 1166, 1127, ++ 1127, 141, 1166, 1127, 1127, 1171, 1171, 1171, 1127, 1127, ++ 1127, 1171, 1130, 1127, 1127, 1127, 1127, 1127, 1127, 1166, ++ 1166, 1127, 1127, 141, 1166, 1127, 1222, 1222, 1127, 45, ++ 258, 549, 1127, 1127, 630, 1418, 1419, 1428, 1166, 1166, ++ 1127, 1127, 630, 631, 630, 464, 629, 1515, 1516, 1127, ++ 636, 1160, 1430, 637, 1127, 1127, 1127, 1129, 177, 354, ++ 555, 571, 1133, 12, 18, 1129, 1136, 1130, 1130, 629, ++ 1141, 1130, 1130, 1130, 1130, 265, 1130, 1130, 238, 1130, ++ 238, 1130, 1130, 1130, 1130, 1130, 32, 242, 265, 424, ++ 1430, 1141, 1127, 1147, 1428, 637, 1421, 821, 352, 597, ++ 822, 823, 159, 631, 1278, 1275, 636, 652, 653, 277, ++ 277, 277, 277, 49, 277, 277, 631, 1361, 527, 629, ++ 1488, 1431, 1488, 1488, 1488, 194, 402, 531, 1470, 1474, ++ 1428, 182, 345, 1428, 1461, 1462, 1292, 1425, 578, 1127, ++ 1382, 1094, 272, 1390, 1225, 631, 1278, 1123, 73, 629, ++ 847, 848, 847, 848, 385, 850, 208, 252, 1430, 30, ++ 548, 1377, 631, 548, 631, 548, 1060, 1278, 1293, 1289, ++ 12, 1373, 1371, 631, 617, 631, 1431, 194, 402, 1470, ++ 1428, 12, 141, 1514, 631, 1113, 1127, 1415, 1428, 631, ++ 201, 272, 361, 469, 1440, 1441, 1444, 1445, 242, 1349, ++ 1425, 1127, 624, 892, 687, 687, 687, 1421, 687, 1421, ++ 277, 332, 508, 1343, 1343, 280, 355, 454, 560, 1246, ++ 1247, 1410, 1428, 1351, 1428, 687, 1351, 1431, 1346, 687, ++ 1351, 243, 525, 179, 189, 1337, 631, 1349, 1346, 1421, ++ 1348, 1346, 1346, 1351, 1351, 574, 1054, 631, 1054, 485, ++ 464, 629, 633, 1177, 1178, 1179, 1180, 1181, 1190, 1191, ++ 1205, 1409, 389, 1564, 370, 1239, 1245, 1513, 888, 71, ++ 954, 137, 1430, 82, 96, 254, 325, 351, 413, 502, ++ 690, 692, 420, 564, 808, 809, 231, 804, 805, 806, ++ 813, 821, 823, 111, 214, 376, 387, 394, 486, 578, ++ 671, 672, 1425, 25, 305, 798, 799, 800, 813, 814, ++ 815, 821, 823, 791, 792, 798, 6, 13, 15, 26, ++ 27, 57, 62, 63, 69, 82, 90, 100, 114, 131, ++ 138, 139, 145, 153, 159, 187, 226, 228, 236, 251, ++ 304, 322, 326, 365, 370, 377, 379, 386, 387, 418, ++ 432, 433, 434, 435, 455, 512, 528, 532, 551, 556, ++ 569, 834, 894, 896, 898, 899, 1014, 1018, 1020, 1023, ++ 1029, 1030, 1031, 1235, 1424, 360, 681, 1010, 129, 241, ++ 1421, 128, 1092, 1428, 1090, 1421, 836, 1101, 228, 252, ++ 977, 1103, 630, 631, 617, 617, 617, 617, 617, 617, ++ 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, ++ 617, 617, 631, 1279, 189, 1077, 576, 1075, 886, 887, ++ 82, 346, 421, 565, 801, 802, 803, 813, 817, 818, ++ 819, 820, 821, 823, 607, 581, 786, 47, 594, 603, ++ 1485, 1487, 194, 687, 687, 892, 687, 1428, 664, 558, ++ 582, 991, 360, 360, 360, 631, 1325, 1323, 637, 1328, ++ 1327, 191, 624, 1428, 631, 630, 1166, 630, 1167, 630, ++ 630, 630, 1127, 151, 600, 1175, 19, 630, 582, 630, ++ 630, 630, 631, 631, 630, 631, 631, 631, 631, 630, ++ 631, 582, 631, 1155, 630, 624, 630, 631, 631, 630, ++ 630, 630, 630, 191, 630, 631, 1157, 630, 631, 631, ++ 631, 623, 630, 631, 630, 630, 629, 1417, 1428, 1166, ++ 630, 630, 630, 1166, 630, 631, 630, 630, 630, 630, ++ 630, 630, 631, 630, 242, 630, 631, 631, 631, 631, ++ 630, 630, 630, 631, 191, 631, 1166, 630, 630, 631, ++ 631, 631, 630, 191, 1127, 191, 1127, 191, 1127, 191, ++ 630, 631, 630, 630, 630, 630, 631, 630, 1171, 1195, ++ 1196, 1197, 464, 629, 1108, 1510, 1511, 569, 1520, 634, ++ 201, 272, 469, 1443, 473, 1428, 177, 354, 555, 571, ++ 629, 17, 1127, 1518, 165, 1231, 1130, 1127, 1127, 1130, ++ 629, 1141, 1130, 1122, 1151, 1152, 1153, 629, 637, 1428, ++ 1276, 822, 473, 617, 1303, 1304, 1431, 51, 445, 1042, ++ 1278, 1430, 631, 1365, 1278, 1366, 1428, 1489, 1490, 548, ++ 624, 1421, 1428, 1482, 1482, 1482, 182, 195, 255, 257, ++ 345, 399, 617, 618, 619, 1463, 1465, 601, 1227, 1286, ++ 1431, 1095, 1096, 1097, 1098, 1421, 230, 283, 415, 608, ++ 1456, 1455, 629, 1122, 1252, 519, 851, 841, 11, 843, ++ 1127, 1425, 1431, 1431, 1085, 1421, 1278, 174, 411, 580, ++ 1063, 1064, 1065, 464, 472, 586, 587, 629, 882, 1294, ++ 1297, 727, 118, 541, 544, 726, 1158, 1412, 1417, 202, ++ 191, 1482, 1482, 1482, 1508, 1121, 191, 239, 1114, 1115, ++ 1238, 1239, 1267, 1123, 1123, 637, 1438, 128, 550, 1428, ++ 1447, 335, 387, 636, 954, 1446, 1425, 191, 1350, 630, ++ 1428, 169, 454, 358, 631, 1351, 410, 1243, 1336, 1350, ++ 1351, 1346, 1421, 1351, 1351, 662, 1055, 1053, 1204, 1428, ++ 104, 232, 249, 261, 338, 450, 513, 1189, 472, 631, ++ 1421, 1204, 631, 189, 1565, 47, 1243, 1304, 1304, 336, ++ 1425, 502, 502, 502, 502, 502, 463, 1425, 1425, 1304, ++ 631, 806, 1425, 1425, 1425, 1425, 125, 184, 211, 280, ++ 355, 560, 1251, 1425, 1425, 630, 631, 1304, 1304, 631, ++ 800, 793, 794, 813, 814, 815, 80, 92, 386, 910, ++ 917, 918, 975, 977, 981, 982, 1035, 1035, 386, 1304, ++ 1304, 1035, 1304, 386, 386, 1304, 1304, 548, 137, 1304, ++ 250, 528, 188, 386, 400, 977, 1035, 250, 1304, 528, ++ 137, 1304, 1304, 1304, 1304, 1035, 386, 47, 1304, 1304, ++ 836, 1304, 386, 384, 19, 548, 617, 1044, 386, 386, ++ 1304, 140, 314, 1428, 1304, 1304, 386, 1304, 894, 631, ++ 833, 834, 1018, 629, 637, 909, 919, 1420, 1428, 1303, ++ 86, 459, 433, 1011, 1535, 1100, 629, 1127, 629, 1251, ++ 1425, 1425, 125, 184, 280, 355, 560, 1253, 1425, 1251, ++ 1425, 1425, 1425, 1425, 1425, 1251, 1251, 1425, 1413, 1425, ++ 1251, 659, 576, 1304, 1304, 1304, 1304, 631, 803, 1430, ++ 276, 175, 795, 796, 797, 813, 814, 815, 816, 819, ++ 820, 821, 823, 387, 537, 1430, 1428, 1554, 8, 30, ++ 781, 687, 629, 447, 265, 629, 825, 893, 895, 896, ++ 46, 208, 457, 996, 996, 1421, 1421, 1421, 1281, 1428, ++ 582, 1227, 1428, 1178, 637, 1328, 238, 1127, 630, 1127, ++ 540, 1127, 1127, 155, 34, 60, 115, 118, 126, 143, ++ 240, 340, 480, 544, 573, 1168, 34, 955, 1430, 1140, ++ 1127, 1139, 1171, 1127, 1127, 1127, 955, 1168, 1171, 630, ++ 238, 238, 1127, 1127, 1171, 1127, 1127, 1127, 1127, 1127, ++ 1130, 630, 630, 1127, 1127, 1127, 1127, 1127, 1127, 1171, ++ 238, 1127, 1127, 1127, 630, 1127, 1127, 1127, 1127, 191, ++ 1127, 191, 1127, 191, 1127, 1127, 1127, 630, 1521, 1522, ++ 1523, 1196, 1108, 630, 1514, 637, 637, 637, 1430, 1127, ++ 1518, 1129, 630, 631, 630, 1141, 1221, 1221, 17, 1127, ++ 1518, 1231, 1127, 630, 631, 1170, 1171, 1428, 900, 1430, ++ 1042, 653, 1362, 630, 631, 1484, 637, 637, 548, 548, ++ 548, 1464, 1228, 1244, 1245, 1294, 631, 1099, 1101, 537, ++ 1427, 608, 272, 88, 844, 845, 846, 1428, 856, 1130, ++ 47, 629, 858, 848, 617, 629, 548, 191, 1066, 1064, ++ 883, 1295, 629, 1300, 1305, 1300, 630, 882, 1296, 1414, ++ 1415, 1418, 1428, 1298, 617, 367, 1483, 191, 191, 191, ++ 1106, 146, 1178, 1268, 189, 275, 1119, 1267, 1244, 1115, ++ 19, 1124, 1425, 1428, 624, 1428, 637, 246, 637, 1303, ++ 128, 955, 956, 1303, 189, 1303, 636, 1430, 34, 128, ++ 958, 959, 1430, 1253, 1341, 163, 598, 1247, 1248, 169, ++ 1247, 1247, 355, 1342, 1227, 1346, 631, 1192, 1199, 1204, ++ 1177, 249, 249, 373, 1206, 249, 261, 450, 1206, 1190, ++ 1177, 1315, 1316, 1418, 1179, 1225, 1201, 1202, 1251, 318, ++ 1240, 128, 960, 962, 1430, 956, 114, 114, 129, 241, ++ 211, 280, 355, 560, 824, 1254, 1255, 1424, 806, 672, ++ 824, 824, 800, 631, 794, 999, 1420, 1080, 63, 188, ++ 400, 570, 916, 976, 999, 977, 978, 978, 1420, 1080, ++ 1253, 1251, 1420, 1251, 12, 1019, 1027, 1028, 1428, 1080, ++ 1425, 1425, 954, 1304, 1251, 252, 1027, 252, 1420, 1420, ++ 900, 1304, 182, 255, 351, 903, 1251, 1253, 1253, 1420, ++ 1080, 1236, 1237, 1418, 128, 1251, 128, 1251, 1257, 835, ++ 1425, 1080, 1421, 1080, 1080, 85, 87, 128, 149, 183, ++ 378, 422, 902, 1251, 1257, 1019, 897, 6, 145, 1031, ++ 906, 907, 908, 909, 910, 1428, 8, 182, 1043, 423, ++ 915, 916, 969, 920, 637, 128, 1254, 1425, 1428, 349, ++ 398, 23, 168, 675, 548, 138, 153, 677, 629, 1536, ++ 629, 400, 1217, 1218, 1219, 1428, 660, 661, 1251, 1425, ++ 1252, 824, 824, 803, 366, 204, 1304, 631, 797, 537, ++ 19, 582, 1486, 447, 629, 132, 235, 575, 782, 674, ++ 1548, 126, 240, 417, 514, 905, 1421, 265, 386, 826, ++ 832, 833, 906, 832, 631, 895, 665, 666, 667, 637, ++ 1178, 1238, 1328, 1227, 1127, 630, 1127, 540, 629, 945, ++ 946, 946, 946, 629, 940, 941, 945, 1169, 946, 240, ++ 946, 240, 630, 630, 630, 19, 1137, 630, 630, 19, ++ 630, 630, 630, 1156, 1127, 1127, 630, 630, 370, 1163, ++ 631, 631, 630, 631, 630, 242, 1148, 1149, 630, 630, ++ 630, 630, 631, 630, 630, 1127, 630, 189, 630, 630, ++ 631, 630, 631, 631, 630, 1127, 630, 1127, 630, 1127, ++ 630, 630, 630, 1120, 1523, 630, 1517, 637, 1000, 630, ++ 1171, 1129, 630, 631, 630, 1123, 1153, 630, 603, 1363, ++ 1490, 603, 1493, 624, 624, 1484, 1484, 1484, 629, 1127, ++ 360, 1310, 1097, 1421, 1101, 224, 1104, 1386, 630, 631, ++ 1123, 842, 386, 859, 860, 1252, 844, 1431, 333, 1116, ++ 1301, 1302, 1418, 1306, 631, 629, 1297, 630, 630, 631, ++ 637, 1506, 726, 191, 1483, 1483, 1483, 1227, 1227, 147, ++ 374, 1263, 1264, 1269, 575, 242, 1425, 1428, 637, 1428, ++ 263, 1428, 12, 34, 128, 360, 1127, 1450, 71, 961, ++ 1127, 1431, 359, 387, 537, 1449, 1443, 1303, 1243, 1248, ++ 1243, 1351, 662, 569, 630, 1510, 1200, 634, 249, 1190, ++ 1206, 1206, 249, 360, 360, 582, 631, 1314, 1303, 1215, ++ 1216, 1116, 1127, 1241, 1416, 794, 1021, 629, 252, 252, ++ 978, 999, 984, 999, 999, 145, 472, 1019, 1032, 1016, ++ 631, 1252, 956, 1425, 999, 1042, 1425, 1033, 1019, 631, ++ 20, 133, 1242, 839, 1019, 1024, 1019, 629, 630, 631, ++ 1428, 1421, 33, 34, 39, 41, 43, 44, 60, 115, ++ 118, 126, 143, 160, 183, 185, 198, 199, 240, 269, ++ 278, 279, 281, 310, 311, 312, 329, 330, 331, 337, ++ 340, 356, 357, 392, 393, 417, 468, 472, 484, 538, ++ 541, 544, 545, 546, 547, 588, 589, 614, 921, 930, ++ 933, 934, 935, 936, 937, 938, 939, 1428, 398, 1127, ++ 1127, 360, 681, 687, 360, 82, 682, 1428, 1537, 19, ++ 1019, 630, 631, 630, 631, 629, 1428, 824, 797, 1425, ++ 905, 1555, 360, 360, 698, 699, 701, 1428, 488, 1421, ++ 882, 630, 224, 438, 829, 1392, 895, 629, 629, 629, ++ 1428, 1227, 266, 1249, 1221, 1127, 125, 280, 355, 560, ++ 21, 34, 48, 567, 954, 964, 965, 966, 355, 629, ++ 941, 947, 115, 118, 126, 143, 185, 240, 337, 340, ++ 417, 544, 573, 934, 935, 1138, 1168, 630, 1221, 1221, ++ 47, 466, 1162, 1127, 1127, 1171, 43, 338, 630, 603, ++ 1150, 1127, 1221, 1127, 1127, 1127, 1127, 630, 630, 630, ++ 1198, 1515, 1428, 630, 1171, 1124, 415, 202, 440, 1491, ++ 1491, 1491, 128, 1127, 1308, 1309, 148, 1104, 259, 1392, ++ 846, 630, 208, 252, 861, 630, 631, 630, 1120, 631, ++ 1303, 1307, 1308, 1305, 1299, 1297, 1414, 1428, 1483, 1244, ++ 204, 1232, 1427, 1427, 636, 1265, 1266, 1430, 474, 624, ++ 415, 436, 467, 1448, 962, 1303, 629, 629, 1447, 1127, ++ 1514, 1225, 1180, 1177, 1190, 249, 249, 1177, 1190, 1183, ++ 1182, 1184, 1316, 1227, 1309, 1213, 1214, 1120, 631, 1242, ++ 385, 629, 1022, 1127, 999, 984, 629, 983, 983, 128, ++ 128, 919, 1074, 1028, 961, 921, 1015, 1237, 1025, 1027, ++ 1017, 1366, 908, 629, 970, 945, 945, 946, 946, 940, ++ 396, 931, 940, 940, 966, 60, 588, 934, 936, 966, ++ 966, 60, 589, 589, 592, 940, 932, 946, 946, 946, ++ 966, 945, 946, 26, 71, 82, 128, 197, 354, 360, ++ 400, 468, 570, 923, 948, 949, 950, 968, 1133, 1424, ++ 592, 945, 966, 34, 945, 967, 945, 945, 946, 947, ++ 637, 1221, 482, 1425, 144, 1012, 630, 631, 1538, 1539, ++ 630, 1218, 661, 671, 488, 233, 242, 375, 702, 703, ++ 704, 705, 1122, 459, 630, 631, 700, 1425, 630, 630, ++ 827, 19, 885, 997, 998, 1428, 997, 997, 454, 1247, ++ 630, 630, 630, 630, 630, 34, 21, 567, 954, 34, ++ 955, 631, 355, 946, 940, 60, 946, 240, 966, 630, ++ 630, 630, 1164, 1409, 630, 630, 631, 630, 324, 254, ++ 410, 630, 630, 630, 630, 630, 630, 904, 1115, 1244, ++ 1510, 630, 275, 367, 64, 247, 347, 504, 517, 609, ++ 1480, 1481, 603, 1492, 1492, 1492, 630, 631, 1311, 239, ++ 629, 849, 843, 862, 1428, 860, 884, 1302, 1309, 630, ++ 1509, 47, 209, 1229, 1270, 1430, 631, 324, 83, 561, ++ 415, 1449, 537, 537, 1303, 1193, 360, 1186, 1190, 1190, ++ 360, 1188, 1127, 1127, 629, 1238, 187, 224, 581, 1208, ++ 1209, 1212, 1203, 1416, 1252, 859, 630, 629, 629, 997, ++ 629, 629, 118, 541, 544, 622, 623, 1411, 1412, 1043, ++ 1034, 1080, 1026, 1063, 630, 971, 1428, 301, 972, 480, ++ 573, 615, 942, 943, 944, 629, 942, 942, 966, 592, ++ 942, 629, 966, 942, 960, 1425, 350, 952, 1411, 14, ++ 575, 128, 252, 19, 950, 252, 354, 1303, 966, 967, ++ 966, 967, 942, 942, 1428, 676, 683, 684, 1428, 464, ++ 629, 1540, 630, 1425, 630, 631, 700, 1543, 675, 1549, ++ 701, 930, 951, 828, 893, 629, 882, 630, 631, 1242, ++ 629, 630, 630, 169, 454, 955, 967, 355, 1165, 1416, ++ 1127, 324, 173, 1119, 1119, 17, 1367, 537, 537, 537, ++ 17, 1479, 202, 302, 303, 307, 308, 1494, 1495, 1309, ++ 252, 531, 1122, 852, 629, 586, 863, 904, 1233, 1416, ++ 1230, 1238, 954, 957, 1266, 630, 630, 1450, 1515, 1185, ++ 582, 1187, 582, 1220, 1428, 1249, 977, 977, 1209, 904, ++ 1242, 630, 997, 997, 630, 997, 997, 1413, 1413, 1043, ++ 239, 630, 631, 192, 383, 481, 360, 973, 944, 1001, ++ 1409, 1001, 1126, 350, 587, 922, 128, 1254, 1425, 1428, ++ 506, 678, 53, 68, 180, 223, 248, 260, 364, 448, ++ 685, 732, 734, 735, 736, 738, 739, 740, 741, 742, ++ 743, 745, 753, 754, 757, 768, 771, 773, 774, 1424, ++ 1429, 1433, 1109, 1107, 603, 1541, 1556, 704, 1428, 1421, ++ 680, 681, 447, 961, 1509, 832, 882, 830, 82, 251, ++ 985, 988, 991, 992, 993, 1424, 998, 355, 603, 986, ++ 990, 992, 995, 987, 989, 992, 994, 169, 630, 631, ++ 1242, 630, 138, 1480, 367, 1251, 1251, 1251, 355, 622, ++ 1250, 1495, 575, 1421, 856, 518, 857, 854, 855, 1428, ++ 242, 262, 82, 90, 114, 228, 304, 322, 346, 528, ++ 879, 880, 881, 1345, 604, 605, 631, 1234, 1242, 1127, ++ 1244, 956, 1271, 1194, 1127, 629, 1127, 629, 630, 631, ++ 189, 1207, 1207, 630, 630, 911, 630, 630, 629, 1428, ++ 132, 575, 630, 631, 630, 1126, 629, 1127, 156, 679, ++ 755, 758, 1428, 191, 345, 746, 733, 1429, 1429, 1428, ++ 737, 644, 282, 437, 602, 777, 31, 775, 638, 630, ++ 52, 63, 272, 689, 951, 189, 677, 1550, 829, 630, ++ 1506, 1425, 1304, 993, 1303, 1242, 630, 381, 995, 994, ++ 1416, 61, 280, 355, 1317, 1318, 1418, 1387, 1123, 1252, ++ 630, 631, 865, 539, 1304, 1304, 137, 137, 1304, 1304, ++ 1304, 1304, 629, 874, 881, 159, 1416, 402, 1258, 73, ++ 1393, 1510, 1220, 1220, 1428, 204, 249, 370, 1211, 1210, ++ 969, 914, 985, 912, 913, 859, 51, 351, 445, 472, ++ 974, 974, 966, 1409, 966, 929, 1127, 1127, 600, 760, ++ 764, 191, 1428, 748, 749, 1127, 707, 731, 732, 734, ++ 736, 738, 740, 741, 742, 743, 745, 753, 768, 771, ++ 773, 707, 778, 776, 769, 772, 1509, 63, 367, 63, ++ 136, 690, 691, 1133, 1557, 1122, 682, 951, 831, 1251, ++ 128, 1254, 1425, 1428, 1424, 1242, 631, 1303, 957, 630, ++ 853, 855, 629, 867, 869, 864, 1425, 1425, 1304, 1304, ++ 1254, 1254, 1252, 1430, 519, 875, 876, 1304, 1242, 1428, ++ 154, 164, 368, 536, 1394, 1395, 268, 1396, 630, 630, ++ 47, 47, 629, 629, 985, 986, 987, 630, 5, 128, ++ 354, 360, 360, 630, 756, 765, 151, 764, 767, 239, ++ 155, 1127, 155, 731, 635, 574, 1127, 708, 777, 775, ++ 367, 367, 136, 731, 1544, 144, 1551, 1509, 1318, 1309, ++ 1388, 857, 629, 868, 869, 870, 309, 866, 869, 1425, ++ 1425, 877, 630, 631, 900, 1259, 47, 47, 154, 47, ++ 1395, 505, 536, 1397, 1398, 1217, 1219, 575, 132, 388, ++ 596, 924, 600, 759, 761, 1127, 707, 155, 744, 223, ++ 540, 282, 635, 780, 144, 127, 706, 709, 770, 1429, ++ 770, 150, 683, 689, 454, 1399, 630, 631, 309, 872, ++ 873, 1130, 878, 1430, 876, 629, 1409, 1409, 47, 1409, ++ 47, 47, 1398, 630, 630, 974, 974, 82, 570, 925, ++ 926, 927, 762, 761, 767, 766, 53, 747, 1428, 750, ++ 1127, 779, 98, 172, 714, 729, 1428, 155, 731, 635, ++ 456, 1552, 221, 1393, 869, 631, 871, 879, 1122, 1260, ++ 1261, 1262, 1409, 1409, 1409, 1425, 252, 927, 1127, 155, ++ 540, 631, 707, 155, 707, 206, 631, 710, 89, 108, ++ 635, 1545, 731, 47, 1396, 873, 630, 1127, 630, 631, ++ 763, 53, 707, 1428, 751, 437, 155, 189, 1428, 951, ++ 189, 189, 731, 1409, 224, 1400, 1123, 1262, 540, 151, ++ 152, 752, 602, 711, 128, 730, 717, 718, 1251, 712, ++ 713, 355, 629, 1402, 707, 707, 748, 493, 495, 715, ++ 716, 717, 720, 1133, 1428, 1127, 1105, 268, 454, 1401, ++ 630, 636, 1403, 1404, 1418, 472, 1405, 631, 731, 190, ++ 1430, 630, 631, 1406, 1407, 1418, 716, 1404, 631, 1303, ++ 1407, 1122, 1309, 1123 ++}; ++ ++ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ ++static const yytype_uint16 yyr1[] = ++{ ++ 0, 639, 640, 641, 640, 640, 642, 642, 643, 643, ++ 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, ++ 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, ++ 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, ++ 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, ++ 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, ++ 644, 644, 644, 645, 646, 646, 647, 648, 648, 650, ++ 649, 651, 651, 652, 652, 653, 655, 654, 657, 656, ++ 658, 658, 659, 659, 659, 659, 659, 659, 659, 659, ++ 659, 659, 659, 659, 659, 659, 659, 660, 660, 660, ++ 661, 662, 662, 662, 662, 664, 663, 665, 663, 666, ++ 663, 667, 663, 668, 663, 669, 663, 663, 663, 663, ++ 663, 670, 671, 671, 672, 672, 672, 672, 672, 672, ++ 672, 674, 673, 676, 675, 675, 677, 677, 677, 677, ++ 678, 678, 679, 679, 680, 680, 681, 681, 682, 682, ++ 684, 683, 685, 685, 685, 685, 685, 685, 685, 685, ++ 685, 685, 685, 685, 685, 686, 687, 687, 688, 688, ++ 689, 689, 690, 690, 690, 690, 690, 690, 690, 691, ++ 691, 691, 692, 692, 694, 693, 695, 695, 696, 696, ++ 697, 697, 698, 698, 699, 699, 700, 701, 702, 702, ++ 703, 703, 704, 705, 705, 705, 705, 706, 706, 707, ++ 707, 708, 708, 710, 709, 709, 711, 709, 709, 713, ++ 712, 714, 714, 715, 715, 716, 717, 717, 718, 719, ++ 719, 720, 720, 720, 720, 720, 721, 722, 722, 723, ++ 723, 724, 724, 725, 725, 726, 726, 726, 727, 727, ++ 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, ++ 728, 729, 729, 730, 730, 731, 731, 731, 731, 731, ++ 731, 731, 731, 731, 731, 731, 731, 731, 733, 732, ++ 735, 734, 737, 736, 739, 738, 740, 741, 742, 744, ++ 743, 745, 746, 746, 746, 747, 747, 749, 750, 751, ++ 748, 752, 752, 752, 753, 753, 755, 756, 754, 758, ++ 757, 759, 759, 760, 760, 762, 763, 761, 765, 766, ++ 764, 767, 767, 769, 768, 770, 770, 772, 771, 774, ++ 773, 776, 775, 777, 778, 779, 777, 780, 777, 781, ++ 781, 782, 782, 782, 783, 784, 785, 786, 786, 787, ++ 787, 788, 789, 790, 790, 792, 791, 793, 793, 793, ++ 794, 794, 794, 795, 796, 796, 796, 797, 797, 797, ++ 797, 797, 797, 797, 797, 798, 799, 799, 799, 800, ++ 800, 800, 800, 800, 801, 802, 802, 802, 803, 803, ++ 803, 803, 803, 803, 803, 804, 805, 805, 805, 806, ++ 806, 806, 807, 808, 809, 810, 811, 812, 812, 812, ++ 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, ++ 822, 823, 823, 824, 824, 825, 825, 825, 825, 827, ++ 826, 828, 826, 829, 830, 829, 831, 829, 832, 833, ++ 833, 835, 834, 836, 838, 837, 839, 840, 841, 840, ++ 840, 840, 840, 840, 842, 842, 843, 843, 844, 844, ++ 845, 845, 846, 847, 848, 849, 850, 850, 851, 852, ++ 851, 853, 851, 854, 854, 855, 856, 857, 857, 858, ++ 858, 859, 859, 861, 860, 862, 863, 864, 863, 865, ++ 863, 866, 866, 867, 867, 868, 868, 870, 871, 869, ++ 872, 872, 873, 873, 874, 874, 875, 875, 877, 876, ++ 878, 879, 879, 880, 880, 881, 881, 881, 881, 881, ++ 881, 881, 881, 881, 883, 884, 882, 885, 885, 886, ++ 886, 887, 887, 888, 888, 889, 889, 890, 890, 891, ++ 892, 892, 893, 893, 894, 894, 895, 895, 895, 896, ++ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, ++ 896, 896, 896, 897, 896, 896, 896, 896, 896, 896, ++ 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, ++ 898, 899, 900, 901, 902, 902, 902, 902, 902, 902, ++ 902, 903, 903, 903, 904, 904, 905, 905, 905, 905, ++ 906, 907, 907, 908, 908, 909, 909, 911, 910, 912, ++ 910, 913, 910, 914, 910, 910, 910, 915, 915, 916, ++ 917, 917, 918, 920, 919, 921, 922, 921, 923, 923, ++ 924, 924, 924, 925, 925, 926, 926, 927, 927, 927, ++ 928, 929, 930, 930, 930, 930, 930, 930, 930, 930, ++ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, ++ 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, ++ 930, 930, 930, 930, 930, 930, 930, 931, 930, 932, ++ 930, 930, 930, 933, 933, 933, 933, 933, 933, 933, ++ 933, 934, 935, 935, 936, 936, 937, 937, 937, 937, ++ 937, 938, 938, 938, 938, 938, 939, 939, 939, 940, ++ 940, 940, 941, 942, 942, 943, 943, 944, 944, 944, ++ 945, 945, 945, 945, 946, 946, 947, 947, 948, 948, ++ 949, 949, 950, 950, 950, 950, 950, 950, 950, 950, ++ 950, 950, 950, 950, 950, 950, 950, 951, 952, 952, ++ 953, 953, 954, 954, 955, 955, 956, 956, 957, 957, ++ 958, 958, 959, 959, 960, 961, 961, 962, 962, 963, ++ 963, 964, 964, 964, 965, 965, 965, 966, 966, 966, ++ 966, 966, 966, 966, 967, 967, 968, 968, 969, 970, ++ 970, 971, 971, 972, 972, 972, 972, 973, 973, 973, ++ 973, 973, 974, 974, 974, 974, 974, 975, 976, 976, ++ 977, 977, 978, 978, 979, 979, 979, 980, 980, 981, ++ 982, 983, 984, 984, 985, 985, 986, 986, 987, 987, ++ 988, 988, 989, 989, 990, 990, 991, 991, 992, 992, ++ 992, 992, 992, 992, 993, 993, 994, 995, 995, 996, ++ 996, 996, 997, 997, 998, 998, 999, 999, 1000, 1000, ++ 1001, 1001, 1003, 1002, 1004, 1002, 1002, 1005, 1002, 1006, ++ 1002, 1007, 1002, 1008, 1002, 1009, 1002, 1002, 1002, 1002, ++ 1002, 1002, 1010, 1010, 1010, 1010, 1011, 1011, 1012, 1012, ++ 1013, 1013, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, ++ 1014, 1014, 1015, 1014, 1014, 1016, 1014, 1017, 1014, 1014, ++ 1014, 1014, 1018, 1019, 1019, 1021, 1020, 1022, 1022, 1022, ++ 1024, 1023, 1025, 1026, 1025, 1027, 1027, 1028, 1029, 1029, ++ 1030, 1031, 1031, 1031, 1032, 1031, 1033, 1034, 1031, 1031, ++ 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, ++ 1031, 1031, 1035, 1035, 1036, 1036, 1038, 1037, 1039, 1039, ++ 1040, 1040, 1041, 1041, 1042, 1042, 1042, 1043, 1043, 1043, ++ 1044, 1044, 1044, 1044, 1046, 1045, 1045, 1047, 1045, 1045, ++ 1048, 1049, 1049, 1051, 1050, 1052, 1052, 1053, 1053, 1053, ++ 1054, 1054, 1055, 1055, 1057, 1056, 1058, 1058, 1058, 1059, ++ 1060, 1059, 1062, 1061, 1063, 1063, 1064, 1064, 1065, 1065, ++ 1065, 1066, 1066, 1068, 1067, 1069, 1070, 1071, 1070, 1073, ++ 1072, 1074, 1074, 1075, 1075, 1076, 1076, 1076, 1076, 1076, ++ 1076, 1077, 1077, 1079, 1078, 1080, 1080, 1080, 1082, 1081, ++ 1081, 1083, 1083, 1084, 1084, 1085, 1087, 1086, 1088, 1088, ++ 1089, 1089, 1090, 1091, 1092, 1092, 1094, 1093, 1095, 1095, ++ 1096, 1096, 1097, 1098, 1100, 1099, 1102, 1101, 1103, 1103, ++ 1104, 1104, 1105, 1106, 1106, 1107, 1107, 1108, 1108, 1110, ++ 1109, 1112, 1113, 1111, 1114, 1114, 1114, 1114, 1114, 1115, ++ 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1118, 1119, 1119, ++ 1119, 1120, 1120, 1120, 1121, 1121, 1122, 1123, 1124, 1124, ++ 1124, 1124, 1124, 1125, 1125, 1125, 1126, 1126, 1127, 1127, ++ 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, ++ 1128, 1128, 1128, 1128, 1128, 1129, 1129, 1129, 1129, 1129, ++ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130, ++ 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, ++ 1130, 1130, 1130, 1130, 1131, 1131, 1132, 1132, 1133, 1133, ++ 1134, 1134, 1135, 1135, 1135, 1135, 1135, 1135, 1136, 1136, ++ 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, ++ 1138, 1138, 1138, 1139, 1140, 1140, 1141, 1141, 1141, 1141, ++ 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, ++ 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, ++ 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142, 1142, 1142, ++ 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, ++ 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, ++ 1142, 1142, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 1143, ++ 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, ++ 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, ++ 1143, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, ++ 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145, ++ 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1147, 1146, 1146, ++ 1148, 1148, 1149, 1149, 1150, 1150, 1151, 1151, 1152, 1152, ++ 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155, 1156, ++ 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, ++ 1154, 1157, 1154, 1159, 1158, 1160, 1160, 1160, 1161, 1161, ++ 1162, 1162, 1163, 1164, 1163, 1165, 1165, 1167, 1166, 1168, ++ 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, ++ 1168, 1169, 1168, 1170, 1170, 1171, 1171, 1172, 1172, 1173, ++ 1173, 1174, 1174, 1175, 1175, 1176, 1176, 1177, 1177, 1178, ++ 1179, 1179, 1180, 1180, 1181, 1181, 1182, 1181, 1183, 1181, ++ 1184, 1181, 1181, 1185, 1181, 1186, 1181, 1181, 1187, 1181, ++ 1188, 1181, 1181, 1189, 1189, 1189, 1191, 1190, 1190, 1190, ++ 1192, 1193, 1194, 1192, 1195, 1197, 1198, 1196, 1200, 1199, ++ 1202, 1203, 1201, 1204, 1205, 1206, 1206, 1207, 1207, 1207, ++ 1207, 1208, 1208, 1210, 1209, 1211, 1209, 1212, 1212, 1213, ++ 1214, 1213, 1216, 1215, 1217, 1217, 1218, 1218, 1219, 1219, ++ 1220, 1220, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, ++ 1221, 1221, 1221, 1221, 1222, 1222, 1222, 1222, 1222, 1222, ++ 1222, 1222, 1222, 1223, 1223, 1223, 1223, 1224, 1224, 1224, ++ 1225, 1225, 1226, 1226, 1227, 1228, 1227, 1229, 1230, 1229, ++ 1231, 1231, 1232, 1232, 1233, 1233, 1234, 1234, 1234, 1235, ++ 1236, 1236, 1237, 1238, 1238, 1240, 1239, 1241, 1241, 1242, ++ 1242, 1242, 1243, 1243, 1244, 1244, 1245, 1245, 1245, 1246, ++ 1246, 1246, 1247, 1247, 1247, 1247, 1247, 1248, 1249, 1249, ++ 1249, 1249, 1250, 1250, 1250, 1251, 1251, 1251, 1251, 1251, ++ 1251, 1252, 1252, 1252, 1252, 1252, 1253, 1253, 1253, 1253, ++ 1253, 1254, 1254, 1254, 1254, 1254, 1255, 1256, 1256, 1257, ++ 1257, 1258, 1259, 1258, 1260, 1260, 1261, 1261, 1262, 1264, ++ 1263, 1265, 1265, 1266, 1266, 1268, 1267, 1270, 1271, 1269, ++ 1269, 1269, 1273, 1272, 1275, 1274, 1276, 1274, 1274, 1274, ++ 1274, 1274, 1274, 1277, 1274, 1274, 1274, 1274, 1274, 1274, ++ 1278, 1278, 1279, 1280, 1280, 1281, 1282, 1282, 1283, 1283, ++ 1285, 1286, 1284, 1288, 1289, 1287, 1290, 1290, 1290, 1290, ++ 1291, 1291, 1292, 1292, 1293, 1294, 1294, 1294, 1295, 1294, ++ 1296, 1296, 1297, 1297, 1298, 1297, 1299, 1297, 1300, 1300, ++ 1301, 1301, 1302, 1303, 1303, 1304, 1304, 1306, 1305, 1307, ++ 1307, 1308, 1308, 1309, 1309, 1310, 1311, 1310, 1313, 1314, ++ 1312, 1315, 1315, 1316, 1317, 1317, 1318, 1319, 1319, 1321, ++ 1320, 1323, 1322, 1324, 1322, 1325, 1322, 1326, 1326, 1327, ++ 1327, 1328, 1328, 1329, 1329, 1330, 1330, 1330, 1332, 1331, ++ 1333, 1333, 1334, 1334, 1335, 1335, 1336, 1336, 1336, 1336, ++ 1336, 1336, 1336, 1336, 1336, 1337, 1337, 1339, 1338, 1340, ++ 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, ++ 1340, 1341, 1340, 1342, 1340, 1340, 1340, 1340, 1340, 1340, ++ 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, ++ 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, ++ 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340, ++ 1343, 1343, 1343, 1344, 1344, 1345, 1345, 1346, 1346, 1347, ++ 1347, 1348, 1348, 1349, 1349, 1350, 1350, 1351, 1351, 1351, ++ 1353, 1352, 1354, 1352, 1355, 1355, 1356, 1356, 1356, 1357, ++ 1357, 1357, 1359, 1358, 1361, 1362, 1360, 1360, 1363, 1363, ++ 1364, 1364, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, ++ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, ++ 1365, 1366, 1366, 1367, 1367, 1369, 1368, 1370, 1370, 1372, ++ 1371, 1371, 1371, 1373, 1373, 1375, 1374, 1376, 1377, 1377, ++ 1379, 1378, 1380, 1380, 1380, 1381, 1381, 1381, 1382, 1382, ++ 1383, 1385, 1386, 1387, 1388, 1384, 1389, 1389, 1390, 1390, ++ 1391, 1391, 1391, 1392, 1392, 1392, 1393, 1393, 1394, 1394, ++ 1395, 1395, 1395, 1395, 1396, 1396, 1397, 1397, 1398, 1398, ++ 1399, 1399, 1400, 1400, 1401, 1401, 1402, 1402, 1402, 1403, ++ 1403, 1404, 1404, 1405, 1405, 1406, 1406, 1407, 1408, 1408, ++ 1408, 1408, 1409, 1409, 1409, 1409, 1410, 1411, 1411, 1411, ++ 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, ++ 1412, 1412, 1412, 1413, 1413, 1413, 1413, 1413, 1414, 1414, ++ 1415, 1415, 1416, 1417, 1417, 1418, 1418, 1419, 1419, 1419, ++ 1420, 1420, 1420, 1420, 1421, 1421, 1421, 1422, 1422, 1423, ++ 1424, 1424, 1425, 1426, 1427, 1428, 1428, 1429, 1429, 1430, ++ 1430, 1430, 1431, 1431, 1431, 1432, 1432, 1432, 1432, 1432, ++ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, ++ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, ++ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, ++ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, ++ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, ++ 1432, 1432, 1432, 1432, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, ++ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1435, 1434, 1436, ++ 1436, 1437, 1437, 1439, 1438, 1440, 1440, 1440, 1440, 1441, ++ 1441, 1442, 1442, 1442, 1442, 1443, 1443, 1443, 1443, 1444, ++ 1444, 1445, 1445, 1446, 1446, 1446, 1446, 1446, 1446, 1446, ++ 1447, 1447, 1447, 1448, 1448, 1448, 1448, 1449, 1449, 1449, ++ 1450, 1450, 1450, 1450, 1450, 1452, 1451, 1453, 1453, 1454, ++ 1454, 1455, 1456, 1456, 1456, 1456, 1456, 1458, 1457, 1459, ++ 1459, 1460, 1459, 1461, 1461, 1462, 1462, 1463, 1463, 1463, ++ 1463, 1464, 1463, 1465, 1465, 1465, 1465, 1465, 1466, 1467, ++ 1467, 1467, 1467, 1467, 1468, 1469, 1469, 1469, 1469, 1470, ++ 1470, 1471, 1471, 1472, 1472, 1473, 1473, 1475, 1474, 1476, ++ 1474, 1477, 1474, 1478, 1474, 1474, 1474, 1474, 1474, 1474, ++ 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, ++ 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, ++ 1474, 1479, 1479, 1480, 1480, 1481, 1481, 1481, 1482, 1482, ++ 1482, 1482, 1483, 1483, 1484, 1484, 1485, 1485, 1486, 1486, ++ 1487, 1487, 1487, 1487, 1487, 1488, 1488, 1489, 1489, 1490, ++ 1491, 1491, 1491, 1491, 1491, 1492, 1492, 1493, 1493, 1494, ++ 1494, 1495, 1495, 1495, 1495, 1495, 1497, 1496, 1498, 1498, ++ 1499, 1499, 1499, 1500, 1500, 1500, 1501, 1501, 1502, 1503, ++ 1503, 1504, 1505, 1506, 1506, 1508, 1507, 1509, 1509, 1509, ++ 1510, 1510, 1512, 1511, 1513, 1513, 1514, 1514, 1514, 1515, ++ 1515, 1516, 1517, 1516, 1518, 1519, 1520, 1521, 1521, 1522, ++ 1522, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1524, ++ 1524, 1524, 1525, 1525, 1525, 1525, 1525, 1526, 1526, 1526, ++ 1526, 1526, 1526, 1527, 1527, 1528, 1529, 1530, 1530, 1530, ++ 1531, 1532, 1532, 1532, 1533, 1533, 1533, 1535, 1534, 1536, ++ 1536, 1537, 1537, 1539, 1538, 1540, 1540, 1541, 1541, 1541, ++ 1541, 1543, 1544, 1545, 1542, 1546, 1546, 1548, 1549, 1550, ++ 1551, 1552, 1547, 1554, 1555, 1556, 1557, 1553, 1558, 1558, ++ 1558, 1558, 1558, 1558, 1559, 1559, 1559, 1560, 1560, 1561, ++ 1561, 1561, 1562, 1562, 1563, 1564, 1563, 1565, 1565, 1566, ++ 1566, 1567, 1567, 1568 ++}; ++ ++ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ ++static const yytype_uint8 yyr2[] = ++{ ++ 0, 2, 1, 0, 4, 2, 0, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 4, 1, 2, 0, ++ 4, 0, 2, 3, 1, 2, 0, 3, 0, 5, ++ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 3, 3, 5, 1, 0, 1, 3, ++ 1, 3, 3, 3, 3, 0, 7, 0, 12, 0, ++ 12, 0, 12, 0, 6, 0, 3, 4, 4, 3, ++ 2, 10, 1, 3, 2, 2, 2, 2, 2, 2, ++ 2, 0, 13, 0, 6, 2, 0, 1, 3, 1, ++ 0, 2, 0, 2, 0, 1, 3, 4, 0, 2, ++ 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 0, 3, 1, 0, 2, ++ 0, 2, 2, 2, 2, 2, 3, 3, 1, 1, ++ 1, 2, 3, 3, 0, 4, 0, 3, 0, 1, ++ 3, 1, 0, 1, 3, 1, 0, 3, 0, 1, ++ 3, 1, 4, 0, 1, 1, 1, 0, 3, 2, ++ 3, 0, 3, 0, 5, 5, 0, 7, 5, 0, ++ 2, 1, 1, 1, 3, 1, 1, 1, 3, 0, ++ 1, 1, 1, 1, 2, 1, 3, 1, 1, 0, ++ 1, 0, 2, 3, 5, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 3, 1, 3, 0, 2, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 0, 5, ++ 0, 2, 0, 3, 0, 2, 2, 2, 2, 0, ++ 6, 2, 0, 2, 1, 1, 3, 0, 0, 0, ++ 7, 0, 2, 2, 1, 1, 0, 0, 8, 0, ++ 6, 1, 2, 1, 2, 0, 0, 6, 0, 0, ++ 6, 0, 2, 0, 5, 0, 1, 0, 5, 0, ++ 2, 0, 5, 4, 0, 0, 8, 0, 7, 1, ++ 1, 1, 1, 1, 2, 4, 5, 0, 4, 4, ++ 4, 3, 3, 2, 2, 0, 2, 1, 2, 3, ++ 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, ++ 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, ++ 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, ++ 3, 3, 3, 3, 3, 3, 3, 3, 4, 0, ++ 1, 1, 1, 1, 1, 2, 3, 2, 4, 0, ++ 6, 0, 5, 0, 0, 5, 0, 7, 1, 0, ++ 1, 0, 4, 0, 0, 3, 5, 6, 0, 4, ++ 2, 2, 2, 2, 0, 1, 0, 3, 0, 1, ++ 1, 3, 1, 4, 5, 5, 0, 2, 0, 0, ++ 7, 0, 10, 1, 3, 1, 1, 0, 2, 0, ++ 3, 1, 3, 0, 6, 1, 0, 0, 5, 0, ++ 4, 1, 1, 1, 3, 1, 3, 0, 0, 5, ++ 1, 3, 1, 1, 0, 3, 1, 3, 0, 4, ++ 1, 0, 1, 2, 1, 3, 4, 3, 3, 3, ++ 3, 4, 4, 3, 0, 0, 6, 0, 1, 0, ++ 1, 1, 2, 1, 1, 0, 1, 1, 2, 1, ++ 0, 3, 0, 1, 1, 2, 1, 2, 3, 3, ++ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++ 3, 3, 3, 0, 6, 1, 1, 3, 4, 4, ++ 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, ++ 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, ++ 1, 1, 3, 1, 1, 2, 2, 0, 8, 0, ++ 9, 0, 9, 0, 9, 8, 2, 0, 1, 4, ++ 0, 1, 2, 0, 3, 2, 0, 9, 0, 2, ++ 0, 1, 1, 0, 1, 2, 1, 1, 2, 2, ++ 4, 3, 3, 3, 3, 1, 2, 1, 1, 3, ++ 2, 3, 2, 2, 1, 3, 3, 2, 3, 1, ++ 2, 2, 2, 1, 2, 1, 1, 1, 2, 3, ++ 2, 3, 2, 2, 3, 3, 3, 0, 6, 0, ++ 6, 2, 1, 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, ++ 1, 1, 5, 0, 1, 2, 1, 1, 1, 1, ++ 3, 3, 3, 3, 0, 1, 0, 1, 0, 1, ++ 2, 1, 1, 2, 2, 4, 1, 3, 2, 1, ++ 2, 2, 2, 3, 3, 3, 3, 2, 2, 1, ++ 1, 1, 2, 1, 1, 1, 1, 1, 0, 2, ++ 1, 1, 1, 1, 1, 0, 2, 1, 1, 0, ++ 1, 1, 2, 2, 1, 2, 2, 0, 1, 1, ++ 1, 3, 1, 3, 0, 1, 0, 1, 5, 0, ++ 3, 3, 1, 0, 2, 2, 2, 0, 3, 3, ++ 6, 6, 1, 1, 2, 2, 2, 1, 2, 2, ++ 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, ++ 1, 0, 1, 2, 0, 1, 0, 1, 0, 1, ++ 1, 2, 1, 2, 1, 2, 2, 2, 3, 2, ++ 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, ++ 1, 1, 4, 2, 1, 4, 0, 1, 0, 2, ++ 1, 3, 0, 6, 0, 5, 7, 0, 5, 0, ++ 5, 0, 5, 0, 4, 0, 10, 3, 4, 3, ++ 3, 7, 0, 3, 1, 4, 0, 3, 0, 2, ++ 0, 1, 0, 2, 2, 2, 2, 1, 1, 1, ++ 3, 4, 0, 6, 4, 0, 5, 0, 6, 4, ++ 3, 1, 2, 1, 1, 0, 5, 0, 3, 2, ++ 0, 5, 0, 0, 6, 1, 3, 1, 1, 3, ++ 2, 3, 2, 4, 0, 6, 0, 0, 7, 4, ++ 4, 3, 3, 2, 2, 6, 5, 3, 5, 1, ++ 1, 1, 0, 1, 0, 1, 0, 2, 0, 1, ++ 2, 1, 1, 1, 0, 1, 1, 0, 2, 1, ++ 0, 1, 1, 1, 0, 5, 3, 0, 5, 3, ++ 3, 0, 3, 0, 2, 1, 3, 0, 1, 1, ++ 0, 2, 1, 3, 0, 5, 0, 1, 1, 3, ++ 0, 4, 0, 4, 0, 1, 1, 2, 1, 1, ++ 1, 0, 2, 0, 5, 2, 3, 0, 4, 0, ++ 3, 0, 1, 1, 2, 1, 1, 1, 1, 1, ++ 2, 0, 2, 0, 5, 0, 1, 1, 0, 4, ++ 4, 3, 5, 1, 3, 3, 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, 1, 2, 4, 2, 3, 2, 3, 0, ++ 3, 0, 0, 6, 2, 1, 1, 2, 2, 8, ++ 4, 0, 1, 2, 1, 1, 1, 1, 0, 2, ++ 4, 3, 1, 1, 3, 4, 0, 0, 0, 2, ++ 2, 1, 1, 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, 5, 5, 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, 2, 1, 1, 1, 2, 2, 1, ++ 1, 2, 2, 4, 1, 3, 1, 1, 1, 1, ++ 1, 3, 1, 1, 1, 1, 3, 2, 2, 2, ++ 2, 3, 3, 5, 6, 4, 4, 7, 2, 6, ++ 5, 6, 6, 4, 4, 5, 4, 6, 2, 4, ++ 4, 4, 10, 6, 8, 6, 4, 4, 6, 4, ++ 4, 4, 6, 4, 7, 7, 7, 6, 6, 6, ++ 6, 3, 4, 6, 8, 2, 2, 8, 8, 6, ++ 6, 2, 6, 6, 8, 8, 6, 8, 6, 2, ++ 8, 8, 2, 2, 2, 6, 6, 6, 4, 4, ++ 8, 4, 4, 4, 4, 3, 8, 4, 4, 6, ++ 4, 4, 4, 6, 8, 6, 4, 6, 1, 6, ++ 4, 4, 4, 4, 4, 6, 4, 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, 8, 0, 3, 3, 1, 4, 0, 1, ++ 0, 2, 0, 0, 4, 4, 2, 0, 3, 2, ++ 3, 2, 1, 1, 2, 1, 2, 1, 2, 2, ++ 2, 0, 3, 0, 1, 1, 3, 1, 3, 1, ++ 3, 0, 1, 0, 2, 4, 5, 1, 1, 1, ++ 1, 4, 1, 3, 3, 3, 0, 6, 0, 6, ++ 0, 8, 4, 0, 8, 0, 10, 6, 0, 8, ++ 0, 10, 6, 1, 2, 2, 0, 4, 3, 5, ++ 2, 0, 0, 7, 1, 0, 0, 6, 0, 3, ++ 0, 0, 5, 0, 1, 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, 1, 0, 1, 1, ++ 0, 2, 0, 1, 0, 0, 3, 0, 0, 3, ++ 2, 0, 0, 4, 4, 2, 0, 1, 1, 3, ++ 3, 1, 2, 0, 1, 0, 4, 4, 2, 0, ++ 1, 1, 0, 1, 0, 1, 2, 5, 4, 1, ++ 3, 3, 1, 1, 1, 1, 1, 1, 0, 2, ++ 3, 4, 1, 2, 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, 0, 0, 6, 0, 1, 3, 1, 3, 0, ++ 2, 3, 1, 2, 1, 0, 3, 0, 0, 7, ++ 2, 1, 0, 3, 0, 7, 0, 6, 4, 6, ++ 4, 4, 4, 0, 6, 4, 4, 5, 6, 4, ++ 1, 3, 1, 1, 3, 1, 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, 0, 3, 0, 5, 3, 1, ++ 3, 1, 3, 1, 1, 0, 1, 0, 4, 0, ++ 1, 3, 1, 1, 1, 0, 0, 6, 0, 0, ++ 11, 3, 1, 3, 3, 1, 3, 0, 1, 0, ++ 4, 0, 6, 0, 5, 0, 6, 1, 3, 2, ++ 4, 0, 2, 0, 2, 1, 1, 1, 0, 4, ++ 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, 6, 2, ++ 2, 0, 6, 0, 6, 5, 2, 1, 1, 1, ++ 5, 5, 2, 2, 1, 4, 3, 2, 3, 2, ++ 2, 1, 3, 4, 3, 3, 2, 2, 1, 1, ++ 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, ++ 1, 1, 1, 1, 1, 0, 1, 0, 2, 0, ++ 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, ++ 0, 4, 0, 4, 1, 1, 0, 1, 1, 0, ++ 1, 1, 0, 4, 0, 0, 5, 1, 0, 4, ++ 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 0, 1, 0, 3, 0, 3, 3, 1, 0, ++ 3, 1, 2, 0, 1, 0, 3, 3, 2, 2, ++ 0, 5, 0, 1, 1, 0, 1, 1, 1, 2, ++ 2, 0, 0, 0, 0, 21, 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, ++ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, ++ 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ++ 3, 5, 1, 1, 1, 1, 1, 3, 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, 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, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 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, 4, 0, ++ 1, 1, 3, 0, 2, 1, 1, 1, 1, 0, ++ 1, 0, 1, 1, 1, 0, 2, 2, 2, 1, ++ 2, 4, 5, 4, 6, 2, 3, 3, 3, 5, ++ 1, 3, 3, 2, 2, 2, 1, 1, 4, 4, ++ 1, 1, 1, 1, 1, 0, 4, 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, 7, 5, 3, 8, 8, 8, 6, 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, 0, 1, 3, 1, 2, 2, 2, 1, 3, ++ 3, 1, 1, 3, 1, 3, 1, 1, 1, 1, ++ 4, 5, 4, 6, 1, 0, 3, 3, 1, 1, ++ 0, 2, 2, 2, 2, 0, 2, 0, 3, 2, ++ 1, 2, 2, 2, 2, 2, 0, 3, 0, 1, ++ 0, 3, 2, 0, 1, 2, 0, 1, 4, 4, ++ 5, 2, 3, 0, 1, 0, 4, 0, 1, 1, ++ 0, 1, 0, 2, 2, 1, 0, 1, 1, 2, ++ 3, 2, 0, 6, 3, 0, 0, 0, 1, 2, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, ++ 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 0, 3, 1, 2, 1, ++ 2, 3, 3, 3, 0, 3, 3, 0, 7, 0, ++ 3, 1, 3, 0, 3, 2, 4, 0, 3, 4, ++ 4, 0, 0, 0, 16, 8, 7, 0, 0, 0, ++ 0, 0, 15, 0, 0, 0, 0, 12, 4, 4, ++ 3, 4, 3, 2, 1, 3, 5, 1, 1, 0, ++ 1, 1, 0, 2, 0, 0, 3, 0, 2, 5, ++ 3, 3, 3, 1 ++}; ++ ++ ++#define yyerrok (yyerrstatus = 0) ++#define yyclearin (yychar = YYEMPTY) ++#define YYEMPTY (-2) ++#define YYEOF 0 ++ ++#define YYACCEPT goto yyacceptlab ++#define YYABORT goto yyabortlab ++#define YYERROR goto yyerrorlab ++ ++ ++#define YYRECOVERING() (!!yyerrstatus) ++ ++#define YYBACKUP(Token, Value) \ ++do \ ++ if (yychar == YYEMPTY) \ ++ { \ ++ yychar = (Token); \ ++ yylval = (Value); \ ++ YYPOPSTACK (yylen); \ ++ yystate = *yyssp; \ ++ goto yybackup; \ ++ } \ ++ else \ ++ { \ ++ yyerror (thd, YY_("syntax error: cannot back up")); \ ++ YYERROR; \ ++ } \ ++while (0) ++ ++/* Error token number */ ++#define YYTERROR 1 ++#define YYERRCODE 256 ++ ++ ++ ++/* Enable debugging if requested. */ ++#if YYDEBUG ++ ++# ifndef YYFPRINTF ++# include /* INFRINGES ON USER NAME SPACE */ ++# define YYFPRINTF fprintf ++# endif ++ ++# define YYDPRINTF(Args) \ ++do { \ ++ if (yydebug) \ ++ YYFPRINTF Args; \ ++} while (0) ++ ++/* This macro is provided for backward compatibility. */ ++#ifndef YY_LOCATION_PRINT ++# define YY_LOCATION_PRINT(File, Loc) ((void) 0) ++#endif ++ ++ ++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ ++do { \ ++ if (yydebug) \ ++ { \ ++ YYFPRINTF (stderr, "%s ", Title); \ ++ yy_symbol_print (stderr, \ ++ Type, Value, thd); \ ++ YYFPRINTF (stderr, "\n"); \ ++ } \ ++} while (0) ++ ++ ++/*----------------------------------------. ++| Print this symbol's value on YYOUTPUT. | ++`----------------------------------------*/ ++ ++static void ++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, THD *thd) ++{ ++ FILE *yyo = yyoutput; ++ YYUSE (yyo); ++ YYUSE (thd); ++ if (!yyvaluep) ++ return; ++# ifdef YYPRINT ++ if (yytype < YYNTOKENS) ++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); ++# endif ++ YYUSE (yytype); ++} ++ ++ ++/*--------------------------------. ++| Print this symbol on YYOUTPUT. | ++`--------------------------------*/ ++ ++static void ++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, THD *thd) ++{ ++ YYFPRINTF (yyoutput, "%s %s (", ++ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); ++ ++ yy_symbol_value_print (yyoutput, yytype, yyvaluep, thd); ++ YYFPRINTF (yyoutput, ")"); ++} ++ ++/*------------------------------------------------------------------. ++| yy_stack_print -- Print the state stack from its BOTTOM up to its | ++| TOP (included). | ++`------------------------------------------------------------------*/ ++ ++static void ++yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) ++{ ++ YYFPRINTF (stderr, "Stack now"); ++ for (; yybottom <= yytop; yybottom++) ++ { ++ int yybot = *yybottom; ++ YYFPRINTF (stderr, " %d", yybot); ++ } ++ YYFPRINTF (stderr, "\n"); ++} ++ ++# define YY_STACK_PRINT(Bottom, Top) \ ++do { \ ++ if (yydebug) \ ++ yy_stack_print ((Bottom), (Top)); \ ++} while (0) ++ ++ ++/*------------------------------------------------. ++| Report that the YYRULE is going to be reduced. | ++`------------------------------------------------*/ ++ ++static void ++yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, THD *thd) ++{ ++ unsigned long int yylno = yyrline[yyrule]; ++ int yynrhs = yyr2[yyrule]; ++ int yyi; ++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", ++ yyrule - 1, yylno); ++ /* The symbols being reduced. */ ++ for (yyi = 0; yyi < yynrhs; yyi++) ++ { ++ YYFPRINTF (stderr, " $%d = ", yyi + 1); ++ yy_symbol_print (stderr, ++ yystos[yyssp[yyi + 1 - yynrhs]], ++ &(yyvsp[(yyi + 1) - (yynrhs)]) ++ , thd); ++ YYFPRINTF (stderr, "\n"); ++ } ++} ++ ++# define YY_REDUCE_PRINT(Rule) \ ++do { \ ++ if (yydebug) \ ++ yy_reduce_print (yyssp, yyvsp, Rule, thd); \ ++} while (0) ++ ++/* Nonzero means print parse trace. It is left uninitialized so that ++ multiple parsers can coexist. */ ++int yydebug; ++#else /* !YYDEBUG */ ++# define YYDPRINTF(Args) ++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) ++# define YY_STACK_PRINT(Bottom, Top) ++# define YY_REDUCE_PRINT(Rule) ++#endif /* !YYDEBUG */ ++ ++ ++/* YYINITDEPTH -- initial size of the parser's stacks. */ ++#ifndef YYINITDEPTH ++# define YYINITDEPTH 200 ++#endif ++ ++/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only ++ if the built-in stack extension method is used). ++ ++ Do not make this value too large; the results are undefined if ++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) ++ evaluated with infinite-precision integer arithmetic. */ ++ ++#ifndef YYMAXDEPTH ++# define YYMAXDEPTH 10000 ++#endif ++ ++ ++#if YYERROR_VERBOSE ++ ++# ifndef yystrlen ++# if defined __GLIBC__ && defined _STRING_H ++# define yystrlen strlen ++# else ++/* Return the length of YYSTR. */ ++static YYSIZE_T ++yystrlen (const char *yystr) ++{ ++ YYSIZE_T yylen; ++ for (yylen = 0; yystr[yylen]; yylen++) ++ continue; ++ return yylen; ++} ++# endif ++# endif ++ ++# ifndef yystpcpy ++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE ++# define yystpcpy stpcpy ++# else ++/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in ++ YYDEST. */ ++static char * ++yystpcpy (char *yydest, const char *yysrc) ++{ ++ char *yyd = yydest; ++ const char *yys = yysrc; ++ ++ while ((*yyd++ = *yys++) != '\0') ++ continue; ++ ++ return yyd - 1; ++} ++# endif ++# endif ++ ++# ifndef yytnamerr ++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary ++ quotes and backslashes, so that it's suitable for yyerror. The ++ heuristic is that double-quoting is unnecessary unless the string ++ contains an apostrophe, a comma, or backslash (other than ++ backslash-backslash). YYSTR is taken from yytname. If YYRES is ++ null, do not copy; instead, return the length of what the result ++ would have been. */ ++static YYSIZE_T ++yytnamerr (char *yyres, const char *yystr) ++{ ++ if (*yystr == '"') ++ { ++ YYSIZE_T yyn = 0; ++ char const *yyp = yystr; ++ ++ for (;;) ++ switch (*++yyp) ++ { ++ case '\'': ++ case ',': ++ goto do_not_strip_quotes; ++ ++ case '\\': ++ if (*++yyp != '\\') ++ goto do_not_strip_quotes; ++ /* Fall through. */ ++ default: ++ if (yyres) ++ yyres[yyn] = *yyp; ++ yyn++; ++ break; ++ ++ case '"': ++ if (yyres) ++ yyres[yyn] = '\0'; ++ return yyn; ++ } ++ do_not_strip_quotes: ; ++ } ++ ++ if (! yyres) ++ return yystrlen (yystr); ++ ++ return yystpcpy (yyres, yystr) - yyres; ++} ++# endif ++ ++/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message ++ about the unexpected token YYTOKEN for the state stack whose top is ++ YYSSP. ++ ++ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is ++ not large enough to hold the message. In that case, also set ++ *YYMSG_ALLOC to the required number of bytes. Return 2 if the ++ required number of bytes is too large to store. */ ++static int ++yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, ++ yytype_int16 *yyssp, int yytoken) ++{ ++ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); ++ YYSIZE_T yysize = yysize0; ++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; ++ /* Internationalized format string. */ ++ const char *yyformat = YY_NULLPTR; ++ /* Arguments of yyformat. */ ++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; ++ /* Number of reported tokens (one for the "unexpected", one per ++ "expected"). */ ++ int yycount = 0; ++ ++ /* There are many possibilities here to consider: ++ - If this state is a consistent state with a default action, then ++ the only way this function was invoked is if the default action ++ is an error action. In that case, don't check for expected ++ tokens because there are none. ++ - The only way there can be no lookahead present (in yychar) is if ++ this state is a consistent state with a default action. Thus, ++ detecting the absence of a lookahead is sufficient to determine ++ that there is no unexpected or expected token to report. In that ++ case, just report a simple "syntax error". ++ - Don't assume there isn't a lookahead just because this state is a ++ consistent state with a default action. There might have been a ++ previous inconsistent state, consistent state with a non-default ++ action, or user semantic action that manipulated yychar. ++ - Of course, the expected token list depends on states to have ++ correct lookahead information, and it depends on the parser not ++ to perform extra reductions after fetching a lookahead from the ++ scanner and before detecting a syntax error. Thus, state merging ++ (from LALR or IELR) and default reductions corrupt the expected ++ token list. However, the list is correct for canonical LR with ++ one exception: it will still contain any token that will not be ++ accepted due to an error action in a later state. ++ */ ++ if (yytoken != YYEMPTY) ++ { ++ int yyn = yypact[*yyssp]; ++ yyarg[yycount++] = yytname[yytoken]; ++ if (!yypact_value_is_default (yyn)) ++ { ++ /* Start YYX at -YYN if negative to avoid negative indexes in ++ YYCHECK. In other words, skip the first -YYN actions for ++ this state because they are default actions. */ ++ int yyxbegin = yyn < 0 ? -yyn : 0; ++ /* Stay within bounds of both yycheck and yytname. */ ++ int yychecklim = YYLAST - yyn + 1; ++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; ++ int yyx; ++ ++ for (yyx = yyxbegin; yyx < yyxend; ++yyx) ++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR ++ && !yytable_value_is_error (yytable[yyx + yyn])) ++ { ++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) ++ { ++ yycount = 1; ++ yysize = yysize0; ++ break; ++ } ++ yyarg[yycount++] = yytname[yyx]; ++ { ++ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); ++ if (! (yysize <= yysize1 ++ && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ return 2; ++ yysize = yysize1; ++ } ++ } ++ } ++ } ++ ++ switch (yycount) ++ { ++# define YYCASE_(N, S) \ ++ case N: \ ++ yyformat = S; \ ++ break ++ YYCASE_(0, YY_("syntax error")); ++ YYCASE_(1, YY_("syntax error, unexpected %s")); ++ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); ++ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); ++ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); ++ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); ++# undef YYCASE_ ++ } ++ ++ { ++ YYSIZE_T yysize1 = yysize + yystrlen (yyformat); ++ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ return 2; ++ yysize = yysize1; ++ } ++ ++ if (*yymsg_alloc < yysize) ++ { ++ *yymsg_alloc = 2 * yysize; ++ if (! (yysize <= *yymsg_alloc ++ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) ++ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; ++ return 1; ++ } ++ ++ /* Avoid sprintf, as that infringes on the user's name space. ++ Don't have undefined behavior even if the translation ++ produced a string with the wrong number of "%s"s. */ ++ { ++ char *yyp = *yymsg; ++ int yyi = 0; ++ while ((*yyp = *yyformat) != '\0') ++ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) ++ { ++ yyp += yytnamerr (yyp, yyarg[yyi++]); ++ yyformat += 2; ++ } ++ else ++ { ++ yyp++; ++ yyformat++; ++ } ++ } ++ return 0; ++} ++#endif /* YYERROR_VERBOSE */ ++ ++/*-----------------------------------------------. ++| Release the memory associated to this symbol. | ++`-----------------------------------------------*/ ++ ++static void ++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, THD *thd) ++{ ++ YYUSE (yyvaluep); ++ YYUSE (thd); ++ if (!yymsg) ++ yymsg = "Deleting"; ++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); ++ ++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++ YYUSE (yytype); ++ YY_IGNORE_MAYBE_UNINITIALIZED_END ++} ++ ++ ++ ++ ++/*----------. ++| yyparse. | ++`----------*/ ++ ++int ++yyparse (THD *thd) ++{ ++/* The lookahead symbol. */ ++int yychar; ++ ++ ++/* The semantic value of the lookahead symbol. */ ++/* Default value used for initialization, for pacifying older GCCs ++ or non-GCC compilers. */ ++YY_INITIAL_VALUE (static YYSTYPE yyval_default;) ++YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); ++ ++ /* Number of syntax errors so far. */ ++ int yynerrs; ++ ++ int yystate; ++ /* Number of tokens to shift before error messages enabled. */ ++ int yyerrstatus; ++ ++ /* The stacks and their tools: ++ 'yyss': related to states. ++ 'yyvs': related to semantic values. ++ ++ Refer to the stacks through separate pointers, to allow yyoverflow ++ to reallocate them elsewhere. */ ++ ++ /* The state stack. */ ++ yytype_int16 yyssa[YYINITDEPTH]; ++ yytype_int16 *yyss; ++ yytype_int16 *yyssp; ++ ++ /* The semantic value stack. */ ++ YYSTYPE yyvsa[YYINITDEPTH]; ++ YYSTYPE *yyvs; ++ YYSTYPE *yyvsp; ++ ++ YYSIZE_T yystacksize; ++ ++ int yyn; ++ int yyresult; ++ /* Lookahead token as an internal (translated) token number. */ ++ int yytoken = 0; ++ /* The variables used to return semantic value and location from the ++ action routines. */ ++ YYSTYPE yyval; ++ ++#if YYERROR_VERBOSE ++ /* Buffer for error messages, and its allocated size. */ ++ char yymsgbuf[128]; ++ char *yymsg = yymsgbuf; ++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf; ++#endif ++ ++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) ++ ++ /* The number of symbols on the RHS of the reduced rule. ++ Keep to zero when no symbol should be popped. */ ++ int yylen = 0; ++ ++ yyssp = yyss = yyssa; ++ yyvsp = yyvs = yyvsa; ++ yystacksize = YYINITDEPTH; ++ ++ YYDPRINTF ((stderr, "Starting parse\n")); ++ ++ yystate = 0; ++ yyerrstatus = 0; ++ yynerrs = 0; ++ yychar = YYEMPTY; /* Cause a token to be read. */ ++ goto yysetstate; ++ ++/*------------------------------------------------------------. ++| yynewstate -- Push a new state, which is found in yystate. | ++`------------------------------------------------------------*/ ++ yynewstate: ++ /* In all cases, when you get here, the value and location stacks ++ have just been pushed. So pushing a state here evens the stacks. */ ++ yyssp++; ++ ++ yysetstate: ++ *yyssp = yystate; ++ ++ if (yyss + yystacksize - 1 <= yyssp) ++ { ++ /* Get the current used size of the three stacks, in elements. */ ++ YYSIZE_T yysize = yyssp - yyss + 1; ++ ++#ifdef yyoverflow ++ { ++ /* Give user a chance to reallocate the stack. Use copies of ++ these so that the &'s don't force the real ones into ++ memory. */ ++ YYSTYPE *yyvs1 = yyvs; ++ yytype_int16 *yyss1 = yyss; ++ ++ /* Each stack pointer address is followed by the size of the ++ data in use in that stack, in bytes. This used to be a ++ conditional around just the two extra args, but that might ++ be undefined if yyoverflow is a macro. */ ++ yyoverflow (YY_("memory exhausted"), ++ &yyss1, yysize * sizeof (*yyssp), ++ &yyvs1, yysize * sizeof (*yyvsp), ++ &yystacksize); ++ ++ yyss = yyss1; ++ yyvs = yyvs1; ++ } ++#else /* no yyoverflow */ ++# ifndef YYSTACK_RELOCATE ++ goto yyexhaustedlab; ++# else ++ /* Extend the stack our own way. */ ++ if (YYMAXDEPTH <= yystacksize) ++ goto yyexhaustedlab; ++ yystacksize *= 2; ++ if (YYMAXDEPTH < yystacksize) ++ yystacksize = YYMAXDEPTH; ++ ++ { ++ yytype_int16 *yyss1 = yyss; ++ union yyalloc *yyptr = ++ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ++ if (! yyptr) ++ goto yyexhaustedlab; ++ YYSTACK_RELOCATE (yyss_alloc, yyss); ++ YYSTACK_RELOCATE (yyvs_alloc, yyvs); ++# undef YYSTACK_RELOCATE ++ if (yyss1 != yyssa) ++ YYSTACK_FREE (yyss1); ++ } ++# endif ++#endif /* no yyoverflow */ ++ ++ yyssp = yyss + yysize - 1; ++ yyvsp = yyvs + yysize - 1; ++ ++ YYDPRINTF ((stderr, "Stack size increased to %lu\n", ++ (unsigned long int) yystacksize)); ++ ++ if (yyss + yystacksize - 1 <= yyssp) ++ YYABORT; ++ } ++ ++ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); ++ ++ if (yystate == YYFINAL) ++ YYACCEPT; ++ ++ goto yybackup; ++ ++/*-----------. ++| yybackup. | ++`-----------*/ ++yybackup: ++ ++ /* Do appropriate processing given the current state. Read a ++ lookahead token if we need one and don't already have one. */ ++ ++ /* First try to decide what to do without reference to lookahead token. */ ++ yyn = yypact[yystate]; ++ if (yypact_value_is_default (yyn)) ++ goto yydefault; ++ ++ /* Not known => get a lookahead token if don't already have one. */ ++ ++ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ ++ if (yychar == YYEMPTY) ++ { ++ YYDPRINTF ((stderr, "Reading a token: ")); ++ yychar = yylex (&yylval, thd); ++ } ++ ++ if (yychar <= YYEOF) ++ { ++ yychar = yytoken = YYEOF; ++ YYDPRINTF ((stderr, "Now at end of input.\n")); ++ } ++ else ++ { ++ yytoken = YYTRANSLATE (yychar); ++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); ++ } ++ ++ /* If the proper action on seeing token YYTOKEN is to reduce or to ++ detect an error, take that action. */ ++ yyn += yytoken; ++ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) ++ goto yydefault; ++ yyn = yytable[yyn]; ++ if (yyn <= 0) ++ { ++ if (yytable_value_is_error (yyn)) ++ goto yyerrlab; ++ yyn = -yyn; ++ goto yyreduce; ++ } ++ ++ /* Count tokens shifted since error; after three, turn off error ++ status. */ ++ if (yyerrstatus) ++ yyerrstatus--; ++ ++ /* Shift the lookahead token. */ ++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); ++ ++ /* Discard the shifted token. */ ++ yychar = YYEMPTY; ++ ++ yystate = yyn; ++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++ *++yyvsp = yylval; ++ YY_IGNORE_MAYBE_UNINITIALIZED_END ++ ++ goto yynewstate; ++ ++ ++/*-----------------------------------------------------------. ++| yydefault -- do the default action for the current state. | ++`-----------------------------------------------------------*/ ++yydefault: ++ yyn = yydefact[yystate]; ++ if (yyn == 0) ++ goto yyerrlab; ++ goto yyreduce; ++ ++ ++/*-----------------------------. ++| yyreduce -- Do a reduction. | ++`-----------------------------*/ ++yyreduce: ++ /* yyn is the number of a rule to reduce with. */ ++ yylen = yyr2[yyn]; ++ ++ /* If YYLEN is nonzero, implement the default value of the action: ++ '$$ = $1'. ++ ++ Otherwise, the following line sets YYVAL to garbage. ++ This behavior is undocumented and Bison ++ users should not rely upon it. Assigning to YYVAL ++ unconditionally makes the parser a bit smaller, and it avoids a ++ GCC warning that YYVAL may be used uninitialized. */ ++ yyval = yyvsp[1-yylen]; ++ ++ ++ YY_REDUCE_PRINT (yyn); ++ switch (yyn) ++ { ++ case 2: ++#line 1708 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!thd->bootstrap && ++ (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT))) ++ { ++ my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ thd->lex->sql_command= SQLCOM_EMPTY_QUERY; ++ YYLIP->found_semicolon= NULL; ++ } ++#line 17264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 3: ++#line 1719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex_input_stream *lip = YYLIP; ++ ++ if ((thd->client_capabilities & CLIENT_MULTI_QUERIES) && ++ lip->multi_statements && ++ ! lip->eof()) ++ { ++ /* ++ We found a well formed query, and multi queries are allowed: ++ - force the parser to stop after the ';' ++ - mark the start of the next query for the next invocation ++ of the parser. ++ */ ++ lip->next_state= MY_LEX_END; ++ lip->found_semicolon= lip->get_ptr(); ++ } ++ else ++ { ++ /* Single query, terminated. */ ++ lip->found_semicolon= NULL; ++ } ++ } ++#line 17291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 5: ++#line 1744 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* Single query, not terminated. */ ++ YYLIP->found_semicolon= NULL; ++ } ++#line 17300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 63: ++#line 1819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->sql_command= SQLCOM_DEALLOCATE_PREPARE; ++ lex->prepared_stmt_name= (yyvsp[0].lex_str); ++ } ++#line 17310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 66: ++#line 1833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->sql_command= SQLCOM_PREPARE; ++ lex->prepared_stmt_name= (yyvsp[-2].lex_str); ++ } ++#line 17320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 67: ++#line 1842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->prepared_stmt_code= (yyvsp[0].lex_str); ++ lex->prepared_stmt_code_is_varref= FALSE; ++ } ++#line 17330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 68: ++#line 1848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->prepared_stmt_code= (yyvsp[0].lex_str); ++ lex->prepared_stmt_code_is_varref= TRUE; ++ } ++#line 17340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 69: ++#line 1857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->sql_command= SQLCOM_EXECUTE; ++ lex->prepared_stmt_name= (yyvsp[0].lex_str); ++ } ++#line 17350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 70: ++#line 1863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 17356 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 75: ++#line 1878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING)); ++ if (!lexstr || lex->prepared_stmt_params.push_back(lexstr)) ++ MYSQL_YYABORT; ++ } ++#line 17367 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 76: ++#line 1890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 17379 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 77: ++#line 1898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_HELP; ++ lex->help_arg= (yyvsp[0].lex_str).str; ++ } ++#line 17389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 78: ++#line 1909 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_CHANGE_MASTER; ++ } ++#line 17397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 79: ++#line 1913 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 17403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 82: ++#line 1923 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.host = (yyvsp[0].lex_str).str; ++ } ++#line 17411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 83: ++#line 1927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.user = (yyvsp[0].lex_str).str; ++ } ++#line 17419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 84: ++#line 1931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.password = (yyvsp[0].lex_str).str; ++ } ++#line 17427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 85: ++#line 1935 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.port = (yyvsp[0].ulong_num); ++ } ++#line 17435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 86: ++#line 1939 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.connect_retry = (yyvsp[0].ulong_num); ++ } ++#line 17443 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 87: ++#line 1943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl= (yyvsp[0].ulong_num) ? ++ LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; ++ } ++#line 17452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 88: ++#line 1948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl_ca= (yyvsp[0].lex_str).str; ++ } ++#line 17460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 89: ++#line 1952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl_capath= (yyvsp[0].lex_str).str; ++ } ++#line 17468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 90: ++#line 1956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl_cert= (yyvsp[0].lex_str).str; ++ } ++#line 17476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 91: ++#line 1960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str; ++ } ++#line 17484 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 92: ++#line 1964 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl_key= (yyvsp[0].lex_str).str; ++ } ++#line 17492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 93: ++#line 1968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.ssl_verify_server_cert= (yyvsp[0].ulong_num) ? ++ LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; ++ } ++#line 17501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 94: ++#line 1974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.heartbeat_period= (float) (yyvsp[0].item_num)->val_real(); ++ if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD || ++ Lex->mi.heartbeat_period < 0.0) ++ { ++ const char format[]= "%d"; ++ char buf[4*sizeof(SLAVE_MAX_HEARTBEAT_PERIOD) + sizeof(format)]; ++ sprintf(buf, format, SLAVE_MAX_HEARTBEAT_PERIOD); ++ my_error(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE, MYF(0), buf); ++ MYSQL_YYABORT; ++ } ++ if (Lex->mi.heartbeat_period > slave_net_timeout) ++ { ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ++ ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX, ++ ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX)); ++ } ++ if (Lex->mi.heartbeat_period < 0.001) ++ { ++ if (Lex->mi.heartbeat_period != 0.0) ++ { ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ++ ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN, ++ ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN)); ++ Lex->mi.heartbeat_period= 0.0; ++ } ++ Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_DISABLE; ++ } ++ Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; ++ } ++#line 17536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 95: ++#line 2005 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; ++ } ++#line 17544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 100: ++#line 2020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[0].ulong_num))); ++ } ++#line 17552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 101: ++#line 2026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.log_file_name = (yyvsp[0].lex_str).str; ++ } ++#line 17560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 102: ++#line 2030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.pos = (yyvsp[0].ulonglong_number); ++ /* ++ If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it ++ instead of causing subsequent errors. ++ We need to do it in this file, because only there we know that ++ MASTER_LOG_POS has been explicitely specified. On the contrary ++ in change_master() (sql_repl.cc) we cannot distinguish between 0 ++ (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified), ++ whereas we want to distinguish (specified 0 means "read the binlog ++ from 0" (4 in fact), unspecified means "don't change the position ++ (keep the preceding value)"). ++ */ ++ Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos); ++ } ++#line 17580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 103: ++#line 2046 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.relay_log_name = (yyvsp[0].lex_str).str; ++ } ++#line 17588 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 104: ++#line 2050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->mi.relay_log_pos = (yyvsp[0].ulong_num); ++ /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */ ++ Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos); ++ } ++#line 17598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 105: ++#line 2061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->sql_command= SQLCOM_CREATE_TABLE; ++ if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, ++ TL_OPTION_UPDATING, ++ TL_WRITE, MDL_EXCLUSIVE)) ++ MYSQL_YYABORT; ++ /* ++ For CREATE TABLE, an non-existing table is not an error. ++ Instruct open_tables() to just take an MDL lock if the ++ table does not exist. ++ */ ++ lex->query_tables->open_strategy= TABLE_LIST::OPEN_IF_EXISTS; ++ lex->alter_info.reset(); ++ lex->col_list.empty(); ++ lex->change=NullS; ++ bzero((char*) &lex->create_info,sizeof(lex->create_info)); ++ lex->create_info.options=(yyvsp[-3].num) | (yyvsp[-1].num); ++ lex->create_info.default_table_charset= NULL; ++ lex->name.str= 0; ++ lex->name.length= 0; ++ lex->create_last_non_select_table= lex->last_table(); ++ } ++#line 17626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 106: ++#line 2085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->current_select= &lex->select_lex; ++ if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) && ++ !lex->create_info.db_type) ++ { ++ lex->create_info.db_type= ha_default_handlerton(thd); ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ++ ER_WARN_USING_OTHER_HANDLER, ++ ER(ER_WARN_USING_OTHER_HANDLER), ++ hton_name(lex->create_info.db_type)->str, ++ (yyvsp[-2].table)->table.str); ++ } ++ create_table_set_open_action_and_adjust_tables(lex); ++ } ++#line 17646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 107: ++#line 2101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index_prepare(Lex, (yyvsp[0].table))) ++ MYSQL_YYABORT; ++ } ++#line 17655 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 108: ++#line 2106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index(Lex, (yyvsp[-10].key_type), (yyvsp[-8].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 17664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 109: ++#line 2112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index_prepare(Lex, (yyvsp[0].table))) ++ MYSQL_YYABORT; ++ } ++#line 17673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 110: ++#line 2117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index(Lex, (yyvsp[-10].key_type), (yyvsp[-8].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 17682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 111: ++#line 2123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index_prepare(Lex, (yyvsp[0].table))) ++ MYSQL_YYABORT; ++ } ++#line 17691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 112: ++#line 2128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index(Lex, (yyvsp[-10].key_type), (yyvsp[-8].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 17700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 113: ++#line 2133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_info.default_table_charset= NULL; ++ Lex->create_info.used_fields= 0; ++ } ++#line 17709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 114: ++#line 2138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command=SQLCOM_CREATE_DB; ++ lex->name= (yyvsp[-2].lex_str); ++ lex->create_info.options=(yyvsp[-3].num); ++ } ++#line 17720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 115: ++#line 2145 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_view_mode= VIEW_CREATE_NEW; ++ Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; ++ Lex->create_view_suid= TRUE; ++ } ++#line 17730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 116: ++#line 2151 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 17736 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 117: ++#line 2153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_CREATE_USER; ++ } ++#line 17744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 118: ++#line 2157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP; ++ } ++#line 17752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 119: ++#line 2161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE; ++ } ++#line 17760 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 120: ++#line 2165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command= SQLCOM_CREATE_SERVER; ++ } ++#line 17768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 121: ++#line 2176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.server_name= (yyvsp[-8].lex_str).str; ++ Lex->server_options.server_name_length= (yyvsp[-8].lex_str).length; ++ Lex->server_options.scheme= (yyvsp[-4].lex_str).str; ++ } ++#line 17778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 124: ++#line 2190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.username= (yyvsp[0].lex_str).str; ++ } ++#line 17786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 125: ++#line 2194 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.host= (yyvsp[0].lex_str).str; ++ } ++#line 17794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 126: ++#line 2198 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.db= (yyvsp[0].lex_str).str; ++ } ++#line 17802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 127: ++#line 2202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.owner= (yyvsp[0].lex_str).str; ++ } ++#line 17810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 128: ++#line 2206 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.password= (yyvsp[0].lex_str).str; ++ } ++#line 17818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 129: ++#line 2210 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.socket= (yyvsp[0].lex_str).str; ++ } ++#line 17826 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 130: ++#line 2214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->server_options.port= (yyvsp[0].ulong_num); ++ } ++#line 17834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 131: ++#line 2221 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ ++ lex->stmt_definition_begin= (yyvsp[-3].simple_string); ++ lex->create_info.options= (yyvsp[-1].num); ++ if (!(lex->event_parse_data= Event_parse_data::new_instance(thd))) ++ MYSQL_YYABORT; ++ lex->event_parse_data->identifier= (yyvsp[0].spname); ++ lex->event_parse_data->on_completion= ++ Event_parse_data::ON_COMPLETION_DROP; ++ ++ lex->sql_command= SQLCOM_CREATE_EVENT; ++ /* We need that for disallowing subqueries */ ++ } ++#line 17853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 132: ++#line 2240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ sql_command is set here because some rules in ev_sql_stmt ++ can overwrite it ++ */ ++ Lex->sql_command= SQLCOM_CREATE_EVENT; ++ } ++#line 17865 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 133: ++#line 2251 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->item_expression= (yyvsp[-1].item); ++ Lex->event_parse_data->interval= (yyvsp[0].interval); ++ } ++#line 17874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 135: ++#line 2258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->item_execute_at= (yyvsp[0].item); ++ } ++#line 17882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 136: ++#line 2264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 17888 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 137: ++#line 2266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->status= Event_parse_data::ENABLED; ++ Lex->event_parse_data->status_changed= true; ++ (yyval.num)= 1; ++ } ++#line 17898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 138: ++#line 2272 "/home/buildbot/git/sql/sql_yacc.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 17908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 139: ++#line 2278 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->status= Event_parse_data::DISABLED; ++ Lex->event_parse_data->status_changed= true; ++ (yyval.num)= 1; ++ } ++#line 17918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 140: ++#line 2287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) Item_func_now_local(0); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ Lex->event_parse_data->item_starts= item; ++ } ++#line 17929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 141: ++#line 2294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->item_starts= (yyvsp[0].item); ++ } ++#line 17937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 143: ++#line 2302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->item_ends= (yyvsp[0].item); ++ } ++#line 17945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 144: ++#line 2308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 17951 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 146: ++#line 2314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->on_completion= ++ Event_parse_data::ON_COMPLETION_PRESERVE; ++ (yyval.num)= 1; ++ } ++#line 17961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 147: ++#line 2320 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->event_parse_data->on_completion= ++ Event_parse_data::ON_COMPLETION_DROP; ++ (yyval.num)= 1; ++ } ++#line 17971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 148: ++#line 2328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 17977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 149: ++#line 2330 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str); ++ (yyval.num)= 1; ++ } ++#line 17986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 150: ++#line 2337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ ++ /* ++ This stops the following : ++ - CREATE EVENT ... DO CREATE EVENT ...; ++ - ALTER EVENT ... DO CREATE EVENT ...; ++ - CREATE EVENT ... DO ALTER EVENT DO ....; ++ - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END| ++ This allows: ++ - CREATE EVENT ... DO DROP EVENT yyy; ++ - CREATE EVENT ... DO ALTER EVENT yyy; ++ (the nested ALTER EVENT can have anything but DO clause) ++ - ALTER EVENT ... DO ALTER EVENT yyy; ++ (the nested ALTER EVENT can have anything but DO clause) ++ - ALTER EVENT ... DO DROP EVENT yyy; ++ - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END| ++ (the nested ALTER EVENT can have anything but DO clause) ++ - CREATE PROCEDURE ... BEGIN DROP EVENT ... END| ++ */ ++ if (lex->sphead) ++ { ++ my_error(ER_EVENT_RECURSION_FORBIDDEN, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ ++ if (!(lex->sphead= new sp_head())) ++ MYSQL_YYABORT; ++ ++ lex->sphead->reset_thd_mem_root(thd); ++ lex->sphead->init(lex); ++ lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier); ++ ++ lex->sphead->m_type= TYPE_ENUM_PROCEDURE; ++ ++ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); ++ lex->sphead->m_chistics= &lex->sp_chistics; ++ ++ lex->sphead->set_body_start(thd, lip->get_cpp_ptr()); ++ } ++#line 18032 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 151: ++#line 2379 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ ++ /* return back to the original memory root ASAP */ ++ lex->sphead->set_stmt_end(thd); ++ lex->sphead->restore_thd_mem_root(thd); ++ ++ lex->sp_chistics.suid= SP_IS_SUID; //always the definer! ++ ++ lex->event_parse_data->body_changed= TRUE; ++ } ++#line 18048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 165: ++#line 2410 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->users_list.empty(); ++ lex->columns.empty(); ++ lex->grant= lex->grant_tot_col= 0; ++ lex->all_privileges= 0; ++ lex->select_lex.db= 0; ++ lex->ssl_type= SSL_TYPE_NOT_SPECIFIED; ++ lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0; ++ bzero((char *)&(lex->mqh),sizeof(lex->mqh)); ++ } ++#line 18064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 166: ++#line 2425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!(yyvsp[-2].lex_str).str || check_db_name(&(yyvsp[-2].lex_str))) ++ { ++ my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-2].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (check_routine_name(&(yyvsp[0].lex_str))) ++ { ++ MYSQL_YYABORT; ++ } ++ (yyval.spname)= new sp_name((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true); ++ if ((yyval.spname) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spname)->init_qname(thd); ++ } ++#line 18084 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 167: ++#line 2441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ LEX_STRING db; ++ if (check_routine_name(&(yyvsp[0].lex_str))) ++ { ++ MYSQL_YYABORT; ++ } ++ if (lex->copy_db_to(&db.str, &db.length)) ++ MYSQL_YYABORT; ++ (yyval.spname)= new sp_name(db, (yyvsp[0].lex_str), false); ++ if ((yyval.spname) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spname)->init_qname(thd); ++ } ++#line 18103 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 168: ++#line 2458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 169: ++#line 2459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 170: ++#line 2463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 171: ++#line 2464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 172: ++#line 2470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } ++#line 18133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 173: ++#line 2472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* Just parse it, we only have one language for now. */ } ++#line 18139 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 174: ++#line 2474 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.daccess= SP_NO_SQL; } ++#line 18145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 175: ++#line 2476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; } ++#line 18151 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 176: ++#line 2478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; } ++#line 18157 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 177: ++#line 2480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; } ++#line 18163 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 178: ++#line 2482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18169 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 179: ++#line 2487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 18175 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 180: ++#line 2488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.detistic= TRUE; } ++#line 18181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 181: ++#line 2489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sp_chistics.detistic= FALSE; } ++#line 18187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 182: ++#line 2494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sp_chistics.suid= SP_IS_SUID; ++ } ++#line 18195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 183: ++#line 2498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sp_chistics.suid= SP_IS_NOT_SUID; ++ } ++#line 18203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 184: ++#line 2505 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex = Lex; ++ ++ lex->sql_command= SQLCOM_CALL; ++ lex->spname= (yyvsp[0].spname); ++ lex->value_list.empty(); ++ sp_add_used_routine(lex, thd, (yyvsp[0].spname), TYPE_ENUM_PROCEDURE); ++ } ++#line 18216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 185: ++#line 2513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18222 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 190: ++#line 2529 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->value_list.push_back((yyvsp[0].item)); ++ } ++#line 18230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 191: ++#line 2533 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->value_list.push_back((yyvsp[0].item)); ++ } ++#line 18238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 196: ++#line 2551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ lex->length= 0; ++ lex->dec= 0; ++ lex->type= 0; ++ ++ lex->default_value= 0; ++ lex->on_update_value= 0; ++ ++ lex->comment= null_lex_str; ++ lex->charset= NULL; ++ ++ lex->interval_list.empty(); ++ lex->uint_geom_type= 0; ++ lex->vcol_info= 0; ++ } ++#line 18260 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 197: ++#line 2572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *spc= lex->spcont; ++ ++ if (spc->find_variable(&(yyvsp[-2].lex_str), TRUE)) ++ { ++ my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[-2].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ sp_variable_t *spvar= spc->push_variable(&(yyvsp[-2].lex_str), ++ (enum enum_field_types)(yyvsp[0].num), ++ sp_param_in); ++ ++ if (lex->sphead->fill_field_definition(thd, lex, ++ (enum enum_field_types) (yyvsp[0].num), ++ &spvar->field_def)) ++ { ++ MYSQL_YYABORT; ++ } ++ spvar->field_def.field_name= spvar->name.str; ++ spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL; ++ } ++#line 18287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 202: ++#line 2609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *spc= lex->spcont; ++ ++ if (spc->find_variable(&(yyvsp[-1].lex_str), TRUE)) ++ { ++ my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[-1].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ sp_variable_t *spvar= spc->push_variable(&(yyvsp[-1].lex_str), ++ (enum enum_field_types)(yyvsp[0].num), ++ (sp_param_mode_t)(yyvsp[-3].num)); ++ ++ if (lex->sphead->fill_field_definition(thd, lex, ++ (enum enum_field_types) (yyvsp[0].num), ++ &spvar->field_def)) ++ { ++ MYSQL_YYABORT; ++ } ++ spvar->field_def.field_name= spvar->name.str; ++ spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL; ++ } ++#line 18314 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 203: ++#line 2634 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= sp_param_in; } ++#line 18320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 204: ++#line 2635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= sp_param_in; } ++#line 18326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 205: ++#line 2636 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= sp_param_out; } ++#line 18332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 206: ++#line 2637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= sp_param_inout; } ++#line 18338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 207: ++#line 2641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 209: ++#line 2646 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 211: ++#line 2652 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; ++ } ++#line 18358 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 212: ++#line 2656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* We check for declarations out of (standard) order this way ++ because letting the grammar rules reflect it caused tricky ++ shift/reduce conflicts with the wrong result. (And we get ++ better error handling this way.) */ ++ if (((yyvsp[-1].spblock).vars || (yyvsp[-1].spblock).conds) && ((yyvsp[-2].spblock).curs || (yyvsp[-2].spblock).hndlrs)) ++ { /* Variable or condition following cursor or handler */ ++ my_message(ER_SP_VARCOND_AFTER_CURSHNDLR, ++ ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ if ((yyvsp[-1].spblock).curs && (yyvsp[-2].spblock).hndlrs) ++ { /* Cursor following handler */ ++ my_message(ER_SP_CURSOR_AFTER_HANDLER, ++ ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ (yyval.spblock).vars= (yyvsp[-2].spblock).vars + (yyvsp[-1].spblock).vars; ++ (yyval.spblock).conds= (yyvsp[-2].spblock).conds + (yyvsp[-1].spblock).conds; ++ (yyval.spblock).hndlrs= (yyvsp[-2].spblock).hndlrs + (yyvsp[-1].spblock).hndlrs; ++ (yyval.spblock).curs= (yyvsp[-2].spblock).curs + (yyvsp[-1].spblock).curs; ++ } ++#line 18385 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 213: ++#line 2682 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ lex->sphead->reset_lex(thd); ++ lex->spcont->declare_var_boundary((yyvsp[0].num)); ++ } ++#line 18396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 214: ++#line 2690 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *pctx= lex->spcont; ++ uint num_vars= pctx->context_var_count(); ++ enum enum_field_types var_type= (enum enum_field_types) (yyvsp[-1].num); ++ Item *dflt_value_item= (yyvsp[0].item); ++ ++ if (!dflt_value_item) ++ { ++ dflt_value_item= new (thd->mem_root) Item_null(); ++ if (dflt_value_item == NULL) ++ MYSQL_YYABORT; ++ /* QQ Set to the var_type with null_value? */ ++ } ++ ++ for (uint i = num_vars-(yyvsp[-3].num) ; i < num_vars ; i++) ++ { ++ uint var_idx= pctx->var_context2runtime(i); ++ sp_variable_t *spvar= pctx->find_variable(var_idx); ++ ++ if (!spvar) ++ MYSQL_YYABORT; ++ ++ spvar->type= var_type; ++ spvar->dflt= dflt_value_item; ++ ++ if (lex->sphead->fill_field_definition(thd, lex, var_type, ++ &spvar->field_def)) ++ { ++ MYSQL_YYABORT; ++ } ++ ++ spvar->field_def.field_name= spvar->name.str; ++ spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL; ++ ++ /* The last instruction is responsible for freeing LEX. */ ++ ++ sp_instr_set *is= new sp_instr_set(lex->sphead->instructions(), ++ pctx, ++ var_idx, ++ dflt_value_item, ++ var_type, ++ lex, ++ (i == num_vars - 1)); ++ if (is == NULL || ++ lex->sphead->add_instr(is)) ++ MYSQL_YYABORT; ++ } ++ ++ pctx->declare_var_boundary(0); ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ (yyval.spblock).vars= (yyvsp[-3].num); ++ (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; ++ } ++#line 18456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 215: ++#line 2746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *spc= lex->spcont; ++ ++ if (spc->find_cond(&(yyvsp[-3].lex_str), TRUE)) ++ { ++ my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[-3].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if(thd->lex->spcont->push_cond(&(yyvsp[-3].lex_str), (yyvsp[0].spcondtype))) ++ MYSQL_YYABORT; ++ (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; ++ (yyval.spblock).conds= 1; ++ } ++#line 18475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 216: ++#line 2761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ ++ lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE); ++ ++ sp_pcontext *ctx= lex->spcont; ++ sp_instr_hpush_jump *i= ++ new sp_instr_hpush_jump(sp->instructions(), ctx, (yyvsp[-2].num), ++ ctx->current_var_count()); ++ if (i == NULL || sp->add_instr(i)) ++ MYSQL_YYABORT; ++ ++ /* For continue handlers, mark end of handler scope. */ ++ if ((yyvsp[-2].num) == SP_HANDLER_CONTINUE && ++ sp->push_backpatch(i, ctx->last_label())) ++ MYSQL_YYABORT; ++ ++ if (sp->push_backpatch(i, ctx->push_label(empty_c_string, 0))) ++ MYSQL_YYABORT; ++ } ++#line 18501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 217: ++#line 2783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */ ++ sp_instr_hreturn *i; ++ ++ if ((yyvsp[-5].num) == SP_HANDLER_CONTINUE) ++ { ++ i= new sp_instr_hreturn(sp->instructions(), ctx, ++ ctx->current_var_count()); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++ else ++ { /* EXIT or UNDO handler, just jump to the end of the block */ ++ i= new sp_instr_hreturn(sp->instructions(), ctx, 0); ++ if (i == NULL || ++ sp->add_instr(i) || ++ sp->push_backpatch(i, lex->spcont->last_label())) /* Block end */ ++ MYSQL_YYABORT; ++ } ++ lex->sphead->backpatch(hlab); ++ ++ lex->spcont= ctx->pop_context(); ++ ++ (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0; ++ (yyval.spblock).hndlrs= (yyvsp[-1].num); ++ lex->spcont->add_handlers((yyvsp[-1].num)); ++ } ++#line 18537 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 218: ++#line 2815 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ uint offp; ++ sp_instr_cpush *i; ++ ++ if (ctx->find_cursor(&(yyvsp[-3].lex_str), &offp, TRUE)) ++ { ++ my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[-3].lex_str).str); ++ delete (yyvsp[0].lex); ++ MYSQL_YYABORT; ++ } ++ i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[0].lex), ++ ctx->current_cursor_count()); ++ if (i == NULL || ++ sp->add_instr(i) || ++ ctx->push_cursor(&(yyvsp[-3].lex_str))) ++ MYSQL_YYABORT; ++ (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0; ++ (yyval.spblock).curs= 1; ++ } ++#line 18564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 219: ++#line 2840 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sphead->reset_lex(thd); ++ } ++#line 18572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 220: ++#line 2844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ DBUG_ASSERT(lex->sql_command == SQLCOM_SELECT); ++ ++ if (lex->result) ++ { ++ my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT), ++ MYF(0)); ++ MYSQL_YYABORT; ++ } ++ lex->sp_lex_in_use= TRUE; ++ (yyval.lex)= lex; ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 18593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 221: ++#line 2863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= SP_HANDLER_EXIT; } ++#line 18599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 222: ++#line 2864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= SP_HANDLER_CONTINUE; } ++#line 18605 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 223: ++#line 2870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 18611 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 224: ++#line 2872 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)+= 1; } ++#line 18617 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 225: ++#line 2877 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont->parent_context(); ++ ++ if (ctx->find_handler((yyvsp[0].spcondtype))) ++ { ++ my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ sp_instr_hpush_jump *i= ++ (sp_instr_hpush_jump *)sp->last_instruction(); ++ ++ i->add_condition((yyvsp[0].spcondtype)); ++ ctx->push_handler((yyvsp[0].spcondtype)); ++ } ++ } ++#line 18641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 226: ++#line 2900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* mysql errno */ ++ if ((yyvsp[0].ulong_num) == 0) ++ { ++ my_error(ER_WRONG_VALUE, MYF(0), "CONDITION", "0"); ++ MYSQL_YYABORT; ++ } ++ (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t)); ++ if ((yyval.spcondtype) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spcondtype)->type= sp_cond_type_t::number; ++ (yyval.spcondtype)->mysqlerr= (yyvsp[0].ulong_num); ++ } ++#line 18658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 228: ++#line 2917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* SQLSTATE */ ++ if (!sp_cond_check(&(yyvsp[0].lex_str))) ++ { ++ my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t)); ++ if ((yyval.spcondtype) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spcondtype)->type= sp_cond_type_t::state; ++ memcpy((yyval.spcondtype)->sqlstate, (yyvsp[0].lex_str).str, SQLSTATE_LENGTH); ++ (yyval.spcondtype)->sqlstate[SQLSTATE_LENGTH]= '\0'; ++ } ++#line 18676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 229: ++#line 2933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 230: ++#line 2934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 18688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 231: ++#line 2939 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.spcondtype)= (yyvsp[0].spcondtype); ++ } ++#line 18696 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 232: ++#line 2943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[0].lex_str)); ++ if ((yyval.spcondtype) == NULL) ++ { ++ my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++#line 18709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 233: ++#line 2952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t)); ++ if ((yyval.spcondtype) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spcondtype)->type= sp_cond_type_t::warning; ++ } ++#line 18720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 234: ++#line 2959 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t)); ++ if ((yyval.spcondtype) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spcondtype)->type= sp_cond_type_t::notfound; ++ } ++#line 18731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 235: ++#line 2966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t)); ++ if ((yyval.spcondtype) == NULL) ++ MYSQL_YYABORT; ++ (yyval.spcondtype)->type= sp_cond_type_t::exception; ++ } ++#line 18742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 236: ++#line 2976 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Yacc_state *state= & thd->m_parser_state->m_yacc; ++ ++ lex->sql_command= SQLCOM_SIGNAL; ++ lex->m_stmt= new (thd->mem_root) Signal_statement(lex, (yyvsp[-1].spcondtype), ++ state->m_set_signal_info); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 18757 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 237: ++#line 2990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_cond_type_t *cond; ++ if (lex->spcont == NULL) ++ { ++ /* SIGNAL foo cannot be used outside of stored programs */ ++ my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ cond= lex->spcont->find_cond(&(yyvsp[0].lex_str)); ++ if (cond == NULL) ++ { ++ my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (cond->type != sp_cond_type_t::state) ++ { ++ my_error(ER_SIGNAL_BAD_CONDITION_TYPE, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ (yyval.spcondtype)= cond; ++ } ++#line 18784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 238: ++#line 3013 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.spcondtype)= (yyvsp[0].spcondtype); } ++#line 18790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 239: ++#line 3018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.spcondtype)= NULL; } ++#line 18796 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 240: ++#line 3020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.spcondtype)= (yyvsp[0].spcondtype); } ++#line 18802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 241: ++#line 3025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ thd->m_parser_state->m_yacc.m_set_signal_info.clear(); ++ } ++#line 18810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 243: ++#line 3033 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Set_signal_information *info; ++ info= &thd->m_parser_state->m_yacc.m_set_signal_info; ++ int index= (int) (yyvsp[-2].diag_condition_item_name); ++ info->clear(); ++ info->m_item[index]= (yyvsp[0].item); ++ } ++#line 18822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 244: ++#line 3042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Set_signal_information *info; ++ info= &thd->m_parser_state->m_yacc.m_set_signal_info; ++ int index= (int) (yyvsp[-2].diag_condition_item_name); ++ if (info->m_item[index] != NULL) ++ { ++ my_error(ER_DUP_SIGNAL_SET, MYF(0), ++ Diag_condition_item_names[index].str); ++ MYSQL_YYABORT; ++ } ++ info->m_item[index]= (yyvsp[0].item); ++ } ++#line 18839 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 245: ++#line 3061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item); } ++#line 18845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 246: ++#line 3063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if ((yyvsp[0].item)->type() == Item::FUNC_ITEM) ++ { ++ Item_func *item= (Item_func*) (yyvsp[0].item); ++ if (item->functype() == Item_func::SUSERVAR_FUNC) ++ { ++ /* ++ Don't allow the following syntax: ++ SIGNAL/RESIGNAL ... ++ SET = @foo := expr ++ */ ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++ (yyval.item)= (yyvsp[0].item); ++ } ++#line 18867 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 247: ++#line 3081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item); } ++#line 18873 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 248: ++#line 3087 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; } ++#line 18879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 249: ++#line 3089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; } ++#line 18885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 250: ++#line 3091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; } ++#line 18891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 251: ++#line 3093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; } ++#line 18897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 252: ++#line 3095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; } ++#line 18903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 253: ++#line 3097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; } ++#line 18909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 254: ++#line 3099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; } ++#line 18915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 255: ++#line 3101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; } ++#line 18921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 256: ++#line 3103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; } ++#line 18927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 257: ++#line 3105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; } ++#line 18933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 258: ++#line 3107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; } ++#line 18939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 259: ++#line 3109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; } ++#line 18945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 260: ++#line 3114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Yacc_state *state= & thd->m_parser_state->m_yacc; ++ ++ lex->sql_command= SQLCOM_RESIGNAL; ++ lex->m_stmt= new (thd->mem_root) Resignal_statement(lex, (yyvsp[-1].spcondtype), ++ state->m_set_signal_info); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 18960 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 261: ++#line 3128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* NOTE: field definition is filled in sp_decl section. */ ++ ++ LEX *lex= Lex; ++ sp_pcontext *spc= lex->spcont; ++ ++ if (spc->find_variable(&(yyvsp[0].lex_str), TRUE)) ++ { ++ my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ spc->push_variable(&(yyvsp[0].lex_str), (enum_field_types)0, sp_param_in); ++ (yyval.num)= 1; ++ } ++#line 18979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 262: ++#line 3143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* NOTE: field definition is filled in sp_decl section. */ ++ ++ LEX *lex= Lex; ++ sp_pcontext *spc= lex->spcont; ++ ++ if (spc->find_variable(&(yyvsp[0].lex_str), TRUE)) ++ { ++ my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ spc->push_variable(&(yyvsp[0].lex_str), (enum_field_types)0, sp_param_in); ++ (yyval.num)= (yyvsp[-2].num) + 1; ++ } ++#line 18998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 263: ++#line 3160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = NULL; } ++#line 19004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 264: ++#line 3161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item); } ++#line 19010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 278: ++#line 3182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sphead->new_cont_backpatch(NULL); } ++#line 19016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 279: ++#line 3184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sphead->do_cont_backpatch(); } ++#line 19022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 280: ++#line 3188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ ++ lex->sphead->reset_lex(thd); ++ lex->sphead->m_tmp_query= lip->get_tok_start(); ++ } ++#line 19034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 281: ++#line 3196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ sp_head *sp= lex->sphead; ++ ++ sp->m_flags|= sp_get_flags_for_command(lex); ++ if (lex->sql_command == SQLCOM_CHANGE_DB) ++ { /* "USE db" doesn't work in a procedure */ ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "USE"); ++ MYSQL_YYABORT; ++ } ++ /* ++ Don't add an instruction for SET statements, since all ++ instructions for them were already added during processing ++ of "set" rule. ++ */ ++ DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION || ++ lex->var_list.is_empty()); ++ if (lex->sql_command != SQLCOM_SET_OPTION) ++ { ++ sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(), ++ lex->spcont, lex); ++ if (i == NULL) ++ MYSQL_YYABORT; ++ ++ /* ++ Extract the query statement from the tokenizer. The ++ end is either lex->ptr, if there was no lookahead, ++ lex->tok_end otherwise. ++ */ ++ if (yychar == YYEMPTY) ++ i->m_query.length= lip->get_ptr() - sp->m_tmp_query; ++ else ++ i->m_query.length= lip->get_tok_end() - sp->m_tmp_query; ++ if (!(i->m_query.str= strmake_root(thd->mem_root, ++ sp->m_tmp_query, ++ i->m_query.length)) || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++ if (sp->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 282: ++#line 3243 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sphead->reset_lex(thd); } ++#line 19088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 283: ++#line 3245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ ++ if (sp->m_type != TYPE_ENUM_FUNCTION) ++ { ++ my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ sp_instr_freturn *i; ++ ++ i= new sp_instr_freturn(sp->instructions(), lex->spcont, (yyvsp[0].item), ++ sp->m_return_field_def.sql_type, lex); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ sp->m_flags|= sp_head::HAS_RETURN; ++ } ++ if (sp->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 284: ++#line 3271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* Unlabeled controls get a secret label. */ ++ LEX *lex= Lex; ++ ++ lex->spcont->push_label((char *)"", lex->sphead->instructions()); ++ } ++#line 19126 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 285: ++#line 3277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ lex->sphead->backpatch(lex->spcont->pop_label()); ++ } ++#line 19136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 286: ++#line 3286 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp = lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ sp_label_t *lab= ctx->find_label((yyvsp[0].lex_str).str); ++ ++ if (! lab) ++ { ++ my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ sp_instr_jump *i; ++ uint ip= sp->instructions(); ++ uint n; ++ /* ++ When jumping to a BEGIN-END block end, the target jump ++ points to the block hpop/cpop cleanup instructions, ++ so we should exclude the block context here. ++ When jumping to something else (i.e., SP_LAB_ITER), ++ there are no hpop/cpop at the jump destination, ++ so we should include the block context here for cleanup. ++ */ ++ bool exclusive= (lab->type == SP_LAB_BEGIN); ++ ++ n= ctx->diff_handlers(lab->ctx, exclusive); ++ if (n) ++ { ++ sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n); ++ if (hpop == NULL) ++ MYSQL_YYABORT; ++ sp->add_instr(hpop); ++ } ++ n= ctx->diff_cursors(lab->ctx, exclusive); ++ if (n) ++ { ++ sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n); ++ if (cpop == NULL) ++ MYSQL_YYABORT; ++ sp->add_instr(cpop); ++ } ++ i= new sp_instr_jump(ip, ctx); ++ if (i == NULL) ++ MYSQL_YYABORT; ++ sp->push_backpatch(i, lab); /* Jumping forward */ ++ sp->add_instr(i); ++ } ++ } ++#line 19190 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 287: ++#line 3339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ sp_label_t *lab= ctx->find_label((yyvsp[0].lex_str).str); ++ ++ if (! lab || lab->type != SP_LAB_ITER) ++ { ++ my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ sp_instr_jump *i; ++ uint ip= sp->instructions(); ++ uint n; ++ ++ n= ctx->diff_handlers(lab->ctx, FALSE); /* Inclusive the dest. */ ++ if (n) ++ { ++ sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n); ++ if (hpop == NULL || ++ sp->add_instr(hpop)) ++ MYSQL_YYABORT; ++ } ++ n= ctx->diff_cursors(lab->ctx, FALSE); /* Inclusive the dest. */ ++ if (n) ++ { ++ sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n); ++ if (cpop == NULL || ++ sp->add_instr(cpop)) ++ MYSQL_YYABORT; ++ } ++ i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */ ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++ } ++#line 19234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 288: ++#line 3382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ uint offset; ++ sp_instr_copen *i; ++ ++ if (! lex->spcont->find_cursor(&(yyvsp[0].lex_str), &offset)) ++ { ++ my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ i= new sp_instr_copen(sp->instructions(), lex->spcont, offset); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++#line 19255 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 289: ++#line 3402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ uint offset; ++ sp_instr_cfetch *i; ++ ++ if (! lex->spcont->find_cursor(&(yyvsp[-1].lex_str), &offset)) ++ { ++ my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[-1].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++#line 19276 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 290: ++#line 3419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 19282 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 291: ++#line 3424 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ uint offset; ++ sp_instr_cclose *i; ++ ++ if (! lex->spcont->find_cursor(&(yyvsp[0].lex_str), &offset)) ++ { ++ my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ i= new sp_instr_cclose(sp->instructions(), lex->spcont, offset); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++#line 19303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 295: ++#line 3450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *spc= lex->spcont; ++ sp_variable_t *spv; ++ ++ if (!spc || !(spv = spc->find_variable(&(yyvsp[0].lex_str)))) ++ { ++ my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ /* An SP local variable */ ++ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); ++ ++ i->add_to_varlist(spv); ++ } ++ } ++#line 19327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 296: ++#line 3470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *spc= lex->spcont; ++ sp_variable_t *spv; ++ ++ if (!spc || !(spv = spc->find_variable(&(yyvsp[0].lex_str)))) ++ { ++ my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ /* An SP local variable */ ++ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); ++ ++ i->add_to_varlist(spv); ++ } ++ } ++#line 19351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 297: ++#line 3492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sphead->reset_lex(thd); } ++#line 19357 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 298: ++#line 3494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ uint ip= sp->instructions(); ++ sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx, ++ (yyvsp[-1].item), lex); ++ if (i == NULL || ++ sp->push_backpatch(i, ctx->push_label((char *)"", 0)) || ++ sp->add_cont_backpatch(i) || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ if (sp->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 299: ++#line 3510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ sp_head *sp= Lex->sphead; ++ sp_pcontext *ctx= Lex->spcont; ++ uint ip= sp->instructions(); ++ sp_instr_jump *i = new sp_instr_jump(ip, ctx); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ sp->backpatch(ctx->pop_label()); ++ sp->push_backpatch(i, ctx->push_label((char *)"", 0)); ++ } ++#line 19393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 300: ++#line 3522 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ lex->sphead->backpatch(lex->spcont->pop_label()); ++ } ++#line 19403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 306: ++#line 3542 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ case_stmt_action_case(lex); ++ lex->sphead->reset_lex(thd); /* For expr $3 */ ++ } ++#line 19413 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 307: ++#line 3548 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (case_stmt_action_expr(lex, (yyvsp[0].item))) ++ MYSQL_YYABORT; ++ ++ /* For expr $3 */ ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 308: ++#line 3561 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ case_stmt_action_end_case(lex, true); ++ } ++#line 19436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 309: ++#line 3569 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ case_stmt_action_case(lex); ++ } ++#line 19445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 310: ++#line 3577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ case_stmt_action_end_case(lex, false); ++ } ++#line 19454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 315: ++#line 3595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sphead->reset_lex(thd); /* For expr $3 */ ++ } ++#line 19462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 316: ++#line 3599 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* Simple case: = */ ++ ++ LEX *lex= Lex; ++ if (case_stmt_action_when(lex, (yyvsp[0].item), true)) ++ MYSQL_YYABORT; ++ /* For expr $3 */ ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 317: ++#line 3611 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (case_stmt_action_then(lex)) ++ MYSQL_YYABORT; ++ } ++#line 19487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 318: ++#line 3620 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sphead->reset_lex(thd); /* For expr $3 */ ++ } ++#line 19495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 319: ++#line 3624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (case_stmt_action_when(lex, (yyvsp[0].item), false)) ++ MYSQL_YYABORT; ++ /* For expr $3 */ ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 320: ++#line 3634 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (case_stmt_action_then(lex)) ++ MYSQL_YYABORT; ++ } ++#line 19518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 321: ++#line 3643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ uint ip= sp->instructions(); ++ sp_instr_error *i= new sp_instr_error(ip, lex->spcont, ++ ER_SP_CASE_NOT_FOUND); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++#line 19533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 323: ++#line 3658 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *ctx= lex->spcont; ++ sp_label_t *lab= ctx->find_label((yyvsp[-1].lex_str).str); ++ ++ if (lab) ++ { ++ my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[-1].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ lab= lex->spcont->push_label((yyvsp[-1].lex_str).str, ++ lex->sphead->instructions()); ++ lab->type= SP_LAB_ITER; ++ } ++ } ++#line 19555 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 324: ++#line 3676 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_label_t *lab= lex->spcont->pop_label(); ++ ++ if ((yyvsp[0].lex_str).str) ++ { ++ if (my_strcasecmp(system_charset_info, (yyvsp[0].lex_str).str, lab->name) != 0) ++ { ++ my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++ lex->sphead->backpatch(lab); ++ } ++#line 19574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 325: ++#line 3693 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= null_lex_str; } ++#line 19580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 326: ++#line 3694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 19586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 327: ++#line 3699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *ctx= lex->spcont; ++ sp_label_t *lab= ctx->find_label((yyvsp[-1].lex_str).str); ++ ++ if (lab) ++ { ++ my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[-1].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ ++ lab= lex->spcont->push_label((yyvsp[-1].lex_str).str, ++ lex->sphead->instructions()); ++ lab->type= SP_LAB_BEGIN; ++ } ++#line 19606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 328: ++#line 3715 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_label_t *lab= lex->spcont->pop_label(); ++ ++ if ((yyvsp[0].lex_str).str) ++ { ++ if (my_strcasecmp(system_charset_info, (yyvsp[0].lex_str).str, lab->name) != 0) ++ { ++ my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++ } ++#line 19624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 329: ++#line 3731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* Unlabeled blocks get a secret label. */ ++ LEX *lex= Lex; ++ uint ip= lex->sphead->instructions(); ++ sp_label_t *lab= lex->spcont->push_label((char *)"", ip); ++ lab->type= SP_LAB_BEGIN; ++ } ++#line 19635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 330: ++#line 3738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->spcont->pop_label(); ++ } ++#line 19644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 331: ++#line 3746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* QQ This is just a dummy for grouping declarations and statements ++ together. No [[NOT] ATOMIC] yet, and we need to figure out how ++ make it coexist with the existing BEGIN COMMIT/ROLLBACK. */ ++ LEX *lex= Lex; ++ lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE); ++ } ++#line 19655 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 332: ++#line 3755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ sp_pcontext *ctx= lex->spcont; ++ sp_instr *i; ++ ++ sp->backpatch(ctx->last_label()); /* We always have a label */ ++ if ((yyvsp[-2].spblock).hndlrs) ++ { ++ i= new sp_instr_hpop(sp->instructions(), ctx, (yyvsp[-2].spblock).hndlrs); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++ if ((yyvsp[-2].spblock).curs) ++ { ++ i= new sp_instr_cpop(sp->instructions(), ctx, (yyvsp[-2].spblock).curs); ++ if (i == NULL || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++ lex->spcont= ctx->pop_context(); ++ } ++#line 19683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 333: ++#line 3783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ uint ip= lex->sphead->instructions(); ++ sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */ ++ sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip); ++ if (i == NULL || ++ lex->sphead->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++#line 19697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 334: ++#line 3793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sphead->reset_lex(thd); } ++#line 19703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 335: ++#line 3795 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ uint ip= sp->instructions(); ++ sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont, ++ (yyvsp[-1].item), lex); ++ if (i == NULL || ++ /* Jumping forward */ ++ sp->push_backpatch(i, lex->spcont->last_label()) || ++ sp->new_cont_backpatch(i) || ++ sp->add_instr(i)) ++ MYSQL_YYABORT; ++ if (sp->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++#line 19723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 336: ++#line 3811 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ uint ip= lex->sphead->instructions(); ++ sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */ ++ sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip); ++ if (i == NULL || ++ lex->sphead->add_instr(i)) ++ MYSQL_YYABORT; ++ lex->sphead->do_cont_backpatch(); ++ } ++#line 19738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 337: ++#line 3822 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sphead->reset_lex(thd); } ++#line 19744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 338: ++#line 3824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ uint ip= lex->sphead->instructions(); ++ sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */ ++ sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont, ++ (yyvsp[-2].item), lab->ip, ++ lex); ++ if (i == NULL || ++ lex->sphead->add_instr(i)) ++ MYSQL_YYABORT; ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ /* We can shortcut the cont_backpatch here */ ++ i->m_cont_dest= ip+1; ++ } ++#line 19764 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 339: ++#line 3843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; } ++#line 19770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 340: ++#line 3845 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; } ++#line 19776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 341: ++#line 3850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->trg_chistics.event= TRG_EVENT_INSERT; } ++#line 19782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 342: ++#line 3852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->trg_chistics.event= TRG_EVENT_UPDATE; } ++#line 19788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 343: ++#line 3854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->trg_chistics.event= TRG_EVENT_DELETE; } ++#line 19794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 347: ++#line 3888 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 19800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 348: ++#line 3890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].lex_str).str; ++ } ++#line 19809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 349: ++#line 3900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; ++ } ++#line 19817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 350: ++#line 3906 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; ++ } ++#line 19825 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 355: ++#line 3929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 19831 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 402: ++#line 4023 "/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 19840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 403: ++#line 4031 "/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 19849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 404: ++#line 4039 "/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 19858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 405: ++#line 4047 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info= new st_alter_tablespace(); ++ if (lex->alter_tablespace_info == NULL) ++ MYSQL_YYABORT; ++ lex->alter_tablespace_info->tablespace_name= (yyvsp[0].lex_str).str; ++ lex->sql_command= SQLCOM_ALTER_TABLESPACE; ++ } ++#line 19871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 406: ++#line 4059 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info= new st_alter_tablespace(); ++ if (lex->alter_tablespace_info == NULL) ++ MYSQL_YYABORT; ++ lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].lex_str).str; ++ lex->sql_command= SQLCOM_ALTER_TABLESPACE; ++ } ++#line 19884 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 407: ++#line 4071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY; ++ } ++#line 19893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 408: ++#line 4076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE; ++ } ++#line 19902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 409: ++#line 4081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE; ++ } ++#line 19911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 410: ++#line 4089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->initial_size= (yyvsp[0].ulonglong_number); ++ } ++#line 19920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 411: ++#line 4097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->autoextend_size= (yyvsp[0].ulonglong_number); ++ } ++#line 19929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 412: ++#line 4105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->max_size= (yyvsp[0].ulonglong_number); ++ } ++#line 19938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 413: ++#line 4113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->extent_size= (yyvsp[0].ulonglong_number); ++ } ++#line 19947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 414: ++#line 4121 "/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 19956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 415: ++#line 4129 "/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 19965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 416: ++#line 4137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP) ++ { ++ my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP"); ++ MYSQL_YYABORT; ++ } ++ lex->alter_tablespace_info->nodegroup_id= (yyvsp[0].ulong_num); ++ } ++#line 19979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 417: ++#line 4150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->alter_tablespace_info->ts_comment != NULL) ++ { ++ my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT"); ++ MYSQL_YYABORT; ++ } ++ lex->alter_tablespace_info->ts_comment= (yyvsp[0].lex_str).str; ++ } ++#line 19993 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 418: ++#line 4163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->alter_tablespace_info->storage_engine != NULL) ++ { ++ my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0), ++ "STORAGE ENGINE"); ++ MYSQL_YYABORT; ++ } ++ lex->alter_tablespace_info->storage_engine= (yyvsp[0].db_type); ++ } ++#line 20008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 421: ++#line 4182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->wait_until_completed= TRUE; ++ } ++#line 20017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 422: ++#line 4187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (!(lex->alter_tablespace_info->wait_until_completed)) ++ { ++ my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT"); ++ MYSQL_YYABORT; ++ } ++ lex->alter_tablespace_info->wait_until_completed= FALSE; ++ } ++#line 20031 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 423: ++#line 4199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulonglong_number)= (yyvsp[0].ulonglong_number);} ++#line 20037 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 424: ++#line 4201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ ulonglong number; ++ uint text_shift_number= 0; ++ longlong prefix_number; ++ char *start_ptr= (yyvsp[0].lex_str).str; ++ uint str_len= (yyvsp[0].lex_str).length; ++ char *end_ptr= start_ptr + str_len; ++ int error; ++ prefix_number= my_strtoll10(start_ptr, &end_ptr, &error); ++ if ((start_ptr + str_len - 1) == end_ptr) ++ { ++ switch (end_ptr[0]) ++ { ++ case 'g': ++ case 'G': ++ text_shift_number+=10; ++ case 'm': ++ case 'M': ++ text_shift_number+=10; ++ case 'k': ++ case 'K': ++ text_shift_number+=10; ++ break; ++ default: ++ { ++ my_error(ER_WRONG_SIZE_NUMBER, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++ if (prefix_number >> 31) ++ { ++ my_error(ER_SIZE_OVERFLOW_ERROR, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ number= prefix_number << text_shift_number; ++ } ++ else ++ { ++ my_error(ER_WRONG_SIZE_NUMBER, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ (yyval.ulonglong_number)= number; ++ } ++#line 20085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 425: ++#line 4251 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 426: ++#line 4254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20097 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 427: ++#line 4256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ TABLE_LIST *src_table; ++ LEX *lex= thd->lex; ++ ++ lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE; ++ src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, 0, ++ TL_READ, ++ MDL_SHARED_READ); ++ if (! src_table) ++ MYSQL_YYABORT; ++ /* CREATE TABLE ... LIKE is not allowed for views. */ ++ src_table->required_type= FRMTYPE_TABLE; ++ } ++#line 20115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 428: ++#line 4270 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ TABLE_LIST *src_table; ++ LEX *lex= thd->lex; ++ ++ lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE; ++ src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[-1].table), NULL, 0, ++ TL_READ, ++ MDL_SHARED_READ); ++ if (! src_table) ++ MYSQL_YYABORT; ++ /* CREATE TABLE ... LIKE is not allowed for views. */ ++ src_table->required_type= FRMTYPE_TABLE; ++ } ++#line 20133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 429: ++#line 4287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_info.option_list= NULL; ++ } ++#line 20141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 430: ++#line 4292 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 431: ++#line 4295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->set_braces(1);} ++#line 20153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 432: ++#line 4296 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 433: ++#line 4300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 434: ++#line 4302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->set_braces(0);} ++#line 20171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 435: ++#line 4303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 436: ++#line 4305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->set_braces(1);} ++#line 20183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 437: ++#line 4306 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 438: ++#line 4311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Remove all tables used in PARTITION clause from the global table ++ list. Partitioning with subqueries is not allowed anyway. ++ */ ++ TABLE_LIST *last_non_sel_table= Lex->create_last_non_select_table; ++ last_non_sel_table->next_global= 0; ++ Lex->query_tables_last= &last_non_sel_table->next_global; ++ } ++#line 20203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 439: ++#line 4347 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 441: ++#line 4353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->part_info= new partition_info(); ++ if (!lex->part_info) ++ { ++ mem_alloc_error(sizeof(partition_info)); ++ MYSQL_YYABORT; ++ } ++ if (lex->sql_command == SQLCOM_ALTER_TABLE) ++ { ++ lex->alter_info.flags|= ALTER_PARTITION; ++ } ++ } ++#line 20227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 443: ++#line 4371 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++#ifdef WITH_PARTITION_STORAGE_ENGINE ++ LEX_STRING partition_name={C_STRING_WITH_LEN("partition")}; ++ if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN)) ++ { ++ my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), ++ "--skip-partition"); ++ MYSQL_YYABORT; ++ } ++#else ++ my_error(ER_FEATURE_DISABLED, MYF(0), "partitioning", ++ "--with-plugin-partition"); ++ MYSQL_YYABORT; ++#endif ++ } ++#line 20247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 444: ++#line 4390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (!lex->part_info) ++ { ++ my_parse_error(ER(ER_PARTITION_ENTRY_ERROR)); ++ MYSQL_YYABORT; ++ } ++ /* ++ We enter here when opening the frm file to translate ++ partition info string into part_info data structure. ++ */ ++ } ++#line 20264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 445: ++#line 4402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 447: ++#line 4411 "/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 20281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 448: ++#line 4418 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->part_type= HASH_PARTITION; } ++#line 20287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 449: ++#line 4419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20293 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 450: ++#line 4421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->part_type= RANGE_PARTITION; } ++#line 20299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 451: ++#line 4423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->part_type= RANGE_PARTITION; } ++#line 20305 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 452: ++#line 4425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->part_type= LIST_PARTITION; } ++#line 20311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 453: ++#line 4427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->part_type= LIST_PARTITION; } ++#line 20317 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 454: ++#line 4431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20323 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 455: ++#line 4433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->linear_hash_ind= TRUE;} ++#line 20329 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 456: ++#line 4438 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;} ++#line 20335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 457: ++#line 4440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ switch ((yyvsp[0].ulong_num)) { ++ case 1: ++ Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_51; ++ break; ++ case 2: ++ Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_55; ++ break; ++ default: ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 20353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 458: ++#line 4456 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20359 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 459: ++#line 4457 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 460: ++#line 4461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 461: ++#line 4462 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 462: ++#line 4467 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ part_info->num_columns++; ++ if (part_info->part_field_list.push_back((yyvsp[0].lex_str).str)) ++ { ++ mem_alloc_error(1); ++ MYSQL_YYABORT; ++ } ++ if (part_info->num_columns > MAX_REF_PARTS) ++ { ++ my_error(ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), ++ "list of partition fields"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 20397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 463: ++#line 4486 "/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 20407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 464: ++#line 4496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->set_part_expr((yyvsp[-3].simple_string)+1, (yyvsp[-2].item), (yyvsp[-1].simple_string), FALSE)) ++ { MYSQL_YYABORT; } ++ part_info->num_columns= 1; ++ part_info->column_list= FALSE; ++ } ++#line 20419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 465: ++#line 4507 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->part_info->set_part_expr((yyvsp[-3].simple_string)+1, (yyvsp[-2].item), (yyvsp[-1].simple_string), TRUE)) ++ { MYSQL_YYABORT; } ++ } ++#line 20428 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 466: ++#line 4515 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 467: ++#line 4517 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ uint num_parts= (yyvsp[0].ulong_num); ++ partition_info *part_info= Lex->part_info; ++ if (num_parts == 0) ++ { ++ my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions"); ++ MYSQL_YYABORT; ++ } ++ ++ part_info->num_parts= num_parts; ++ part_info->use_default_num_partitions= FALSE; ++ } ++#line 20451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 468: ++#line 4532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20457 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 469: ++#line 4534 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->subpart_type= HASH_PARTITION; } ++#line 20463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 470: ++#line 4535 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20469 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 471: ++#line 4538 "/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 20479 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 472: ++#line 4543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20485 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 473: ++#line 4547 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 474: ++#line 4548 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 475: ++#line 4553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->subpart_field_list.push_back((yyvsp[0].lex_str).str)) ++ { ++ mem_alloc_error(1); ++ MYSQL_YYABORT; ++ } ++ if (part_info->subpart_field_list.elements > MAX_REF_PARTS) ++ { ++ my_error(ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), ++ "list of subpartition fields"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 20516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 476: ++#line 4571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ bool not_corr_func; ++ not_corr_func= !lex->safe_to_cache_query; ++ lex->safe_to_cache_query= 1; ++ if (not_corr_func) ++ { ++ my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR)); ++ MYSQL_YYABORT; ++ } ++ (yyval.item)=(yyvsp[0].item); ++ } ++#line 20533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 477: ++#line 4586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 478: ++#line 4588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ uint num_parts= (yyvsp[0].ulong_num); ++ LEX *lex= Lex; ++ if (num_parts == 0) ++ { ++ my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions"); ++ MYSQL_YYABORT; ++ } ++ lex->part_info->num_subparts= num_parts; ++ lex->part_info->use_default_num_subpartitions= FALSE; ++ } ++#line 20555 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 479: ++#line 4603 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->part_type == RANGE_PARTITION) ++ { ++ my_error(ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), ++ "RANGE"); ++ MYSQL_YYABORT; ++ } ++ else if (part_info->part_type == LIST_PARTITION) ++ { ++ my_error(ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), ++ "LIST"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 20575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 480: ++#line 4619 "/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; ++ if (part_info->num_parts != 0) ++ { ++ if (part_info->num_parts != ++ count_curr_parts) ++ { ++ my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++ else if (count_curr_parts > 0) ++ { ++ part_info->num_parts= count_curr_parts; ++ } ++ part_info->count_curr_subparts= 0; ++ } ++#line 20598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 481: ++#line 4640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 482: ++#line 4641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 483: ++#line 4646 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ partition_element *p_elem= new partition_element(); ++ ++ if (!p_elem || part_info->partitions.push_back(p_elem)) ++ { ++ mem_alloc_error(sizeof(partition_element)); ++ MYSQL_YYABORT; ++ } ++ p_elem->part_state= PART_NORMAL; ++ part_info->curr_part_elem= p_elem; ++ part_info->current_partition= p_elem; ++ part_info->use_default_partitions= FALSE; ++ part_info->use_default_num_partitions= FALSE; ++ } ++#line 20630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 484: ++#line 4665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 485: ++#line 4670 "/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; ++ if (check_ident_length(&(yyvsp[0].lex_str))) ++ MYSQL_YYABORT; ++ p_elem->partition_name= (yyvsp[0].lex_str).str; ++ } ++#line 20648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 486: ++#line 4681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ partition_info *part_info= lex->part_info; ++ if (! lex->is_partition_management()) ++ { ++ if (part_info->part_type == RANGE_PARTITION) ++ { ++ my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0), ++ "RANGE", "LESS THAN"); ++ MYSQL_YYABORT; ++ } ++ if (part_info->part_type == LIST_PARTITION) ++ { ++ my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0), ++ "LIST", "IN"); ++ MYSQL_YYABORT; ++ } ++ } ++ else ++ part_info->part_type= HASH_PARTITION; ++ } ++#line 20674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 487: ++#line 4703 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ partition_info *part_info= lex->part_info; ++ if (! lex->is_partition_management()) ++ { ++ if (part_info->part_type != RANGE_PARTITION) ++ { ++ my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0), ++ "RANGE", "LESS THAN"); ++ MYSQL_YYABORT; ++ } ++ } ++ else ++ part_info->part_type= RANGE_PARTITION; ++ } ++#line 20694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 488: ++#line 4718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 489: ++#line 4720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ partition_info *part_info= lex->part_info; ++ if (! lex->is_partition_management()) ++ { ++ if (part_info->part_type != LIST_PARTITION) ++ { ++ my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0), ++ "LIST", "IN"); ++ MYSQL_YYABORT; ++ } ++ } ++ else ++ part_info->part_type= LIST_PARTITION; ++ } ++#line 20720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 490: ++#line 4735 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 491: ++#line 4740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ ++ if (part_info->num_columns && ++ part_info->num_columns != 1U) ++ { ++ part_info->print_debug("Kilroy II", NULL); ++ my_parse_error(ER(ER_PARTITION_COLUMN_LIST_ERROR)); ++ MYSQL_YYABORT; ++ } ++ else ++ part_info->num_columns= 1U; ++ if (part_info->init_column_part()) ++ { ++ MYSQL_YYABORT; ++ } ++ if (part_info->add_max_value()) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 20752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 492: ++#line 4761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20758 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 493: ++#line 4766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ partition_info *part_info= lex->part_info; ++ part_info->print_debug("part_values_in: part_value_item", NULL); ++ ++ if (part_info->num_columns != 1U) ++ { ++ if (!lex->is_partition_management() || ++ part_info->num_columns == 0 || ++ part_info->num_columns > MAX_REF_PARTS) ++ { ++ part_info->print_debug("Kilroy III", NULL); ++ my_parse_error(ER(ER_PARTITION_COLUMN_LIST_ERROR)); ++ MYSQL_YYABORT; ++ } ++ /* ++ Reorganize the current large array into a list of small ++ arrays with one entry in each array. This can happen ++ in the first partition of an ALTER TABLE statement where ++ we ADD or REORGANIZE partitions. Also can only happen ++ for LIST partitions. ++ */ ++ if (part_info->reorganize_into_single_field_col_val()) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++ } ++#line 20791 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 494: ++#line 4795 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->num_columns < 2U) ++ { ++ my_parse_error(ER(ER_ROW_SINGLE_PARTITION_FIELD_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 20804 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 495: ++#line 4806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 496: ++#line 4807 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20816 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 497: ++#line 4812 "/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); ++ /* Initialisation code needed for each list of value expressions */ ++ if (!(part_info->part_type == LIST_PARTITION && ++ part_info->num_columns == 1U) && ++ part_info->init_column_part()) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 20832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 498: ++#line 4823 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 499: ++#line 4825 "/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); ++ if (part_info->num_columns == 0) ++ part_info->num_columns= part_info->curr_list_object; ++ if (part_info->num_columns != part_info->curr_list_object) ++ { ++ /* ++ All value items lists must be of equal length, in some cases ++ which is covered by the above if-statement we don't know yet ++ how many columns is in the partition so the assignment above ++ ensures that we only report errors when we know we have an ++ error. ++ */ ++ part_info->print_debug("Kilroy I", NULL); ++ my_parse_error(ER(ER_PARTITION_COLUMN_LIST_ERROR)); ++ MYSQL_YYABORT; ++ } ++ part_info->curr_list_object= 0; ++ } ++#line 20863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 500: ++#line 4848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 501: ++#line 4849 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 502: ++#line 4854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->part_type == LIST_PARTITION) ++ { ++ my_parse_error(ER(ER_MAXVALUE_IN_VALUES_IN)); ++ MYSQL_YYABORT; ++ } ++ if (part_info->add_max_value()) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 20892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 503: ++#line 4867 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ partition_info *part_info= lex->part_info; ++ Item *part_expr= (yyvsp[0].item); ++ ++ if (!lex->safe_to_cache_query) ++ { ++ my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (part_info->add_column_list_value(thd, part_expr)) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 20912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 504: ++#line 4887 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->num_subparts != 0 && ++ !part_info->use_default_subpartitions) ++ { ++ /* ++ We come here when we have defined subpartitions on the first ++ partition but not on all the subsequent partitions. ++ */ ++ my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 20930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 505: ++#line 4901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ partition_info *part_info= Lex->part_info; ++ if (part_info->num_subparts != 0) ++ { ++ if (part_info->num_subparts != ++ part_info->count_curr_subparts) ++ { ++ my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++ else if (part_info->count_curr_subparts > 0) ++ { ++ if (part_info->partitions.elements > 1) ++ { ++ my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR)); ++ MYSQL_YYABORT; ++ } ++ part_info->num_subparts= part_info->count_curr_subparts; ++ } ++ part_info->count_curr_subparts= 0; ++ } ++#line 20957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 506: ++#line 4926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20963 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 507: ++#line 4927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 20969 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 508: ++#line 4932 "/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; ++ partition_element *sub_p_elem= new partition_element(curr_part); ++ if (part_info->use_default_subpartitions && ++ part_info->partitions.elements >= 2) ++ { ++ /* ++ create table t1 (a int) ++ partition by list (a) subpartition by hash (a) ++ (partition p0 values in (1), ++ partition p1 values in (2) subpartition sp11); ++ causes use to arrive since we are on the second ++ partition, but still use_default_subpartitions ++ is set. When we come here we're processing at least ++ the second partition (the current partition processed ++ have already been put into the partitions list. ++ */ ++ my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (!sub_p_elem || ++ curr_part->subpartitions.push_back(sub_p_elem)) ++ { ++ mem_alloc_error(sizeof(partition_element)); ++ MYSQL_YYABORT; ++ } ++ part_info->curr_part_elem= sub_p_elem; ++ part_info->use_default_subpartitions= FALSE; ++ part_info->use_default_num_subpartitions= FALSE; ++ part_info->count_curr_subparts++; ++ } ++#line 21006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 509: ++#line 4964 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 510: ++#line 4969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (check_ident_length(&(yyvsp[0].lex_str))) ++ MYSQL_YYABORT; ++ Lex->part_info->curr_part_elem->partition_name= (yyvsp[0].lex_str).str; ++ } ++#line 21022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 511: ++#line 4977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 512: ++#line 4978 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 513: ++#line 4982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 514: ++#line 4983 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 515: ++#line 4988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[0].lex_str).str; } ++#line 21052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 516: ++#line 4990 "/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 21062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 517: ++#line 4996 "/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 21072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 518: ++#line 5002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); } ++#line 21078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 519: ++#line 5004 "/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 21084 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 520: ++#line 5006 "/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 21090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 521: ++#line 5008 "/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 21096 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 522: ++#line 5010 "/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 21102 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 523: ++#line 5012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; } ++#line 21108 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 524: ++#line 5021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->sql_command == SQLCOM_INSERT) ++ lex->sql_command= SQLCOM_INSERT_SELECT; ++ else if (lex->sql_command == SQLCOM_REPLACE) ++ lex->sql_command= SQLCOM_REPLACE_SELECT; ++ /* ++ The following work only with the local list, the global list ++ is created correctly in this case ++ */ ++ lex->current_select->table_list.save_and_clear(&lex->save_list); ++ mysql_init_select(lex); ++ lex->current_select->parsing_place= SELECT_LIST; ++ } ++#line 21127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 525: ++#line 5036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= NO_MATTER; ++ } ++#line 21135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 526: ++#line 5040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ The following work only with the local list, the global list ++ is created correctly in this case ++ */ ++ Lex->current_select->table_list.push_front(&Lex->save_list); ++ } ++#line 21147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 527: ++#line 5050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 528: ++#line 5051 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 529: ++#line 5055 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 530: ++#line 5056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 531: ++#line 5060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 532: ++#line 5061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 533: ++#line 5065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 534: ++#line 5066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 535: ++#line 5070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 21201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 536: ++#line 5071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (yyvsp[0].num);} ++#line 21207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 537: ++#line 5075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=(yyvsp[0].num); } ++#line 21213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 538: ++#line 5076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } ++#line 21219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 539: ++#line 5080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; } ++#line 21225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 540: ++#line 5084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 21231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 541: ++#line 5085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; } ++#line 21237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 549: ++#line 5106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_info.db_type= (yyvsp[0].db_type); ++ Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; ++ } ++#line 21246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 550: ++#line 5111 "/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 21255 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 551: ++#line 5116 "/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 21264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 552: ++#line 5121 "/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 21273 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 553: ++#line 5126 "/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 21282 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 554: ++#line 5131 "/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 21291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 555: ++#line 5136 "/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 21300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 556: ++#line 5141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ switch((yyvsp[0].ulong_num)) { ++ case 0: ++ Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS; ++ break; ++ case 1: ++ Lex->create_info.table_options|= HA_OPTION_PACK_KEYS; ++ break; ++ default: ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; ++ } ++#line 21319 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 557: ++#line 5156 "/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 21329 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 558: ++#line 5162 "/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 21338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 559: ++#line 5167 "/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 21347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 560: ++#line 5172 "/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 21356 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 561: ++#line 5177 "/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 21365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 562: ++#line 5182 "/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 21374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 563: ++#line 5187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->select_lex.table_list.save_and_clear(&Lex->save_list); ++ } ++#line 21382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 564: ++#line 5191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Move the union list to the merge_list and exclude its tables ++ from the global list. ++ */ ++ LEX *lex=Lex; ++ lex->create_info.merge_list= lex->select_lex.table_list; ++ lex->select_lex.table_list= lex->save_list; ++ /* ++ When excluding union list from the global list we assume that ++ elements of the former immediately follow elements which represent ++ table being created/altered and parent tables. ++ */ ++ TABLE_LIST *last_non_sel_table= lex->create_last_non_select_table; ++ DBUG_ASSERT(last_non_sel_table->next_global == ++ lex->create_info.merge_list.first); ++ last_non_sel_table->next_global= 0; ++ Lex->query_tables_last= &last_non_sel_table->next_global; ++ ++ lex->create_info.used_fields|= HA_CREATE_USED_UNION; ++ } ++#line 21408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 567: ++#line 5215 "/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 21417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 568: ++#line 5220 "/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 21426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 569: ++#line 5225 "/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 21435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 570: ++#line 5230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {Lex->create_info.tablespace= (yyvsp[0].lex_str).str;} ++#line 21441 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 571: ++#line 5232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {Lex->create_info.storage_media= HA_SM_DISK;} ++#line 21447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 572: ++#line 5234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {Lex->create_info.storage_media= HA_SM_MEMORY;} ++#line 21453 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 573: ++#line 5236 "/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 21463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 574: ++#line 5242 "/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 21472 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 575: ++#line 5247 "/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 21481 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 576: ++#line 5252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true, &Lex->create_info.option_list, ++ &Lex->option_list_last); ++ } ++#line 21491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 577: ++#line 5258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].lex_str), false, &Lex->create_info.option_list, ++ &Lex->option_list_last); ++ } ++#line 21501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 578: ++#line 5264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].ulonglong_number), &Lex->create_info.option_list, ++ &Lex->option_list_last, thd->mem_root); ++ } ++#line 21511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 579: ++#line 5270 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), &Lex->create_info.option_list, ++ &Lex->option_list_last); ++ } ++#line 21521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 580: ++#line 5279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ HA_CREATE_INFO *cinfo= &Lex->create_info; ++ if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) && ++ cinfo->default_table_charset && (yyvsp[0].charset) && ++ !my_charset_same(cinfo->default_table_charset,(yyvsp[0].charset))) ++ { ++ my_error(ER_CONFLICTING_DECLARATIONS, MYF(0), ++ "CHARACTER SET ", cinfo->default_table_charset->csname, ++ "CHARACTER SET ", (yyvsp[0].charset)->csname); ++ MYSQL_YYABORT; ++ } ++ Lex->create_info.default_table_charset= (yyvsp[0].charset); ++ Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; ++ } ++#line 21540 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 581: ++#line 5297 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ HA_CREATE_INFO *cinfo= &Lex->create_info; ++ if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) && ++ cinfo->default_table_charset && (yyvsp[0].charset) && ++ !((yyvsp[0].charset)= merge_charset_and_collation(cinfo->default_table_charset, ++ (yyvsp[0].charset)))) ++ { ++ MYSQL_YYABORT; ++ } ++ ++ Lex->create_info.default_table_charset= (yyvsp[0].charset); ++ Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; ++ } ++#line 21558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 582: ++#line 5314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ plugin_ref plugin= ha_resolve_by_name(thd, &(yyvsp[0].lex_str)); ++ ++ if (plugin) ++ (yyval.db_type)= plugin_data(plugin, handlerton*); ++ else ++ { ++ if (thd->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION) ++ { ++ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ (yyval.db_type)= 0; ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ++ ER_UNKNOWN_STORAGE_ENGINE, ++ ER(ER_UNKNOWN_STORAGE_ENGINE), ++ (yyvsp[0].lex_str).str); ++ } ++ } ++#line 21582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 583: ++#line 5337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ plugin_ref plugin; ++ if ((plugin= ha_resolve_by_name(thd, &(yyvsp[0].lex_str)))) ++ (yyval.db_type)= plugin_data(plugin, handlerton*); ++ else ++ { ++ my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++#line 21597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 584: ++#line 5350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_DEFAULT; } ++#line 21603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 585: ++#line 5351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_FIXED; } ++#line 21609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 586: ++#line 5352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_DYNAMIC; } ++#line 21615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 587: ++#line 5353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_COMPRESSED; } ++#line 21621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 588: ++#line 5354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_REDUNDANT; } ++#line 21627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 589: ++#line 5355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_COMPACT; } ++#line 21633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 590: ++#line 5356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.row_type)= ROW_TYPE_PAGE; } ++#line 21639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 591: ++#line 5360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulong_num)= MERGE_INSERT_DISABLED; } ++#line 21645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 592: ++#line 5361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; } ++#line 21651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 593: ++#line 5362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; } ++#line 21657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 594: ++#line 5366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 596: ++#line 5371 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.num) = (int) STRING_RESULT; } ++#line 21669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 597: ++#line 5372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.num) = (int) REAL_RESULT; } ++#line 21675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 598: ++#line 5373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.num) = (int) DECIMAL_RESULT; } ++#line 21681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 599: ++#line 5374 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.num) = (int) INT_RESULT; } ++#line 21687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 600: ++#line 5380 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_last_non_select_table= Lex->last_table(); ++ } ++#line 21695 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 606: ++#line 5398 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->col_list.empty(); /* Alloced by sql_alloc */ ++ } ++#line 21703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 607: ++#line 5405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->option_list= NULL; } ++#line 21709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 608: ++#line 5407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index (Lex, (yyvsp[-7].key_type), (yyvsp[-6].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 21718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 609: ++#line 5413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->option_list= NULL; } ++#line 21724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 610: ++#line 5415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index (Lex, (yyvsp[-8].key_type), (yyvsp[-6].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 21733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 611: ++#line 5421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->option_list= NULL; } ++#line 21739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 612: ++#line 5423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index (Lex, (yyvsp[-8].key_type), (yyvsp[-6].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 21748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 613: ++#line 5429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->option_list= NULL; } ++#line 21754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 614: ++#line 5431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_create_index (Lex, (yyvsp[-7].key_type), (yyvsp[-6].lex_str).str ? (yyvsp[-6].lex_str) : (yyvsp[-8].lex_str))) ++ MYSQL_YYABORT; ++ } ++#line 21763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 615: ++#line 5436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Key *key= new Foreign_key((yyvsp[-4].lex_str).str ? (yyvsp[-4].lex_str) : (yyvsp[-7].lex_str), lex->col_list, ++ (yyvsp[0].table), ++ lex->ref_list, ++ lex->fk_delete_opt, ++ lex->fk_update_opt, ++ lex->fk_match_option); ++ if (key == NULL) ++ MYSQL_YYABORT; ++ lex->alter_info.key_list.push_back(key); ++ lex->option_list= NULL; ++ if (add_create_index (lex, Key::MULTIPLE, (yyvsp[-7].lex_str).str ? (yyvsp[-7].lex_str) : (yyvsp[-4].lex_str), ++ &default_key_create_info, 1)) ++ MYSQL_YYABORT; ++ /* Only used for ALTER TABLE. Ignored otherwise. */ ++ lex->alter_info.flags|= ALTER_FOREIGN_KEY; ++ } ++#line 21786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 616: ++#line 5455 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->col_list.empty(); /* Alloced by sql_alloc */ ++ } ++#line 21794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 620: ++#line 5470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= null_lex_str; } ++#line 21800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 621: ++#line 5471 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 21806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 622: ++#line 5475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 21812 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 623: ++#line 5480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->length=lex->dec=0; ++ lex->type=0; ++ lex->default_value= lex->on_update_value= 0; ++ lex->comment=null_lex_str; ++ lex->charset=NULL; ++ lex->vcol_info= 0; ++ lex->option_list= NULL; ++ } ++#line 21827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 624: ++#line 5491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (add_field_to_list(lex->thd, &(yyvsp[-2].lex_str), (yyvsp[0].lex_type).type, ++ (yyvsp[0].lex_type).length, (yyvsp[0].lex_type).dec, lex->type, ++ lex->default_value, lex->on_update_value, ++ &lex->comment, ++ lex->change, &lex->interval_list, (yyvsp[0].lex_type).charset, ++ lex->uint_geom_type, ++ lex->vcol_info, lex->option_list)) ++ MYSQL_YYABORT; ++ } ++#line 21843 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 625: ++#line 5506 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_type).set((yyvsp[-1].num), Lex->length, Lex->dec, Lex->charset); } ++#line 21849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 626: ++#line 5508 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_type).set((yyvsp[-2].num), Lex->length, Lex->dec, Lex->charset); } ++#line 21855 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 627: ++#line 5510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.lex_type)= (yyvsp[-5].lex_type); ++ Lex->vcol_info->set_field_type((yyval.lex_type).type); ++ (yyval.lex_type).type= (enum enum_field_types)MYSQL_TYPE_VIRTUAL; ++ } ++#line 21865 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 629: ++#line 5519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 630: ++#line 5524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->vcol_info->set_stored_in_db_flag(FALSE); ++ } ++#line 21879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 631: ++#line 5528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->vcol_info->set_stored_in_db_flag(FALSE); ++ } ++#line 21887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 632: ++#line 5532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->vcol_info->set_stored_in_db_flag(TRUE); ++ } ++#line 21895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 633: ++#line 5538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 634: ++#line 5539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 635: ++#line 5543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 21913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 637: ++#line 5549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type|= UNIQUE_FLAG; ++ lex->alter_info.flags|= ALTER_ADD_INDEX; ++ } ++#line 21923 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 638: ++#line 5555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type|= UNIQUE_KEY_FLAG; ++ lex->alter_info.flags|= ALTER_ADD_INDEX; ++ } ++#line 21933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 639: ++#line 5560 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->comment= (yyvsp[0].lex_str); } ++#line 21939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 640: ++#line 5565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ "PARSE_VCOL_EXPR" can only be used by the SQL server ++ when reading a '*.frm' file. ++ Prevent the end user from invoking this command. ++ */ ++ if (!Lex->parse_vcol_expr) ++ { ++ my_message(ER_SYNTAX_ERROR, ER(ER_SYNTAX_ERROR), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 21956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 641: ++#line 5581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->vcol_info= new Virtual_column_info(); ++ if (!Lex->vcol_info) ++ { ++ mem_alloc_error(sizeof(Virtual_column_info)); ++ MYSQL_YYABORT; ++ } ++ uint expr_len= (uint)((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)) - 1; ++ Lex->vcol_info->expr_str.str= (char* ) sql_memdup((yyvsp[-2].simple_string) + 1, expr_len); ++ Lex->vcol_info->expr_str.length= expr_len; ++ Lex->vcol_info->expr_item= (yyvsp[-1].item); ++ } ++#line 21973 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 642: ++#line 5596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=(yyvsp[-2].num); } ++#line 21979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 643: ++#line 5597 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=(yyvsp[-2].num); } ++#line 21985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 644: ++#line 5598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_FLOAT; } ++#line 21991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 645: ++#line 5600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= (char*) "1"; ++ (yyval.num)=MYSQL_TYPE_BIT; ++ } ++#line 22000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 646: ++#line 5605 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)=MYSQL_TYPE_BIT; ++ } ++#line 22008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 647: ++#line 5609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= (char*) "1"; ++ (yyval.num)=MYSQL_TYPE_TINY; ++ } ++#line 22017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 648: ++#line 5614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= (char*) "1"; ++ (yyval.num)=MYSQL_TYPE_TINY; ++ } ++#line 22026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 649: ++#line 5619 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)=MYSQL_TYPE_STRING; ++ } ++#line 22034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 650: ++#line 5623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= (char*) "1"; ++ (yyval.num)=MYSQL_TYPE_STRING; ++ } ++#line 22043 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 651: ++#line 5628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)=MYSQL_TYPE_STRING; ++ Lex->charset=national_charset_info; ++ } ++#line 22052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 652: ++#line 5633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= (char*) "1"; ++ (yyval.num)=MYSQL_TYPE_STRING; ++ Lex->charset=national_charset_info; ++ } ++#line 22062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 653: ++#line 5639 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_STRING; ++ } ++#line 22071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 654: ++#line 5644 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= (char*) "1"; ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_STRING; ++ } ++#line 22081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 655: ++#line 5650 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= MYSQL_TYPE_VARCHAR; ++ } ++#line 22089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 656: ++#line 5654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= MYSQL_TYPE_VARCHAR; ++ Lex->charset=national_charset_info; ++ } ++#line 22098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 657: ++#line 5659 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)= MYSQL_TYPE_VARCHAR; ++ } ++#line 22107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 658: ++#line 5664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->length) ++ { ++ errno= 0; ++ ulong length= strtoul(Lex->length, NULL, 10); ++ if (errno == 0 && length <= MAX_FIELD_BLOBLENGTH && length != 4) ++ { ++ char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1]; ++ my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length); ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, ++ ER_WARN_DEPRECATED_SYNTAX, ++ ER(ER_WARN_DEPRECATED_SYNTAX), ++ buff, "YEAR(4)"); ++ } ++ } ++ (yyval.num)=MYSQL_TYPE_YEAR; ++ } ++#line 22129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 659: ++#line 5682 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_DATE; } ++#line 22135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 660: ++#line 5684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_TIME; } ++#line 22141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 661: ++#line 5686 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (thd->variables.sql_mode & MODE_MAXDB) ++ (yyval.num)=MYSQL_TYPE_DATETIME; ++ else ++ { ++ /* ++ Unlike other types TIMESTAMP fields are NOT NULL by default. ++ */ ++ Lex->type|= NOT_NULL_FLAG; ++ (yyval.num)=MYSQL_TYPE_TIMESTAMP; ++ } ++ } ++#line 22158 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 662: ++#line 5699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_DATETIME; } ++#line 22164 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 663: ++#line 5701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_TINY_BLOB; ++ } ++#line 22173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 664: ++#line 5706 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_BLOB; ++ } ++#line 22182 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 665: ++#line 5711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++#ifdef HAVE_SPATIAL ++ Lex->charset=&my_charset_bin; ++ Lex->uint_geom_type= (uint)(yyvsp[0].num); ++ (yyval.num)=MYSQL_TYPE_GEOMETRY; ++#else ++ my_error(ER_FEATURE_DISABLED, MYF(0), ++ sym_group_geom.name, sym_group_geom.needed_define); ++ MYSQL_YYABORT; ++#endif ++ } ++#line 22198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 666: ++#line 5723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; ++ } ++#line 22207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 667: ++#line 5728 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_LONG_BLOB; ++ } ++#line 22216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 668: ++#line 5733 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset=&my_charset_bin; ++ (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; ++ } ++#line 22225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 669: ++#line 5738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } ++#line 22231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 670: ++#line 5740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_TINY_BLOB; } ++#line 22237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 671: ++#line 5742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_BLOB; } ++#line 22243 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 672: ++#line 5744 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } ++#line 22249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 673: ++#line 5746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_LONG_BLOB; } ++#line 22255 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 674: ++#line 5748 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;} ++#line 22261 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 675: ++#line 5750 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;} ++#line 22267 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 676: ++#line 5752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;} ++#line 22273 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 677: ++#line 5754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {Lex->interval_list.empty();} ++#line 22279 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 678: ++#line 5756 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_ENUM; } ++#line 22285 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 679: ++#line 5758 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->interval_list.empty();} ++#line 22291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 680: ++#line 5760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_SET; } ++#line 22297 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 681: ++#line 5762 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } ++#line 22303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 682: ++#line 5764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)=MYSQL_TYPE_LONGLONG; ++ Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG | ++ UNIQUE_FLAG); ++ } ++#line 22313 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 683: ++#line 5772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_GEOMETRY; } ++#line 22319 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 684: ++#line 5773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; } ++#line 22325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 685: ++#line 5775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->length= const_cast(STRINGIFY_ARG ++ (MAX_LEN_GEOM_POINT_FIELD)); ++ (yyval.num)= Field::GEOM_POINT; ++ } ++#line 22335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 686: ++#line 5780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_MULTIPOINT; } ++#line 22341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 687: ++#line 5781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_LINESTRING; } ++#line 22347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 688: ++#line 5782 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_MULTILINESTRING; } ++#line 22353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 689: ++#line 5783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_POLYGON; } ++#line 22359 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 690: ++#line 5784 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= Field::GEOM_MULTIPOLYGON; } ++#line 22365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 691: ++#line 5788 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 692: ++#line 5792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 693: ++#line 5793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 694: ++#line 5797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 695: ++#line 5798 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22395 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 696: ++#line 5802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22401 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 697: ++#line 5803 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 698: ++#line 5804 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22413 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 699: ++#line 5805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 700: ++#line 5806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 701: ++#line 5810 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_LONG; } ++#line 22431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 702: ++#line 5811 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_TINY; } ++#line 22437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 703: ++#line 5812 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_SHORT; } ++#line 22443 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 704: ++#line 5813 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_INT24; } ++#line 22449 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 705: ++#line 5814 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_LONGLONG; } ++#line 22455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 706: ++#line 5819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? ++ MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE; ++ } ++#line 22464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 707: ++#line 5824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_DOUBLE; } ++#line 22470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 708: ++#line 5826 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=MYSQL_TYPE_DOUBLE; } ++#line 22476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 709: ++#line 5831 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->dec=Lex->length= (char*)0; } ++#line 22482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 710: ++#line 5833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->dec= (char*)0; } ++#line 22488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 711: ++#line 5835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 712: ++#line 5840 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->length=(yyvsp[-3].lex_str).str; ++ lex->dec=(yyvsp[-1].lex_str).str; ++ } ++#line 22504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 713: ++#line 5848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 714: ++#line 5849 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 715: ++#line 5853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22522 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 716: ++#line 5854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22528 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 717: ++#line 5858 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22534 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 718: ++#line 5859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= UNSIGNED_FLAG;} ++#line 22540 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 719: ++#line 5860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; } ++#line 22546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 720: ++#line 5864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->length= (yyvsp[-1].lex_str).str; } ++#line 22552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 721: ++#line 5865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->length= (yyvsp[-1].lex_str).str; } ++#line 22558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 722: ++#line 5866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->length= (yyvsp[-1].lex_str).str; } ++#line 22564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 723: ++#line 5867 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->length= (yyvsp[-1].lex_str).str; } ++#line 22570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 724: ++#line 5870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->length=(char*) 0; /* use default length */ } ++#line 22576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 725: ++#line 5871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 22582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 726: ++#line 5875 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22588 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 727: ++#line 5876 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22594 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 728: ++#line 5880 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22600 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 729: ++#line 5881 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 730: ++#line 5885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 732: ++#line 5890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type&= ~ NOT_NULL_FLAG; } ++#line 22618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 733: ++#line 5891 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= NOT_NULL_FLAG; } ++#line 22624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 734: ++#line 5892 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->default_value=(yyvsp[0].item); } ++#line 22630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 735: ++#line 5894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) Item_func_now_local(6); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ Lex->on_update_value= item; ++ } ++#line 22641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 736: ++#line 5900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; } ++#line 22647 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 737: ++#line 5902 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG; ++ lex->alter_info.flags|= ALTER_ADD_INDEX; ++ } ++#line 22657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 738: ++#line 5908 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG; ++ lex->alter_info.flags|= ALTER_ADD_INDEX; ++ } ++#line 22667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 739: ++#line 5914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type|= UNIQUE_FLAG; ++ lex->alter_info.flags|= ALTER_ADD_INDEX; ++ } ++#line 22677 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 740: ++#line 5920 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type|= UNIQUE_KEY_FLAG; ++ lex->alter_info.flags|= ALTER_ADD_INDEX; ++ } ++#line 22687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 741: ++#line 5925 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->comment= (yyvsp[0].lex_str); } ++#line 22693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 742: ++#line 5927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[0].charset))) ++ { ++ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), ++ (yyvsp[0].charset)->name,Lex->charset->csname); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ Lex->charset=(yyvsp[0].charset); ++ } ++ } ++#line 22710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 743: ++#line 5940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true, &Lex->option_list, ++ &Lex->option_list_last); ++ } ++#line 22720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 744: ++#line 5946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].lex_str), false, &Lex->option_list, ++ &Lex->option_list_last); ++ } ++#line 22730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 745: ++#line 5952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].ulonglong_number), &Lex->option_list, ++ &Lex->option_list_last, thd->mem_root); ++ } ++#line 22740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 746: ++#line 5958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), &Lex->option_list, &Lex->option_list_last); ++ } ++#line 22749 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 747: ++#line 5967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= (yyvsp[-1].num); ++ ++ if (Lex->charset) /* Lex->charset is scanned in "type" */ ++ { ++ if (!(Lex->charset= merge_charset_and_collation(Lex->charset, (yyvsp[0].charset)))) ++ MYSQL_YYABORT; ++ } ++ else if ((yyvsp[0].charset)) ++ { ++ my_error(ER_NOT_SUPPORTED_YET, MYF(0), ++ "COLLATE with no CHARACTER SET " ++ "in SP parameters, RETURNS, DECLARE"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 748: ++#line 5988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_now_local(6); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 22780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 749: ++#line 5994 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)=(yyvsp[0].item); } ++#line 22786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 750: ++#line 5998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 751: ++#line 5999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22798 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 752: ++#line 6003 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22804 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 753: ++#line 6004 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 754: ++#line 6009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0)))) ++ { ++ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 755: ++#line 6016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)= &my_charset_bin; } ++#line 22828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 756: ++#line 6020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=(yyvsp[0].charset); } ++#line 22834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 757: ++#line 6021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=NULL; } ++#line 22840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 758: ++#line 6025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)= NULL; } ++#line 22846 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 759: ++#line 6026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)= (yyvsp[0].charset); } ++#line 22852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 760: ++#line 6031 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((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_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22865 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 761: ++#line 6039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)= &my_charset_bin; } ++#line 22871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 762: ++#line 6043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=(yyvsp[0].charset); } ++#line 22877 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 763: ++#line 6044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=NULL; } ++#line 22883 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 764: ++#line 6049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.charset)=get_charset_by_name((yyvsp[0].lex_str).str,MYF(0)))) ++ { ++ my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 765: ++#line 6059 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=NULL; } ++#line 22901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 766: ++#line 6060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=(yyvsp[0].charset); } ++#line 22907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 767: ++#line 6064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=(yyvsp[0].charset); } ++#line 22913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 768: ++#line 6065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.charset)=NULL; } ++#line 22919 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 769: ++#line 6069 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22925 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 770: ++#line 6070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 22931 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 771: ++#line 6075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->charset= &my_charset_latin1; } ++#line 22937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 772: ++#line 6077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset= &my_charset_latin1_bin; ++ } ++#line 22945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 773: ++#line 6081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset= &my_charset_latin1_bin; ++ } ++#line 22953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 774: ++#line 6088 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!(Lex->charset=get_charset_by_csname("ucs2", ++ MY_CS_PRIMARY,MYF(0)))) ++ { ++ my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22966 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 775: ++#line 6097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!(Lex->charset=get_charset_by_name("ucs2_bin", MYF(0)))) ++ { ++ my_error(ER_UNKNOWN_COLLATION, MYF(0), "ucs2_bin"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 776: ++#line 6105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!(Lex->charset=get_charset_by_name("ucs2_bin", MYF(0)))) ++ { ++ my_error(ER_UNKNOWN_COLLATION, MYF(0), "ucs2_bin"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 22990 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 777: ++#line 6115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->charset=NULL; } ++#line 22996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 780: ++#line 6118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->charset=&my_charset_bin; } ++#line 23002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 781: ++#line 6119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->charset=(yyvsp[-1].charset); } ++#line 23008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 782: ++#line 6121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset= NULL; ++ Lex->type|= BINCMP_FLAG; ++ } ++#line 23017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 783: ++#line 6126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->charset= (yyvsp[0].charset); ++ Lex->type|= BINCMP_FLAG; ++ } ++#line 23026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 784: ++#line 6133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 23032 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 785: ++#line 6134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= BINCMP_FLAG; } ++#line 23038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 788: ++#line 6149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.table)=(yyvsp[-3].table); ++ } ++#line 23046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 789: ++#line 6156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ref_list.empty(); } ++#line 23052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 791: ++#line 6162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Key_part_spec *key= new Key_part_spec((yyvsp[0].lex_str), 0); ++ if (key == NULL) ++ MYSQL_YYABORT; ++ Lex->ref_list.push_back(key); ++ } ++#line 23063 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 792: ++#line 6169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Key_part_spec *key= new Key_part_spec((yyvsp[0].lex_str), 0); ++ if (key == NULL) ++ MYSQL_YYABORT; ++ LEX *lex= Lex; ++ lex->ref_list.empty(); ++ lex->ref_list.push_back(key); ++ } ++#line 23076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 793: ++#line 6181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; } ++#line 23082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 794: ++#line 6183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; } ++#line 23088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 795: ++#line 6185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; } ++#line 23094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 796: ++#line 6187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; } ++#line 23100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 797: ++#line 6192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->fk_update_opt= Foreign_key::FK_OPTION_UNDEF; ++ lex->fk_delete_opt= Foreign_key::FK_OPTION_UNDEF; ++ } ++#line 23110 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 798: ++#line 6198 "/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= Foreign_key::FK_OPTION_UNDEF; ++ } ++#line 23120 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 799: ++#line 6204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->fk_update_opt= Foreign_key::FK_OPTION_UNDEF; ++ lex->fk_delete_opt= (yyvsp[0].m_fk_option); ++ } ++#line 23130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 800: ++#line 6211 "/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 23140 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 801: ++#line 6218 "/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 23150 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 802: ++#line 6226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_fk_option)= Foreign_key::FK_OPTION_RESTRICT; } ++#line 23156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 803: ++#line 6227 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_fk_option)= Foreign_key::FK_OPTION_CASCADE; } ++#line 23162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 804: ++#line 6228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_fk_option)= Foreign_key::FK_OPTION_SET_NULL; } ++#line 23168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 805: ++#line 6229 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_fk_option)= Foreign_key::FK_OPTION_NO_ACTION; } ++#line 23174 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 806: ++#line 6230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_fk_option)= Foreign_key::FK_OPTION_DEFAULT; } ++#line 23180 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 807: ++#line 6234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_type)= Key::MULTIPLE; } ++#line 23186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 808: ++#line 6238 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_type)= Key::PRIMARY; } ++#line 23192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 809: ++#line 6239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_type)= Key::UNIQUE; } ++#line 23198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 810: ++#line 6243 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 811: ++#line 6244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 812: ++#line 6248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 814: ++#line 6253 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23222 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 815: ++#line 6254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23228 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 816: ++#line 6255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 817: ++#line 6259 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_type)= Key::MULTIPLE; } ++#line 23240 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 818: ++#line 6260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_type)= Key::UNIQUE; } ++#line 23246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 819: ++#line 6264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_type)= Key::FULLTEXT;} ++#line 23252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 820: ++#line 6269 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++#ifdef HAVE_SPATIAL ++ (yyval.key_type)= Key::SPATIAL; ++#else ++ my_error(ER_FEATURE_DISABLED, MYF(0), ++ sym_group_geom.name, sym_group_geom.needed_define); ++ MYSQL_YYABORT; ++#endif ++ } ++#line 23266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 821: ++#line 6281 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->key_create_info= default_key_create_info; ++ } ++#line 23274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 824: ++#line 6298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 826: ++#line 6303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 828: ++#line 6308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 836: ++#line 6328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->key_create_info.algorithm= (yyvsp[0].key_alg); } ++#line 23298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 837: ++#line 6329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->key_create_info.algorithm= (yyvsp[0].key_alg); } ++#line 23304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 838: ++#line 6334 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->key_create_info.block_size= (yyvsp[0].ulong_num); } ++#line 23310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 839: ++#line 6335 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->key_create_info.comment= (yyvsp[0].lex_str); } ++#line 23316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 840: ++#line 6337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true, &Lex->option_list, ++ &Lex->option_list_last); ++ } ++#line 23326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 841: ++#line 6343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].lex_str), false, &Lex->option_list, ++ &Lex->option_list_last); ++ } ++#line 23336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 842: ++#line 6349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), (yyvsp[0].ulonglong_number), &Lex->option_list, ++ &Lex->option_list_last, thd->mem_root); ++ } ++#line 23346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 843: ++#line 6355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ new (thd->mem_root) ++ engine_option_value((yyvsp[-2].lex_str), &Lex->option_list, &Lex->option_list_last); ++ } ++#line 23355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 848: ++#line 6373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (plugin_is_ready(&(yyvsp[0].lex_str), MYSQL_FTPARSER_PLUGIN)) ++ Lex->key_create_info.parser_name= (yyvsp[0].lex_str); ++ else ++ { ++ my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ } ++#line 23369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 849: ++#line 6385 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_alg)= HA_KEY_ALG_BTREE; } ++#line 23375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 850: ++#line 6386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_alg)= HA_KEY_ALG_RTREE; } ++#line 23381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 851: ++#line 6387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.key_alg)= HA_KEY_ALG_HASH; } ++#line 23387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 852: ++#line 6391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->col_list.push_back((yyvsp[-1].key_part)); } ++#line 23393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 853: ++#line 6392 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->col_list.push_back((yyvsp[-1].key_part)); } ++#line 23399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 854: ++#line 6397 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.key_part)= new Key_part_spec((yyvsp[0].lex_str), 0); ++ if ((yyval.key_part) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23409 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 855: ++#line 6403 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ int key_part_len= atoi((yyvsp[-1].lex_str).str); ++ if (!key_part_len) ++ { ++ my_error(ER_KEY_PART_0, MYF(0), (yyvsp[-3].lex_str).str); ++ } ++ (yyval.key_part)= new Key_part_spec((yyvsp[-3].lex_str), (uint) key_part_len); ++ if ((yyval.key_part) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23424 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 856: ++#line 6416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= null_lex_str; } ++#line 23430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 857: ++#line 6417 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 23436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 858: ++#line 6421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= null_lex_str; } ++#line 23442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 859: ++#line 6422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 23448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 860: ++#line 6426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->interval_list.push_back((yyvsp[0].string)); } ++#line 23454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 861: ++#line 6427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->interval_list.push_back((yyvsp[0].string)); } ++#line 23460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 862: ++#line 6435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->name.str= 0; ++ lex->name.length= 0; ++ lex->sql_command= SQLCOM_ALTER_TABLE; ++ lex->duplicates= DUP_ERROR; ++ if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, ++ TL_OPTION_UPDATING, ++ TL_READ_NO_INSERT, ++ MDL_SHARED_NO_WRITE)) ++ MYSQL_YYABORT; ++ lex->col_list.empty(); ++ lex->select_lex.init_order(); ++ lex->select_lex.db= (lex->select_lex.table_list.first)->db; ++ bzero((char*) &lex->create_info,sizeof(lex->create_info)); ++ lex->create_info.db_type= 0; ++ lex->create_info.default_table_charset= NULL; ++ lex->create_info.row_type= ROW_TYPE_NOT_USED; ++ lex->alter_info.reset(); ++ lex->no_write_to_binlog= 0; ++ lex->create_info.storage_media= HA_SM_DEFAULT; ++ lex->create_last_non_select_table= lex->last_table(); ++ DBUG_ASSERT(!lex->m_stmt); ++ } ++#line 23489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 863: ++#line 6460 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ if (!lex->m_stmt) ++ { ++ /* Create a generic ALTER TABLE statment. */ ++ lex->m_stmt= new (thd->mem_root) Alter_table_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++ } ++#line 23504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 864: ++#line 6471 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_info.default_table_charset= NULL; ++ Lex->create_info.used_fields= 0; ++ } ++#line 23513 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 865: ++#line 6476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command=SQLCOM_ALTER_DB; ++ lex->name= (yyvsp[-2].lex_str); ++ if (lex->name.str == NULL && ++ lex->copy_db_to(&lex->name.str, &lex->name.length)) ++ MYSQL_YYABORT; ++ } ++#line 23526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 866: ++#line 6485 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_DROP_SP, MYF(0), "DATABASE"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_ALTER_DB_UPGRADE; ++ lex->name= (yyvsp[-4].lex_str); ++ } ++#line 23541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 867: ++#line 6496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE"); ++ MYSQL_YYABORT; ++ } ++ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); ++ } ++#line 23556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 868: ++#line 6507 "/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 23567 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 869: ++#line 6514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION"); ++ MYSQL_YYABORT; ++ } ++ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); ++ } ++#line 23582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 870: ++#line 6525 "/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 23593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 871: ++#line 6532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW"); ++ MYSQL_YYABORT; ++ } ++ lex->create_view_mode= VIEW_ALTER; ++ } ++#line 23608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 872: ++#line 6543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 873: ++#line 6550 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW"); ++ MYSQL_YYABORT; ++ } ++ lex->create_view_algorithm= VIEW_ALGORITHM_INHERIT; ++ lex->create_view_mode= VIEW_ALTER; ++ } ++#line 23630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 874: ++#line 6562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 875: ++#line 6564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ It is safe to use Lex->spname because ++ ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO ++ is not allowed. Lex->spname is used in the case of RENAME TO ++ If it had to be supported spname had to be added to ++ Event_parse_data. ++ */ ++ ++ if (!(Lex->event_parse_data= Event_parse_data::new_instance(thd))) ++ MYSQL_YYABORT; ++ Lex->event_parse_data->identifier= (yyvsp[0].spname); ++ ++ Lex->sql_command= SQLCOM_ALTER_EVENT; ++ } ++#line 23656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 876: ++#line 6584 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyvsp[-4].num) || (yyvsp[-3].num) || (yyvsp[-2].num) || (yyvsp[-1].num) || (yyvsp[0].num))) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ /* ++ sql_command is set here because some rules in ev_sql_stmt ++ can overwrite it ++ */ ++ Lex->sql_command= SQLCOM_ALTER_EVENT; ++ } ++#line 23673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 877: ++#line 6597 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE; ++ } ++#line 23682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 878: ++#line 6602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP; ++ } ++#line 23691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 879: ++#line 6607 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE; ++ } ++#line 23700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 880: ++#line 6612 "/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 23709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 881: ++#line 6617 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_ALTER_SERVER; ++ lex->server_options.server_name= (yyvsp[-4].lex_str).str; ++ lex->server_options.server_name_length= (yyvsp[-4].lex_str).length; ++ } ++#line 23720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 882: ++#line 6626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0;} ++#line 23726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 883: ++#line 6627 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 23732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 884: ++#line 6628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 23738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 885: ++#line 6629 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 23744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 886: ++#line 6633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0;} ++#line 23750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 887: ++#line 6635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Use lex's spname to hold the new name. ++ The original name is in the Event_parse_data object ++ */ ++ Lex->spname= (yyvsp[0].spname); ++ (yyval.num)= 1; ++ } ++#line 23763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 888: ++#line 6646 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0;} ++#line 23769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 889: ++#line 6647 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 23775 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 890: ++#line 6651 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; } ++#line 23781 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 891: ++#line 6652 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 23787 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 893: ++#line 6657 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; } ++#line 23793 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 894: ++#line 6658 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; } ++#line 23799 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 900: ++#line 6675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_DROP_PARTITION; ++ } ++#line 23807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 901: ++#line 6680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_info.flags|= ALTER_REBUILD_PARTITION; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ } ++#line 23817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 902: ++#line 6687 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ lex->check_opt.init(); ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) ++ Alter_table_optimize_partition_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 904: ++#line 6700 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ lex->check_opt.init(); ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) ++ Alter_table_analyze_partition_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23847 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 905: ++#line 6711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->check_opt.init(); ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) ++ Alter_table_check_partition_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23861 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 907: ++#line 6723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ lex->check_opt.init(); ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) ++ Alter_table_repair_partition_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23876 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 909: ++#line 6735 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_info.flags|= ALTER_COALESCE_PARTITION; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ lex->alter_info.num_parts= (yyvsp[0].ulong_num); ++ } ++#line 23887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 910: ++#line 6742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->check_opt.init(); ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) ++ Alter_table_truncate_partition_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 23901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 912: ++#line 6756 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING; ++ } ++#line 23909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 913: ++#line 6763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_ALL_PARTITION; ++ } ++#line 23917 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 915: ++#line 6771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->part_info= new partition_info(); ++ if (!lex->part_info) ++ { ++ mem_alloc_error(sizeof(partition_info)); ++ MYSQL_YYABORT; ++ } ++ lex->alter_info.flags|= ALTER_ADD_PARTITION; ++ lex->no_write_to_binlog= (yyvsp[0].num); ++ } ++#line 23933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 916: ++#line 6783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 23939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 918: ++#line 6789 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->part_info->num_parts= lex->part_info->partitions.elements; ++ } ++#line 23948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 919: ++#line 6794 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->part_info->num_parts= (yyvsp[0].ulong_num); ++ } ++#line 23956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 920: ++#line 6801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->part_info= new partition_info(); ++ if (!lex->part_info) ++ { ++ mem_alloc_error(sizeof(partition_info)); ++ MYSQL_YYABORT; ++ } ++ lex->no_write_to_binlog= (yyvsp[0].num); ++ } ++#line 23971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 922: ++#line 6816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_TABLE_REORG; ++ } ++#line 23979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 923: ++#line 6820 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION; ++ } ++#line 23987 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 924: ++#line 6824 "/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 23996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 925: ++#line 6831 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 926: ++#line 6832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 927: ++#line 6837 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->alter_info.partition_names.push_back((yyvsp[0].lex_str).str)) ++ { ++ mem_alloc_error(1); ++ MYSQL_YYABORT; ++ } ++ } ++#line 24020 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 930: ++#line 6857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->change=0; ++ lex->alter_info.flags|= ALTER_ADD_COLUMN; ++ } ++#line 24030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 931: ++#line 6866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_last_non_select_table= Lex->last_table(); ++ } ++#line 24038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 932: ++#line 6870 "/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 24047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 933: ++#line 6875 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX; ++ } ++#line 24055 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 934: ++#line 6879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->change= (yyvsp[0].lex_str).str; ++ lex->alter_info.flags|= ALTER_CHANGE_COLUMN; ++ lex->option_list= NULL; ++ } ++#line 24066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 935: ++#line 6886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_last_non_select_table= Lex->last_table(); ++ } ++#line 24074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 936: ++#line 6890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->length=lex->dec=0; lex->type=0; ++ lex->default_value= lex->on_update_value= 0; ++ lex->comment=null_lex_str; ++ lex->charset= NULL; ++ lex->alter_info.flags|= ALTER_CHANGE_COLUMN; ++ lex->vcol_info= 0; ++ lex->option_list= NULL; ++ } ++#line 24089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 937: ++#line 6901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (add_field_to_list(lex->thd,&(yyvsp[-2].lex_str), ++ (yyvsp[0].lex_type).type, ++ (yyvsp[0].lex_type).length, (yyvsp[0].lex_type).dec, lex->type, ++ lex->default_value, lex->on_update_value, ++ &lex->comment, ++ (yyvsp[-2].lex_str).str, &lex->interval_list, (yyvsp[0].lex_type).charset, ++ lex->uint_geom_type, ++ lex->vcol_info, lex->option_list)) ++ MYSQL_YYABORT; ++ } ++#line 24106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 938: ++#line 6914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->create_last_non_select_table= Lex->last_table(); ++ } ++#line 24114 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 939: ++#line 6918 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Alter_drop *ad= new Alter_drop(Alter_drop::COLUMN, (yyvsp[-1].lex_str).str); ++ if (ad == NULL) ++ MYSQL_YYABORT; ++ lex->alter_info.drop_list.push_back(ad); ++ lex->alter_info.flags|= ALTER_DROP_COLUMN; ++ } ++#line 24127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 940: ++#line 6927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY; ++ } ++#line 24135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 941: ++#line 6931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Alter_drop *ad= new Alter_drop(Alter_drop::KEY, primary_key_name); ++ if (ad == NULL) ++ MYSQL_YYABORT; ++ lex->alter_info.drop_list.push_back(ad); ++ lex->alter_info.flags|= ALTER_DROP_INDEX; ++ } ++#line 24148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 942: ++#line 6940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[0].lex_str).str); ++ if (ad == NULL) ++ MYSQL_YYABORT; ++ lex->alter_info.drop_list.push_back(ad); ++ lex->alter_info.flags|= ALTER_DROP_INDEX; ++ } ++#line 24161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 943: ++#line 6949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->alter_info.keys_onoff= DISABLE; ++ lex->alter_info.flags|= ALTER_KEYS_ONOFF; ++ } ++#line 24171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 944: ++#line 6955 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->alter_info.keys_onoff= ENABLE; ++ lex->alter_info.flags|= ALTER_KEYS_ONOFF; ++ } ++#line 24181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 945: ++#line 6961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Alter_column *ac= new Alter_column((yyvsp[-3].lex_str).str,(yyvsp[0].item)); ++ if (ac == NULL) ++ MYSQL_YYABORT; ++ lex->alter_info.alter_list.push_back(ac); ++ lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT; ++ } ++#line 24194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 946: ++#line 6970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Alter_column *ac= new Alter_column((yyvsp[-2].lex_str).str, (Item*) 0); ++ if (ac == NULL) ++ MYSQL_YYABORT; ++ lex->alter_info.alter_list.push_back(ac); ++ lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT; ++ } ++#line 24207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 947: ++#line 6979 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ size_t dummy; ++ lex->select_lex.db=(yyvsp[0].table)->db.str; ++ if (lex->select_lex.db == NULL && ++ lex->copy_db_to(&lex->select_lex.db, &dummy)) ++ { ++ MYSQL_YYABORT; ++ } ++ if (check_table_name((yyvsp[0].table)->table.str,(yyvsp[0].table)->table.length, FALSE) || ++ ((yyvsp[0].table)->db.str && check_db_name(&(yyvsp[0].table)->db))) ++ { ++ my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[0].table)->table.str); ++ MYSQL_YYABORT; ++ } ++ lex->name= (yyvsp[0].table)->table; ++ lex->alter_info.flags|= ALTER_RENAME; ++ } ++#line 24230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 948: ++#line 6998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!(yyvsp[-1].charset)) ++ { ++ (yyvsp[-1].charset)= thd->variables.collation_database; ++ } ++ (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset) : (yyvsp[-1].charset); ++ if (!my_charset_same((yyvsp[-1].charset),(yyvsp[0].charset))) ++ { ++ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), ++ (yyvsp[0].charset)->name, (yyvsp[-1].charset)->csname); ++ MYSQL_YYABORT; ++ } ++ LEX *lex= Lex; ++ lex->create_info.table_charset= ++ lex->create_info.default_table_charset= (yyvsp[0].charset); ++ lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET | ++ HA_CREATE_USED_DEFAULT_CHARSET); ++ lex->alter_info.flags|= ALTER_CONVERT; ++ } ++#line 24254 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 949: ++#line 7018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->alter_info.flags|= ALTER_OPTIONS; ++ if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) && ++ !lex->create_info.db_type) ++ { ++ lex->create_info.used_fields&= ~HA_CREATE_USED_ENGINE; ++ } ++ } ++#line 24268 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 950: ++#line 7028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_RECREATE; ++ } ++#line 24276 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 951: ++#line 7032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->alter_info.flags|= ALTER_ORDER; ++ } ++#line 24285 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 952: ++#line 7039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 953: ++#line 7040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24297 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 954: ++#line 7044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ignore= 0;} ++#line 24303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 955: ++#line 7045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ignore= 1;} ++#line 24309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 956: ++#line 7049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ignore= Lex->online= 0;} ++#line 24315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 962: ++#line 7063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ignore= 1;} ++#line 24321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 963: ++#line 7064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->online= 1;} ++#line 24327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 964: ++#line 7068 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->drop_mode= DROP_DEFAULT; } ++#line 24333 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 965: ++#line 7069 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->drop_mode= DROP_RESTRICT; } ++#line 24339 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 966: ++#line 7070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->drop_mode= DROP_CASCADE; } ++#line 24345 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 967: ++#line 7074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 968: ++#line 7075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { store_position_for_column((yyvsp[0].lex_str).str); } ++#line 24357 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 969: ++#line 7076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { store_position_for_column(first_keyword); } ++#line 24363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 970: ++#line 7080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 971: ++#line 7081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 972: ++#line 7082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 973: ++#line 7083 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 974: ++#line 7092 "/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 24398 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 975: ++#line 7099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24404 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 976: ++#line 7101 "/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 24415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 977: ++#line 7108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_SLAVE_START; ++ lex->type = 0; ++ } ++#line 24425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 978: ++#line 7114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 979: ++#line 7116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_SLAVE_STOP; ++ lex->type = 0; ++ } ++#line 24441 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 980: ++#line 7125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_BEGIN; ++ lex->start_transaction_opt= (yyvsp[0].num); ++ } ++#line 24451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 981: ++#line 7133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) = 0; } ++#line 24457 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 982: ++#line 7135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT; ++ } ++#line 24465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 983: ++#line 7141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->slave_thd_opt= 0; } ++#line 24471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 984: ++#line 7143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 987: ++#line 7152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 988: ++#line 7153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->slave_thd_opt|=SLAVE_SQL; } ++#line 24489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 989: ++#line 7154 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->slave_thd_opt|=SLAVE_IO; } ++#line 24495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 990: ++#line 7158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 991: ++#line 7160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (((lex->mi.log_file_name || lex->mi.pos) && ++ (lex->mi.relay_log_name || lex->mi.relay_log_pos)) || ++ !((lex->mi.log_file_name && lex->mi.pos) || ++ (lex->mi.relay_log_name && lex->mi.relay_log_pos))) ++ { ++ my_message(ER_BAD_SLAVE_UNTIL_COND, ++ ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 24518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 994: ++#line 7181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_CHECKSUM; ++ /* Will be overriden during execution. */ ++ YYPS->m_lock_type= TL_UNLOCK; ++ } ++#line 24529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 995: ++#line 7188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 996: ++#line 7192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags= 0; } ++#line 24541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 997: ++#line 7193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags= T_QUICK; } ++#line 24547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 998: ++#line 7194 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags= T_EXTEND; } ++#line 24553 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1000: ++#line 7199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->only_view= TRUE; } ++#line 24559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1002: ++#line 7204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_REPAIR; ++ lex->no_write_to_binlog= (yyvsp[0].num); ++ lex->check_opt.init(); ++ lex->alter_info.reset(); ++ /* Will be overriden during execution. */ ++ YYPS->m_lock_type= TL_UNLOCK; ++ } ++#line 24573 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1003: ++#line 7214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX* lex= thd->lex; ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) Repair_table_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 24585 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1004: ++#line 7224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags = T_MEDIUM; } ++#line 24591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1005: ++#line 7225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1006: ++#line 7229 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1007: ++#line 7230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1008: ++#line 7234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_QUICK; } ++#line 24615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1009: ++#line 7235 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_EXTEND; } ++#line 24621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1010: ++#line 7236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.sql_flags|= TT_USEFRM; } ++#line 24627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1011: ++#line 7240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 24633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1012: ++#line 7241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } ++#line 24639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1013: ++#line 7246 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_ANALYZE; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ lex->check_opt.init(); ++ lex->alter_info.reset(); ++ /* Will be overriden during execution. */ ++ YYPS->m_lock_type= TL_UNLOCK; ++ } ++#line 24653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1014: ++#line 7256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX* lex= thd->lex; ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) Analyze_table_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 24665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1015: ++#line 7267 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; ++ Lex->comment= (yyvsp[0].lex_str); ++ } ++#line 24674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1017: ++#line 7275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->only_view= TRUE; } ++#line 24680 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1019: ++#line 7279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ ++ lex->sql_command = SQLCOM_CHECK; ++ lex->check_opt.init(); ++ lex->alter_info.reset(); ++ /* Will be overriden during execution. */ ++ YYPS->m_lock_type= TL_UNLOCK; ++ } ++#line 24694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1020: ++#line 7289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX* lex= thd->lex; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK"); ++ MYSQL_YYABORT; ++ } ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) Check_table_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 24711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1021: ++#line 7304 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags = T_MEDIUM; } ++#line 24717 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1022: ++#line 7305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1023: ++#line 7309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1024: ++#line 7310 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1025: ++#line 7314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_QUICK; } ++#line 24741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1026: ++#line 7315 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_FAST; } ++#line 24747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1027: ++#line 7316 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_MEDIUM; } ++#line 24753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1028: ++#line 7317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_EXTEND; } ++#line 24759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1029: ++#line 7318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } ++#line 24765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1030: ++#line 7319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } ++#line 24771 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1031: ++#line 7323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 24777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1032: ++#line 7324 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } ++#line 24783 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1033: ++#line 7329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_OPTIMIZE; ++ lex->no_write_to_binlog= (yyvsp[-1].num); ++ lex->check_opt.init(); ++ lex->alter_info.reset(); ++ /* Will be overriden during execution. */ ++ YYPS->m_lock_type= TL_UNLOCK; ++ } ++#line 24797 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1034: ++#line 7339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX* lex= thd->lex; ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) Optimize_table_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 24809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1035: ++#line 7349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 24815 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1036: ++#line 7350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 24821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1037: ++#line 7351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 24827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1038: ++#line 7356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command= SQLCOM_RENAME_TABLE; ++ } ++#line 24835 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1039: ++#line 7360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1040: ++#line 7362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_RENAME_USER; ++ } ++#line 24849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1041: ++#line 7369 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->users_list.push_back((yyvsp[-2].lex_user)) || Lex->users_list.push_back((yyvsp[0].lex_user))) ++ MYSQL_YYABORT; ++ } ++#line 24858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1042: ++#line 7374 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->users_list.push_back((yyvsp[-2].lex_user)) || Lex->users_list.push_back((yyvsp[0].lex_user))) ++ MYSQL_YYABORT; ++ } ++#line 24867 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1045: ++#line 7387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ SELECT_LEX *sl= lex->current_select; ++ if (!sl->add_table_to_list(lex->thd, (yyvsp[-2].table),NULL,TL_OPTION_UPDATING, ++ TL_IGNORE, MDL_EXCLUSIVE) || ++ !sl->add_table_to_list(lex->thd, (yyvsp[0].table),NULL,TL_OPTION_UPDATING, ++ TL_IGNORE, MDL_EXCLUSIVE)) ++ MYSQL_YYABORT; ++ } ++#line 24881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1046: ++#line 7400 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.reset(); ++ } ++#line 24889 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1047: ++#line 7404 "/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 24899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1052: ++#line 7423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, 0, TL_READ, ++ MDL_SHARED_READ, ++ Select->pop_index_hints())) ++ MYSQL_YYABORT; ++ } ++#line 24910 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1053: ++#line 7433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, 0, TL_READ, ++ MDL_SHARED_READ, ++ Select->pop_index_hints())) ++ MYSQL_YYABORT; ++ } ++#line 24921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1054: ++#line 7442 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 24927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1055: ++#line 7443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str) = default_key_cache_base; } ++#line 24933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1056: ++#line 7448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command=SQLCOM_PRELOAD_KEYS; ++ lex->alter_info.reset(); ++ } ++#line 24943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1057: ++#line 7454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 24949 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1062: ++#line 7469 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, (yyvsp[0].num), TL_READ, ++ MDL_SHARED_READ, ++ Select->pop_index_hints())) ++ MYSQL_YYABORT; ++ } ++#line 24960 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1063: ++#line 7479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[-3].table), NULL, (yyvsp[0].num), TL_READ, ++ MDL_SHARED_READ, ++ Select->pop_index_hints())) ++ MYSQL_YYABORT; ++ } ++#line 24971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1064: ++#line 7489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->alter_info.flags|= ALTER_ADMIN_PARTITION; ++ } ++#line 24979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1066: ++#line 7496 "/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 24989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1068: ++#line 7505 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 24995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1070: ++#line 7511 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 25001 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1071: ++#line 7512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= TL_OPTION_IGNORE_LEAVES; } ++#line 25007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1072: ++#line 7522 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SELECT; ++ } ++#line 25016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1075: ++#line 7536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (setup_select_in_parentheses(Lex)) ++ MYSQL_YYABORT; ++ } ++#line 25025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1077: ++#line 7546 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (setup_select_in_parentheses(Lex)) ++ MYSQL_YYABORT; ++ } ++#line 25034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1079: ++#line 7555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX * sel= lex->current_select; ++ if (lex->current_select->set_braces(0)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (sel->linkage == UNION_TYPE && ++ sel->master_unit()->first_select()->braces) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 25054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1081: ++#line 7574 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX *sel= lex->current_select; ++ if (sel->linkage != UNION_TYPE) ++ mysql_init_select(lex); ++ lex->current_select->parsing_place= SELECT_LIST; ++ } ++#line 25066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1082: ++#line 7582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= NO_MATTER; ++ } ++#line 25074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1084: ++#line 7589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 25080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1089: ++#line 7599 "/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 25090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1092: ++#line 7614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 25102 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1096: ++#line 7631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Allow this flag only on the first top-level SELECT statement, if ++ SQL_CACHE wasn't specified, and only once per query. ++ */ ++ if (Lex->current_select != &Lex->select_lex) ++ { ++ my_error(ER_CANT_USE_OPTION_HERE, MYF(0), "SQL_NO_CACHE"); ++ MYSQL_YYABORT; ++ } ++ else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_CACHE) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "SQL_CACHE", "SQL_NO_CACHE"); ++ MYSQL_YYABORT; ++ } ++ else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_NO_CACHE) ++ { ++ my_error(ER_DUP_ARGUMENT, MYF(0), "SQL_NO_CACHE"); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ Lex->safe_to_cache_query=0; ++ Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE; ++ Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE; ++ } ++ } ++#line 25134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1097: ++#line 7659 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Allow this flag only on the first top-level SELECT statement, if ++ SQL_NO_CACHE wasn't specified, and only once per query. ++ */ ++ if (Lex->current_select != &Lex->select_lex) ++ { ++ my_error(ER_CANT_USE_OPTION_HERE, MYF(0), "SQL_CACHE"); ++ MYSQL_YYABORT; ++ } ++ else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_NO_CACHE) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "SQL_NO_CACHE", "SQL_CACHE"); ++ MYSQL_YYABORT; ++ } ++ else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_CACHE) ++ { ++ my_error(ER_DUP_ARGUMENT, MYF(0), "SQL_CACHE"); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ Lex->safe_to_cache_query=1; ++ Lex->select_lex.options|= OPTION_TO_QUERY_CACHE; ++ Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE; ++ } ++ } ++#line 25166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1099: ++#line 7691 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->current_select->set_lock_for_tables(TL_WRITE); ++ lex->safe_to_cache_query=0; ++ } ++#line 25176 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1100: ++#line 7697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->current_select-> ++ set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS); ++ lex->safe_to_cache_query=0; ++ } ++#line 25187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1103: ++#line 7709 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) ++ Item_field(&thd->lex->current_select->context, ++ NULL, NULL, "*"); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ if (add_item_to_list(thd, item)) ++ MYSQL_YYABORT; ++ (thd->lex->current_select->with_wild)++; ++ } ++#line 25202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1104: ++#line 7723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_item_to_list(thd, (yyvsp[-1].item))) ++ MYSQL_YYABORT; ++ } ++#line 25211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1105: ++#line 7728 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ DBUG_ASSERT((yyvsp[-3].simple_string) < (yyvsp[-1].simple_string)); ++ ++ if (add_item_to_list(thd, (yyvsp[-2].item))) ++ MYSQL_YYABORT; ++ if ((yyvsp[0].lex_str).str) ++ { ++ if (Lex->sql_command == SQLCOM_CREATE_VIEW && ++ check_column_name((yyvsp[0].lex_str).str)) ++ { ++ my_error(ER_WRONG_COLUMN_NAME, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ (yyvsp[-2].item)->is_autogenerated_name= FALSE; ++ (yyvsp[-2].item)->set_name((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); ++ } ++ else if (!(yyvsp[-2].item)->name) ++ { ++ (yyvsp[-2].item)->set_name((yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); ++ } ++ } ++#line 25237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1106: ++#line 7752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start(); ++ } ++#line 25245 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1107: ++#line 7758 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end(); ++ } ++#line 25253 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1108: ++#line 7764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=null_lex_str;} ++#line 25259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1109: ++#line 7765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 25265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1110: ++#line 7766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 25271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1111: ++#line 7767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 25277 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1112: ++#line 7768 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 25283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1113: ++#line 7772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 25289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1114: ++#line 7773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 25295 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1115: ++#line 7774 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (yyvsp[-1].ulong_num); } ++#line 25301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1116: ++#line 7778 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 25307 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1117: ++#line 7779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 25313 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1118: ++#line 7785 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Design notes: ++ Do not use a manually maintained stack like thd->lex->xxx_list, ++ but use the internal bison stack ($$, $1 and $3) instead. ++ Using the bison stack is: ++ - more robust to changes in the grammar, ++ - guaranteed to be in sync with the parser state, ++ - better for performances (no memory allocation). ++ */ ++ Item_cond_or *item1; ++ Item_cond_or *item3; ++ if (is_cond_or((yyvsp[-2].item))) ++ { ++ item1= (Item_cond_or*) (yyvsp[-2].item); ++ if (is_cond_or((yyvsp[0].item))) ++ { ++ item3= (Item_cond_or*) (yyvsp[0].item); ++ /* ++ (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2) ++ */ ++ item3->add_at_head(item1->argument_list()); ++ (yyval.item) = (yyvsp[0].item); ++ } ++ else ++ { ++ /* ++ (X1 OR X2) OR Y ==> OR (X1, X2, Y) ++ */ ++ item1->add((yyvsp[0].item)); ++ (yyval.item) = (yyvsp[-2].item); ++ } ++ } ++ else if (is_cond_or((yyvsp[0].item))) ++ { ++ item3= (Item_cond_or*) (yyvsp[0].item); ++ /* ++ X OR (Y1 OR Y2) ==> OR (X, Y1, Y2) ++ */ ++ item3->add_at_head((yyvsp[-2].item)); ++ (yyval.item) = (yyvsp[0].item); ++ } ++ else ++ { ++ /* X OR Y */ ++ (yyval.item) = new (thd->mem_root) Item_cond_or((yyvsp[-2].item), (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++ } ++#line 25368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1119: ++#line 7836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* XOR is a proprietary extension */ ++ (yyval.item) = new (thd->mem_root) Item_func_xor((yyvsp[-2].item), (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25379 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1120: ++#line 7843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* See comments in rule expr: expr or expr */ ++ Item_cond_and *item1; ++ Item_cond_and *item3; ++ if (is_cond_and((yyvsp[-2].item))) ++ { ++ item1= (Item_cond_and*) (yyvsp[-2].item); ++ if (is_cond_and((yyvsp[0].item))) ++ { ++ item3= (Item_cond_and*) (yyvsp[0].item); ++ /* ++ (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2) ++ */ ++ item3->add_at_head(item1->argument_list()); ++ (yyval.item) = (yyvsp[0].item); ++ } ++ else ++ { ++ /* ++ (X1 AND X2) AND Y ==> AND (X1, X2, Y) ++ */ ++ item1->add((yyvsp[0].item)); ++ (yyval.item) = (yyvsp[-2].item); ++ } ++ } ++ else if (is_cond_and((yyvsp[0].item))) ++ { ++ item3= (Item_cond_and*) (yyvsp[0].item); ++ /* ++ X AND (Y1 AND Y2) ==> AND (X, Y1, Y2) ++ */ ++ item3->add_at_head((yyvsp[-2].item)); ++ (yyval.item) = (yyvsp[0].item); ++ } ++ else ++ { ++ /* X AND Y */ ++ (yyval.item) = new (thd->mem_root) Item_cond_and((yyvsp[-2].item), (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++ } ++#line 25426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1121: ++#line 7886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= negate_expression(thd, (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1122: ++#line 7892 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_istrue((yyvsp[-2].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1123: ++#line 7898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isnottrue((yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1124: ++#line 7904 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isfalse((yyvsp[-2].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25466 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1125: ++#line 7910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isnotfalse((yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1126: ++#line 7916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isnull((yyvsp[-2].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1127: ++#line 7922 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isnotnull((yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1129: ++#line 7932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isnull((yyvsp[-2].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1130: ++#line 7938 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_isnotnull((yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1131: ++#line 7944 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_equal((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1132: ++#line 7950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= (*(yyvsp[-1].boolfunc2creator))(0)->create((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1133: ++#line 7956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= all_any_subquery_creator((yyvsp[-5].item), (yyvsp[-4].boolfunc2creator), (yyvsp[-3].num), (yyvsp[-1].select_lex)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1135: ++#line 7966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_in_subselect((yyvsp[-4].item), (yyvsp[-1].select_lex)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1136: ++#line 7972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[-5].item), (yyvsp[-1].select_lex)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= negate_expression(thd, item); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25569 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1137: ++#line 7981 "/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 ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25579 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1138: ++#line 7987 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); ++ (yyvsp[-1].item_list)->push_front((yyvsp[-6].item)); ++ (yyval.item)= new (thd->mem_root) Item_func_in(*(yyvsp[-1].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1139: ++#line 7995 "/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 ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1140: ++#line 8001 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); ++ (yyvsp[-1].item_list)->push_front((yyvsp[-7].item)); ++ Item_func_in *item = new (thd->mem_root) Item_func_in(*(yyvsp[-1].item_list)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ item->negate(); ++ (yyval.item)= item; ++ } ++#line 25615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1141: ++#line 8011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_between((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25625 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1142: ++#line 8017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item_func_between *item; ++ item= new (thd->mem_root) Item_func_between((yyvsp[-5].item),(yyvsp[-2].item),(yyvsp[0].item)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ item->negate(); ++ (yyval.item)= item; ++ } ++#line 25638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1143: ++#line 8026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item1= new (thd->mem_root) Item_func_soundex((yyvsp[-3].item)); ++ Item *item4= new (thd->mem_root) Item_func_soundex((yyvsp[0].item)); ++ if ((item1 == NULL) || (item4 == NULL)) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_func_eq(item1, item4); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25652 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1144: ++#line 8036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_like((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].item),Lex->escape_used); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25662 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1145: ++#line 8042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) Item_func_like((yyvsp[-4].item),(yyvsp[-1].item),(yyvsp[0].item), ++ Lex->escape_used); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_func_not(item); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1146: ++#line 8052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_regex((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25686 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1147: ++#line 8058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) Item_func_regex((yyvsp[-3].item),(yyvsp[0].item)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= negate_expression(thd, item); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25699 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1149: ++#line 8071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_bit_or((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1150: ++#line 8077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_bit_and((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1151: ++#line 8083 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_shift_left((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1152: ++#line 8089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_shift_right((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1153: ++#line 8095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_plus((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25749 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1154: ++#line 8101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_minus((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1155: ++#line 8107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-4].item),(yyvsp[-1].item),(yyvsp[0].interval),0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1156: ++#line 8113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-4].item),(yyvsp[-1].item),(yyvsp[0].interval),1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1157: ++#line 8119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_mul((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1158: ++#line 8125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_div((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25799 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1159: ++#line 8131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_mod((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1160: ++#line 8137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_int_div((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1161: ++#line 8143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_mod((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1162: ++#line 8149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_bit_xor((yyvsp[-2].item),(yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 25839 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1172: ++#line 8178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.boolfunc2creator) = &comp_eq_creator; } ++#line 25845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1173: ++#line 8179 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.boolfunc2creator) = &comp_ge_creator; } ++#line 25851 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1174: ++#line 8180 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.boolfunc2creator) = &comp_gt_creator; } ++#line 25857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1175: ++#line 8181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.boolfunc2creator) = &comp_le_creator; } ++#line 25863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1176: ++#line 8182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.boolfunc2creator) = &comp_lt_creator; } ++#line 25869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1177: ++#line 8183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.boolfunc2creator) = &comp_ne_creator; } ++#line 25875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1178: ++#line 8187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) = 1; } ++#line 25881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1179: ++#line 8188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) = 0; } ++#line 25887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1180: ++#line 8193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_NULL; /* automatic type */ ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 25898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1181: ++#line 8199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (yyvsp[0].num); } ++#line 25904 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1182: ++#line 8204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_INT; ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 25915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1183: ++#line 8211 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_UINT; ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 25926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1184: ++#line 8218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_DOUBLE; ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 25937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1185: ++#line 8225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_DOUBLE; ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 25948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1186: ++#line 8232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_DOUBLE; ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 25959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1187: ++#line 8239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= DYN_COL_DECIMAL; ++ Lex->charset= NULL; ++ } ++#line 25968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1188: ++#line 8244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_STRING; ++ lex->length= lex->dec= 0; ++ } ++#line 25978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1189: ++#line 8250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_STRING; ++ lex->charset= national_charset_info; ++ lex->length= lex->dec= 0; ++ } ++#line 25989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1190: ++#line 8257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_DATE; ++ lex->charset= NULL; ++ lex->length= lex->dec= 0; ++ } ++#line 26000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1191: ++#line 8264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_TIME; ++ lex->charset= NULL; ++ lex->dec= lex->length; ++ lex->length= 0; ++ } ++#line 26012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1192: ++#line 8272 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.num)= DYN_COL_DATETIME; ++ lex->charset= NULL; ++ lex->dec= lex->length; ++ lex->length= 0; ++ } ++#line 26024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1193: ++#line 8283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.dyncol_def)= (DYNCALL_CREATE_DEF *) ++ alloc_root(thd->mem_root, sizeof(DYNCALL_CREATE_DEF)); ++ if ((yyval.dyncol_def) == NULL) ++ MYSQL_YYABORT; ++ (yyval.dyncol_def)->num= (yyvsp[-3].item); ++ (yyval.dyncol_def)->value= (yyvsp[-1].item); ++ (yyval.dyncol_def)->type= (DYNAMIC_COLUMN_TYPE)(yyvsp[0].num); ++ (yyval.dyncol_def)->cs= lex->charset; ++ if (lex->length) ++ (yyval.dyncol_def)->len= strtoul(lex->length, NULL, 10); ++ else ++ (yyval.dyncol_def)->len= 0; ++ if (lex->dec) ++ (yyval.dyncol_def)->frac= strtoul(lex->dec, NULL, 10); ++ else ++ (yyval.dyncol_def)->len= 0; ++ } ++#line 26048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1194: ++#line 8305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.dyncol_def_list)= new (thd->mem_root) List; ++ if ((yyval.dyncol_def_list) == NULL) ++ MYSQL_YYABORT; ++ (yyval.dyncol_def_list)->push_back((yyvsp[0].dyncol_def)); ++ } ++#line 26059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1195: ++#line 8312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-2].dyncol_def_list)->push_back((yyvsp[0].dyncol_def)); ++ (yyval.dyncol_def_list)= (yyvsp[-2].dyncol_def_list); ++ } ++#line 26068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1201: ++#line 8325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *i1= new (thd->mem_root) Item_string((yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).length, ++ thd->charset()); ++ if (i1 == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[-2].item), i1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1206: ++#line 8340 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_concat((yyvsp[-2].item), (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1207: ++#line 8346 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= (yyvsp[0].item); ++ } ++#line 26101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1208: ++#line 8350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_neg((yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1209: ++#line 8356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_bit_neg((yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1210: ++#line 8362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= negate_expression(thd, (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1211: ++#line 8368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_singlerow_subselect((yyvsp[-1].select_lex)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1212: ++#line 8374 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[-1].item); } ++#line 26147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1213: ++#line 8376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); ++ (yyval.item)= new (thd->mem_root) Item_row(*(yyvsp[-1].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26158 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1214: ++#line 8383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); ++ (yyval.item)= new (thd->mem_root) Item_row(*(yyvsp[-1].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26169 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1215: ++#line 8390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_exists_subselect((yyvsp[-1].select_lex)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1216: ++#line 8396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[-1].item); } ++#line 26185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1217: ++#line 8398 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-5].item_list)->push_front((yyvsp[-2].item)); ++ Item_func_match *i1= new (thd->mem_root) Item_func_match(*(yyvsp[-5].item_list), (yyvsp[-1].num)); ++ if (i1 == NULL) ++ MYSQL_YYABORT; ++ Select->add_ftfunc_to_list(i1); ++ (yyval.item)= i1; ++ } ++#line 26198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1218: ++#line 8407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= create_func_cast(thd, (yyvsp[0].item), ITEM_CAST_CHAR, NULL, NULL, ++ &my_charset_bin); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1219: ++#line 8414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ (yyval.item)= create_func_cast(thd, (yyvsp[-3].item), (yyvsp[-1].cast_type), lex->length, lex->dec, ++ lex->charset); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26221 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1220: ++#line 8422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_case(* (yyvsp[-2].item_list), (yyvsp[-3].item), (yyvsp[-1].item) ); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1221: ++#line 8428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= create_func_cast(thd, (yyvsp[-3].item), (yyvsp[-1].cast_type), Lex->length, Lex->dec, ++ Lex->charset); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26242 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1222: ++#line 8435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_conv_charset((yyvsp[-3].item),(yyvsp[-1].charset)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1223: ++#line 8441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if ((yyvsp[-1].item)->is_splocal()) ++ { ++ Item_splocal *il= static_cast((yyvsp[-1].item)); ++ ++ my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str); ++ MYSQL_YYABORT; ++ } ++ (yyval.item)= new (thd->mem_root) Item_default_value(Lex->current_context(), ++ (yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1224: ++#line 8455 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_insert_value(Lex->current_context(), ++ (yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1225: ++#line 8463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[0].item),(yyvsp[-3].item),(yyvsp[-2].interval),0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1226: ++#line 8478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_char(*(yyvsp[-1].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1227: ++#line 8484 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_char(*(yyvsp[-3].item_list), (yyvsp[-1].charset)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1228: ++#line 8490 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_current_user(Lex->current_context()); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); ++ Lex->safe_to_cache_query= 0; ++ } ++#line 26323 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1229: ++#line 8498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_typecast((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26333 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1230: ++#line 8504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_dayofmonth((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1231: ++#line 8510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_hour((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1232: ++#line 8516 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_insert((yyvsp[-7].item),(yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1233: ++#line 8522 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ List *list= new (thd->mem_root) List; ++ if (list == NULL) ++ MYSQL_YYABORT; ++ list->push_front((yyvsp[-1].item)); ++ list->push_front((yyvsp[-3].item)); ++ Item_row *item= new (thd->mem_root) Item_row(*list); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_func_interval(item); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1234: ++#line 8536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); ++ (yyvsp[-1].item_list)->push_front((yyvsp[-5].item)); ++ Item_row *item= new (thd->mem_root) Item_row(*(yyvsp[-1].item_list)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_func_interval(item); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1235: ++#line 8547 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_left((yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26406 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1236: ++#line 8553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_minute((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26416 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1237: ++#line 8559 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_month((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1238: ++#line 8565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_right((yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1239: ++#line 8571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_second((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1240: ++#line 8577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_time_typecast((yyvsp[-1].item), AUTO_SEC_PART_DIGITS); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1241: ++#line 8583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_datetime_typecast((yyvsp[-1].item), AUTO_SEC_PART_DIGITS); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26466 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1242: ++#line 8589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_add_time((yyvsp[-3].item), (yyvsp[-1].item), 1, 0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1243: ++#line 8595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1244: ++#line 8601 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_ltrim((yyvsp[-1].item),(yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1245: ++#line 8607 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_rtrim((yyvsp[-1].item),(yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1246: ++#line 8613 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[-1].item),(yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1247: ++#line 8619 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_ltrim((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1248: ++#line 8625 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_rtrim((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1249: ++#line 8631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1250: ++#line 8637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[-1].item),(yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1251: ++#line 8643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_user(); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); ++ Lex->safe_to_cache_query=0; ++ } ++#line 26568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1252: ++#line 8651 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_year((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1253: ++#line 8672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-3].item), (yyvsp[-1].item), ++ INTERVAL_DAY, 0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1254: ++#line 8679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1255: ++#line 8685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_curdate_local(); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1256: ++#line 8692 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_curtime_local((yyvsp[0].num)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1257: ++#line 8700 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-5].item),(yyvsp[-2].item),(yyvsp[-1].interval),0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26631 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1258: ++#line 8707 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-5].item),(yyvsp[-2].item),(yyvsp[-1].interval),1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1259: ++#line 8713 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)=new (thd->mem_root) Item_extract( (yyvsp[-3].interval), (yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1260: ++#line 8719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_get_format((yyvsp[-3].date_time_type), (yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26661 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1261: ++#line 8725 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_now_local((yyvsp[0].num)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1262: ++#line 8732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item) = new (thd->mem_root) Item_func_locate((yyvsp[-1].item),(yyvsp[-3].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1263: ++#line 8738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-3].item), (yyvsp[-1].item), ++ INTERVAL_DAY, 1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1264: ++#line 8745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1265: ++#line 8751 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26713 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1266: ++#line 8757 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1267: ++#line 8763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1268: ++#line 8769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1269: ++#line 8775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Unlike other time-related functions, SYSDATE() is ++ replication-unsafe because it is not affected by the ++ TIMESTAMP variable. It is unsafe even if ++ sysdate_is_now=1, because the slave may have ++ sysdate_is_now=0. ++ */ ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); ++ if (global_system_variables.sysdate_is_now == 0) ++ (yyval.item)= new (thd->mem_root) Item_func_sysdate_local((yyvsp[0].num)); ++ else ++ (yyval.item)= new (thd->mem_root) Item_func_now_local((yyvsp[0].num)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1270: ++#line 8793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[-1].item),(yyvsp[-3].item),(yyvsp[-5].interval_time_st),0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26775 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1271: ++#line 8799 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_timestamp_diff((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[-5].interval_time_st)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1272: ++#line 8805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_curdate_utc(); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26796 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1273: ++#line 8812 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_curtime_utc((yyvsp[0].num)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1274: ++#line 8819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_now_utc((yyvsp[0].num)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1275: ++#line 8827 "/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 ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1276: ++#line 8834 "/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 ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1277: ++#line 8841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_dyncol_exists((yyvsp[-3].item), (yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1278: ++#line 8848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_dyncol_list((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1279: ++#line 8855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= create_func_dyncol_create(thd, *(yyvsp[-1].dyncol_def_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1280: ++#line 8862 "/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].cast_type), ++ lex->length, lex->dec, ++ lex->charset); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1281: ++#line 8879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_ascii((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1282: ++#line 8885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_charset((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1283: ++#line 8891 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_coalesce(* (yyvsp[-1].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1284: ++#line 8897 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_collation((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1285: ++#line 8903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_database(); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ Lex->safe_to_cache_query=0; ++ } ++#line 26932 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1286: ++#line 8910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_if((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26942 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1287: ++#line 8916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_last_value(* (yyvsp[-1].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1288: ++#line 8922 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_microsecond((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1289: ++#line 8928 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item) = new (thd->mem_root) Item_func_mod((yyvsp[-3].item), (yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1290: ++#line 8934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_old_password((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 26982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1291: ++#line 8940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item* i1; ++ if (thd->variables.old_passwords) ++ i1= new (thd->mem_root) Item_func_old_password((yyvsp[-1].item)); ++ else ++ i1= new (thd->mem_root) Item_func_password((yyvsp[-1].item)); ++ if (i1 == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= i1; ++ } ++#line 26997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1292: ++#line 8951 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item) = new (thd->mem_root) Item_func_quarter((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1293: ++#line 8957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_repeat((yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1294: ++#line 8963 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_replace((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1295: ++#line 8969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_round((yyvsp[-3].item),(yyvsp[-1].item),1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27037 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1296: ++#line 8975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *i1= new (thd->mem_root) Item_int((char*) "0", ++ thd->variables.default_week_format, ++ 1); ++ if (i1 == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[-1].item), i1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1297: ++#line 8986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[-3].item),(yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1298: ++#line 8992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++#ifdef HAVE_SPATIAL ++ (yyval.item)= (yyvsp[0].item); ++ /* $1 may be NULL, GEOM_NEW not tested for out of memory */ ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++#else ++ my_error(ER_FEATURE_DISABLED, MYF(0), ++ sym_group_geom.name, sym_group_geom.needed_define); ++ MYSQL_YYABORT; ++#endif ++ } ++#line 27079 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1299: ++#line 9008 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_rel((yyvsp[-3].item), (yyvsp[-1].item), ++ Item_func::SP_CONTAINS_FUNC)); ++ } ++#line 27089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1300: ++#line 9014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_collection(* (yyvsp[-1].item_list), ++ Geometry::wkb_geometrycollection, ++ Geometry::wkb_point)); ++ } ++#line 27100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1301: ++#line 9021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_collection(* (yyvsp[-1].item_list), ++ Geometry::wkb_linestring, ++ Geometry::wkb_point)); ++ } ++#line 27111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1302: ++#line 9028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_collection(* (yyvsp[-1].item_list), ++ Geometry::wkb_multilinestring, ++ Geometry::wkb_linestring)); ++ } ++#line 27122 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1303: ++#line 9035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_collection(* (yyvsp[-1].item_list), ++ Geometry::wkb_multipoint, ++ Geometry::wkb_point)); ++ } ++#line 27133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1304: ++#line 9042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_collection(* (yyvsp[-1].item_list), ++ Geometry::wkb_multipolygon, ++ Geometry::wkb_polygon)); ++ } ++#line 27144 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1305: ++#line 9049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, Item_func_point((yyvsp[-3].item),(yyvsp[-1].item))); ++ } ++#line 27152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1306: ++#line 9053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= GEOM_NEW(thd, ++ Item_func_spatial_collection(* (yyvsp[-1].item_list), ++ Geometry::wkb_polygon, ++ Geometry::wkb_linestring)); ++ } ++#line 27163 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1307: ++#line 9072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++#ifdef HAVE_DLOPEN ++ udf_func *udf= 0; ++ LEX *lex= Lex; ++ if (using_udf_functions && ++ (udf= find_udf((yyvsp[-1].lex_str).str, (yyvsp[-1].lex_str).length)) && ++ udf->type == UDFTYPE_AGGREGATE) ++ { ++ if (lex->current_select->inc_in_sum_expr()) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++ /* Temporary placing the result of find_udf in $3 */ ++ (yyval.udf)= udf; ++#endif ++ } ++#line 27186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1308: ++#line 9091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Create_func *builder; ++ Item *item= NULL; ++ ++ if (check_routine_name(&(yyvsp[-4].lex_str))) ++ { ++ MYSQL_YYABORT; ++ } ++ ++ /* ++ Implementation note: ++ names are resolved with the following order: ++ - MySQL native functions, ++ - User Defined Functions, ++ - Stored Functions (assuming the current database) ++ ++ This will be revised with WL#2128 (SQL PATH) ++ */ ++ builder= find_native_function_builder(thd, (yyvsp[-4].lex_str)); ++ if (builder) ++ { ++ item= builder->create_func(thd, (yyvsp[-4].lex_str), (yyvsp[-1].item_list)); ++ } ++ else ++ { ++#ifdef HAVE_DLOPEN ++ /* Retrieving the result of find_udf */ ++ udf_func *udf= (yyvsp[-2].udf); ++ ++ if (udf) ++ { ++ if (udf->type == UDFTYPE_AGGREGATE) ++ { ++ Select->in_sum_expr--; ++ } ++ ++ item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[-1].item_list)); ++ } ++ else ++#endif ++ { ++ builder= find_qualified_function_builder(thd); ++ DBUG_ASSERT(builder); ++ item= builder->create_func(thd, (yyvsp[-4].lex_str), (yyvsp[-1].item_list)); ++ } ++ } ++ ++ if (! ((yyval.item)= item)) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 27243 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1309: ++#line 9144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Create_qfunc *builder; ++ Item *item= NULL; ++ ++ /* ++ The following in practice calls: ++ Create_sp_func::create() ++ and builds a stored function. ++ ++ However, it's important to maintain the interface between the ++ parser and the implementation in item_create.cc clean, ++ since this will change with WL#2128 (SQL PATH): ++ - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native ++ function version(), ++ - MySQL.version() is the SQL 2003 syntax for the native function ++ version() (a vendor can specify any schema). ++ */ ++ ++ if (!(yyvsp[-5].lex_str).str || check_db_name(&(yyvsp[-5].lex_str))) ++ { ++ my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-5].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (check_routine_name(&(yyvsp[-3].lex_str))) ++ { ++ MYSQL_YYABORT; ++ } ++ ++ builder= find_qualified_function_builder(thd); ++ DBUG_ASSERT(builder); ++ item= builder->create_with_db(thd, (yyvsp[-5].lex_str), (yyvsp[-3].lex_str), true, (yyvsp[-1].item_list)); ++ ++ if (! ((yyval.item)= item)) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 27285 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1310: ++#line 9185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } ++#line 27291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1311: ++#line 9187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= FT_BOOL; } ++#line 27297 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1312: ++#line 9191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= FT_NL; } ++#line 27303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1313: ++#line 9192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= FT_NL; } ++#line 27309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1314: ++#line 9196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 27315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1315: ++#line 9197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= FT_EXPAND; } ++#line 27321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1316: ++#line 9201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item_list)= NULL; } ++#line 27327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1317: ++#line 9202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item_list)= (yyvsp[0].item_list); } ++#line 27333 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1318: ++#line 9207 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_list)= new (thd->mem_root) List; ++ if ((yyval.item_list) == NULL) ++ MYSQL_YYABORT; ++ (yyval.item_list)->push_back((yyvsp[0].item)); ++ } ++#line 27344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1319: ++#line 9214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-2].item_list)->push_back((yyvsp[0].item)); ++ (yyval.item_list)= (yyvsp[-2].item_list); ++ } ++#line 27353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1320: ++#line 9222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Use Item::name as a storage for the attribute value of user ++ defined function argument. It is safe to use Item::name ++ because the syntax will not allow having an explicit name here. ++ See WL#1017 re. udf attributes. ++ */ ++ if ((yyvsp[0].lex_str).str) ++ { ++ (yyvsp[-2].item)->is_autogenerated_name= FALSE; ++ (yyvsp[-2].item)->set_name((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); ++ } ++ /* ++ A field has to have its proper name in order for name ++ resolution to work, something we are only guaranteed if we ++ parse it out. If we hijack the input stream with ++ remember_name we may get quoted or escaped names. ++ */ ++ else if ((yyvsp[-2].item)->type() != Item::FIELD_ITEM && ++ (yyvsp[-2].item)->type() != Item::REF_ITEM /* For HAVING */ ) ++ (yyvsp[-2].item)->set_name((yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); ++ (yyval.item)= (yyvsp[-2].item); ++ } ++#line 27381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1321: ++#line 9249 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_avg((yyvsp[-1].item), FALSE); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27391 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1322: ++#line 9255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_avg((yyvsp[-1].item), TRUE); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27401 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1323: ++#line 9261 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_and((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1324: ++#line 9267 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_or((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1325: ++#line 9273 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_xor((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1326: ++#line 9279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *item= new (thd->mem_root) Item_int((int32) 0L,1); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ (yyval.item)= new (thd->mem_root) Item_sum_count(item); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1327: ++#line 9288 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_count((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1328: ++#line 9294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->in_sum_expr++; } ++#line 27460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1329: ++#line 9296 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->in_sum_expr--; } ++#line 27466 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1330: ++#line 9298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_count(* (yyvsp[-2].item_list)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1331: ++#line 9304 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_min((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1332: ++#line 9315 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_min((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1333: ++#line 9321 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_max((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1334: ++#line 9327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_max((yyvsp[-1].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1335: ++#line 9333 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_std((yyvsp[-1].item), 0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1336: ++#line 9339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_variance((yyvsp[-1].item), 0); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1337: ++#line 9345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_std((yyvsp[-1].item), 1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1338: ++#line 9351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_variance((yyvsp[-1].item), 1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1339: ++#line 9357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_sum((yyvsp[-1].item), FALSE); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1340: ++#line 9363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_sum_sum((yyvsp[-1].item), TRUE); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1341: ++#line 9369 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->in_sum_expr++; } ++#line 27582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1342: ++#line 9373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *sel= Select; ++ sel->in_sum_expr--; ++ (yyval.item)= new (thd->mem_root) ++ Item_func_group_concat(Lex->current_context(), (yyvsp[-5].num), (yyvsp[-3].item_list), ++ sel->gorder_list, (yyvsp[-1].string)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ (yyvsp[-3].item_list)->empty(); ++ sel->gorder_list.empty(); ++ } ++#line 27598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1343: ++#line 9388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (! Lex->parsing_options.allows_variable) ++ { ++ my_error(ER_VIEW_SELECT_VARIABLE, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 27610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1344: ++#line 9396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= (yyvsp[0].item); ++ } ++#line 27618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1345: ++#line 9403 "/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((yyvsp[-2].lex_str), (yyvsp[0].item)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ LEX *lex= Lex; ++ lex->uncacheable(UNCACHEABLE_SIDEEFFECT); ++ lex->set_var_list.push_back(item); ++ } ++#line 27632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1346: ++#line 9413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_func_get_user_var((yyvsp[0].lex_str)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ LEX *lex= Lex; ++ lex->uncacheable(UNCACHEABLE_SIDEEFFECT); ++ } ++#line 27644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1347: ++#line 9421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* disallow "SELECT @@global.global.variable" */ ++ if ((yyvsp[-1].lex_str).str && (yyvsp[0].lex_str).str && check_reserved_words(&(yyvsp[-1].lex_str))) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (!((yyval.item)= get_system_var(thd, (yyvsp[-2].var_type), (yyvsp[-1].lex_str), (yyvsp[0].lex_str)))) ++ MYSQL_YYABORT; ++ if (!((Item_func_get_system_var*) (yyval.item))->is_written_to_binlog()) ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_VARIABLE); ++ } ++#line 27661 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1348: ++#line 9436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) = 0; } ++#line 27667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1349: ++#line 9437 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) = 1; } ++#line 27673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1350: ++#line 9442 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.string)= new (thd->mem_root) String(",", 1, &my_charset_latin1); ++ if ((yyval.string) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 27683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1351: ++#line 9447 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.string) = (yyvsp[0].string); } ++#line 27689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1353: ++#line 9453 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX *sel= lex->current_select; ++ if (sel->linkage != GLOBAL_OPTIONS_TYPE && ++ sel->olap != UNSPECIFIED_OLAP_TYPE && ++ (sel->linkage != UNION_TYPE || sel->braces)) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), ++ "CUBE/ROLLUP", "ORDER BY"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 27706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1355: ++#line 9470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { if (add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } ++#line 27712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1356: ++#line 9472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { if (add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } ++#line 27718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1357: ++#line 9477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->current_select->inc_in_sum_expr()) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 27731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1358: ++#line 9486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->in_sum_expr--; ++ (yyval.item)= (yyvsp[0].item); ++ } ++#line 27740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1359: ++#line 9494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; } ++#line 27746 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1360: ++#line 9496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; } ++#line 27752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1361: ++#line 9498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; } ++#line 27758 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1362: ++#line 9500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } ++#line 27764 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1363: ++#line 9502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } ++#line 27770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1364: ++#line 9504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } ++#line 27776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1365: ++#line 9506 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } ++#line 27782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1366: ++#line 9508 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } ++#line 27788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1367: ++#line 9510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } ++#line 27794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1368: ++#line 9512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.cast_type)=ITEM_CAST_TIME; ++ LEX *lex= Lex; ++ lex->charset= NULL; lex->dec= lex->length; lex->length= (char*)0; ++ } ++#line 27804 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1369: ++#line 9518 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.cast_type)=ITEM_CAST_DATETIME; ++ LEX *lex= Lex; ++ lex->charset= NULL; lex->dec= lex->length; lex->length= (char*)0; ++ } ++#line 27814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1370: ++#line 9524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; } ++#line 27820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1371: ++#line 9526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->charset= NULL; Lex->length= Lex->dec= 0;} ++#line 27826 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1372: ++#line 9528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.cast_type)=ITEM_CAST_DOUBLE; } ++#line 27832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1373: ++#line 9531 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item_list)= NULL; } ++#line 27838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1374: ++#line 9532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item_list)= (yyvsp[0].item_list);} ++#line 27844 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1375: ++#line 9537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_list)= new (thd->mem_root) List; ++ if ((yyval.item_list) == NULL) ++ MYSQL_YYABORT; ++ (yyval.item_list)->push_back((yyvsp[0].item)); ++ } ++#line 27855 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1376: ++#line 9544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-2].item_list)->push_back((yyvsp[0].item)); ++ (yyval.item_list)= (yyvsp[-2].item_list); ++ } ++#line 27864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1377: ++#line 9551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item_list)= (yyvsp[0].item_list); } ++#line 27870 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1378: ++#line 9552 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item_list)= (yyvsp[-1].item_list); } ++#line 27876 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1379: ++#line 9557 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_list)= new (thd->mem_root) List; ++ if ((yyval.item_list) == NULL) ++ MYSQL_YYABORT; ++ (yyval.item_list)->push_back((yyvsp[0].item)); ++ } ++#line 27887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1380: ++#line 9564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-2].item_list)->push_back((yyvsp[0].item)); ++ (yyval.item_list)= (yyvsp[-2].item_list); ++ } ++#line 27896 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1381: ++#line 9571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= NULL; } ++#line 27902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1382: ++#line 9572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item); } ++#line 27908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1383: ++#line 9576 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= NULL; } ++#line 27914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1384: ++#line 9577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item); } ++#line 27920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1385: ++#line 9582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_list)= new List; ++ if ((yyval.item_list) == NULL) ++ MYSQL_YYABORT; ++ (yyval.item_list)->push_back((yyvsp[-2].item)); ++ (yyval.item_list)->push_back((yyvsp[0].item)); ++ } ++#line 27932 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1386: ++#line 9590 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-4].item_list)->push_back((yyvsp[-2].item)); ++ (yyvsp[-4].item_list)->push_back((yyvsp[0].item)); ++ (yyval.item_list)= (yyvsp[-4].item_list); ++ } ++#line 27942 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1387: ++#line 9600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.table_list)=(yyvsp[0].table_list); } ++#line 27948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1388: ++#line 9602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd))) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 27961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1389: ++#line 9613 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); } ++#line 27967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1390: ++#line 9624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.table_list)=(yyvsp[0].table_list); } ++#line 27973 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1391: ++#line 9625 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.table_list)=(yyvsp[-1].table_list); } ++#line 27979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1392: ++#line 9631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.table_list)=(yyvsp[0].table_list); } ++#line 27985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1393: ++#line 9633 "/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 27993 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1394: ++#line 9653 "/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 27999 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1395: ++#line 9655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); (yyvsp[0].table_list)->straight=1; } ++#line 28005 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1396: ++#line 9658 "/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. */ ++ if (push_new_name_resolution_context(thd, (yyvsp[-3].table_list), (yyvsp[-1].table_list))) ++ MYSQL_YYABORT; ++ Select->parsing_place= IN_ON; ++ } ++#line 28017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1397: ++#line 9666 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ add_join_on((yyvsp[-3].table_list),(yyvsp[0].item)); ++ Lex->pop_context(); ++ Select->parsing_place= NO_MATTER; ++ } ++#line 28027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1398: ++#line 9673 "/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. */ ++ if (push_new_name_resolution_context(thd, (yyvsp[-3].table_list), (yyvsp[-1].table_list))) ++ MYSQL_YYABORT; ++ Select->parsing_place= IN_ON; ++ } ++#line 28039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1399: ++#line 9681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[-3].table_list)->straight=1; ++ add_join_on((yyvsp[-3].table_list),(yyvsp[0].item)); ++ Lex->pop_context(); ++ Select->parsing_place= NO_MATTER; ++ } ++#line 28050 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1400: ++#line 9689 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); ++ } ++#line 28058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1401: ++#line 9693 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { add_join_natural((yyvsp[-7].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyval.table_list)=(yyvsp[-5].table_list); } ++#line 28064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1402: ++#line 9695 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); ++ add_join_natural((yyvsp[-3].table_list),(yyvsp[0].table_list),NULL,Select); ++ } ++#line 28073 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1403: ++#line 9703 "/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. */ ++ if (push_new_name_resolution_context(thd, (yyvsp[-5].table_list), (yyvsp[-1].table_list))) ++ MYSQL_YYABORT; ++ Select->parsing_place= IN_ON; ++ } ++#line 28085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1404: ++#line 9711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ add_join_on((yyvsp[-3].table_list),(yyvsp[0].item)); ++ Lex->pop_context(); ++ (yyvsp[-3].table_list)->outer_join|=JOIN_TYPE_LEFT; ++ (yyval.table_list)=(yyvsp[-3].table_list); ++ Select->parsing_place= NO_MATTER; ++ } ++#line 28097 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1405: ++#line 9719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); ++ } ++#line 28105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1406: ++#line 9723 "/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 28115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1407: ++#line 9729 "/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 28126 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1408: ++#line 9739 "/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. */ ++ if (push_new_name_resolution_context(thd, (yyvsp[-5].table_list), (yyvsp[-1].table_list))) ++ MYSQL_YYABORT; ++ Select->parsing_place= IN_ON; ++ } ++#line 28138 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1409: ++#line 9747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (!((yyval.table_list)= lex->current_select->convert_right_join())) ++ MYSQL_YYABORT; ++ add_join_on((yyval.table_list), (yyvsp[0].item)); ++ Lex->pop_context(); ++ Select->parsing_place= NO_MATTER; ++ } ++#line 28151 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1410: ++#line 9756 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); ++ } ++#line 28159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1411: ++#line 9760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (!((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 28170 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1412: ++#line 9767 "/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); ++ LEX *lex= Lex; ++ if (!((yyval.table_list)= lex->current_select->convert_right_join())) ++ MYSQL_YYABORT; ++ } ++#line 28182 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1413: ++#line 9777 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28188 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1414: ++#line 9778 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1415: ++#line 9779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1416: ++#line 9791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *sel= Select; ++ sel->table_join_options= 0; ++ } ++#line 28209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1417: ++#line 9796 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), ++ Select->get_table_join_options(), ++ YYPS->m_lock_type, ++ YYPS->m_mdl_type, ++ Select->pop_index_hints()))) ++ MYSQL_YYABORT; ++ Select->add_joined_table((yyval.table_list)); ++ } ++#line 28223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1418: ++#line 9806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX *sel= lex->current_select; ++ if ((yyvsp[-2].num)) ++ { ++ if (sel->set_braces(1)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ /* select in braces, can't contain global parameters */ ++ if (sel->master_unit()->fake_select_lex) ++ sel->master_unit()->global_parameters= ++ sel->master_unit()->fake_select_lex; ++ } ++ if ((yyvsp[-1].select_lex)->init_nested_join(lex->thd)) ++ MYSQL_YYABORT; ++ (yyval.table_list)= 0; ++ /* incomplete derived tables return NULL, we must be ++ nested in select_derived rule to be here. */ ++ } ++#line 28249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1419: ++#line 9846 "/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. */ ++ if (!((yyvsp[-2].table_list) || (yyvsp[0].lex_str_ptr)) && (yyvsp[-3].select_lex)->embedding && ++ !(yyvsp[-3].select_lex)->embedding->nested_join->join_list.elements) ++ { ++ /* we have a derived table ($3 == NULL) but no alias, ++ Since we are nested in further parentheses so we ++ can pass NULL to the outer level parentheses ++ Permits parsing of "((((select ...))) as xyz)" */ ++ (yyval.table_list)= 0; ++ } ++ else if (!(yyvsp[-2].table_list)) ++ { ++ /* Handle case of derived table, alias may be NULL if there ++ are no outer parentheses, add_table_to_list() will throw ++ error in this case */ ++ LEX *lex=Lex; ++ SELECT_LEX *sel= lex->current_select; ++ SELECT_LEX_UNIT *unit= sel->master_unit(); ++ lex->current_select= sel= unit->outer_select(); ++ Table_ident *ti= new Table_ident(unit); ++ if (ti == NULL) ++ MYSQL_YYABORT; ++ if (!((yyval.table_list)= sel->add_table_to_list(lex->thd, ++ new Table_ident(unit), (yyvsp[0].lex_str_ptr), 0, ++ TL_READ, MDL_SHARED_READ))) ++ ++ MYSQL_YYABORT; ++ sel->add_joined_table((yyval.table_list)); ++ lex->pop_context(); ++ lex->nest_level--; ++ } ++ /*else if (($3->select_lex && ++ $3->select_lex->master_unit()->is_union() && ++ ($3->select_lex->master_unit()->first_select() == ++ $3->select_lex || !$3->lifted)) || $5)*/ ++ else if ((yyvsp[0].lex_str_ptr) != NULL) ++ { ++ /* ++ Tables with or without joins within parentheses cannot ++ have aliases, and we ruled out derived tables above. ++ */ ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ /* nested join: FROM (t1 JOIN t2 ...), ++ nest_level is the same as in the outer query */ ++ (yyval.table_list)= (yyvsp[-2].table_list); ++ } ++ /* ++ Fields in derived table can be used in upper select in ++ case of merge. We do not add HAVING fields because we do ++ not merge such derived. We do not add union because ++ also do not merge them ++ */ ++ if ((yyval.table_list) && (yyval.table_list)->derived && ++ !(yyval.table_list)->derived->first_select()->next_select()) ++ (yyval.table_list)->select_lex->add_where_field((yyval.table_list)->derived->first_select()); ++ } ++#line 28316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1420: ++#line 9931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if ((yyvsp[-1].table_list) && (yyvsp[0].is_not_empty)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 28328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1421: ++#line 9941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_select_to_union_list(Lex, (bool)(yyvsp[0].num), FALSE)) ++ MYSQL_YYABORT; ++ } ++#line 28337 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1422: ++#line 9946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Remove from the name resolution context stack the context of the ++ last select in the union. ++ */ ++ Lex->pop_context(); ++ } ++#line 28349 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1423: ++#line 9954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if ((yyvsp[-6].table_list) != NULL) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 28361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1424: ++#line 9966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX * sel= lex->current_select; ++ if (lex->current_select->set_braces(0)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (sel->linkage == UNION_TYPE && ++ sel->master_unit()->first_select()->braces) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 28381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1425: ++#line 9985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX *sel= lex->current_select; ++ if (sel->linkage != UNION_TYPE) ++ mysql_init_select(lex); ++ lex->current_select->parsing_place= SELECT_LIST; ++ } ++#line 28393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1426: ++#line 9993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= NO_MATTER; ++ } ++#line 28401 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1428: ++#line 10002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if ((yyvsp[0].select_lex)->init_nested_join(lex->thd)) ++ MYSQL_YYABORT; ++ } ++#line 28411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1429: ++#line 10008 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ /* for normal joins, $3 != NULL and end_nested_join() != NULL, ++ for derived tables, both must equal NULL */ ++ ++ if (!((yyval.table_list)= (yyvsp[-2].select_lex)->end_nested_join(lex->thd)) && (yyvsp[0].table_list)) ++ MYSQL_YYABORT; ++ if (!(yyvsp[0].table_list) && (yyval.table_list)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 28429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1430: ++#line 10024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->derived_tables|= DERIVED_SUBQUERY; ++ if (!lex->expr_allows_subselect || ++ lex->sql_command == (int)SQLCOM_PURGE) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE || ++ mysql_new_select(lex, 1)) ++ MYSQL_YYABORT; ++ mysql_init_select(lex); ++ lex->current_select->linkage= DERIVED_TABLE_TYPE; ++ lex->current_select->parsing_place= SELECT_LIST; ++ } ++#line 28450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1431: ++#line 10041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= NO_MATTER; ++ } ++#line 28458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1433: ++#line 10048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.select_lex)= Select; } ++#line 28464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1434: ++#line 10053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (! lex->parsing_options.allows_derived) ++ { ++ my_error(ER_VIEW_SELECT_DERIVED, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ ++ SELECT_LEX *sel= lex->current_select; ++ TABLE_LIST *embedding; ++ if (!sel->embedding || sel->end_nested_join(lex->thd)) ++ { ++ /* we are not in parentheses */ ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ embedding= Select->embedding; ++ (yyval.num)= embedding && ++ !embedding->nested_join->join_list.elements; ++ /* return true if we are deeply nested */ ++ } ++#line 28491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1435: ++#line 10078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1436: ++#line 10079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28503 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1437: ++#line 10084 "/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 28511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1438: ++#line 10087 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= INDEX_HINT_MASK_JOIN; } ++#line 28517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1439: ++#line 10088 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= INDEX_HINT_MASK_ORDER; } ++#line 28523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1440: ++#line 10089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= INDEX_HINT_MASK_GROUP; } ++#line 28529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1441: ++#line 10093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.index_hint)= INDEX_HINT_FORCE; } ++#line 28535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1442: ++#line 10094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.index_hint)= INDEX_HINT_IGNORE; } ++#line 28541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1443: ++#line 10099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num)); ++ } ++#line 28549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1445: ++#line 10104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num)); ++ } ++#line 28557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1450: ++#line 10117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->alloc_index_hints(thd); } ++#line 28563 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1452: ++#line 10121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->clear_index_hints(); } ++#line 28569 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1454: ++#line 10126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->add_index_hint(thd, NULL, 0); } ++#line 28575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1455: ++#line 10127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28581 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1456: ++#line 10132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->add_index_hint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } ++#line 28587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1457: ++#line 10134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->add_index_hint(thd, (char *)"PRIMARY", 7); } ++#line 28593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1460: ++#line 10144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.string_list)= new List)) ++ MYSQL_YYABORT; ++ String *s= new (thd->mem_root) String((const char *) (yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).length, ++ system_charset_info); ++ if (s == NULL) ++ MYSQL_YYABORT; ++ (yyval.string_list)->push_back(s); ++ } ++#line 28608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1461: ++#line 10155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ String *s= new (thd->mem_root) String((const char *) (yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).length, ++ system_charset_info); ++ if (s == NULL) ++ MYSQL_YYABORT; ++ (yyvsp[-2].string_list)->push_back(s); ++ (yyval.string_list)= (yyvsp[-2].string_list); ++ } ++#line 28622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1462: ++#line 10167 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28628 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1463: ++#line 10168 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_DAY_HOUR; } ++#line 28634 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1464: ++#line 10169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_DAY_MICROSECOND; } ++#line 28640 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1465: ++#line 10170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_DAY_MINUTE; } ++#line 28646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1466: ++#line 10171 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_DAY_SECOND; } ++#line 28652 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1467: ++#line 10172 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; } ++#line 28658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1468: ++#line 10173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_HOUR_MINUTE; } ++#line 28664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1469: ++#line 10174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_HOUR_SECOND; } ++#line 28670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1470: ++#line 10175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; } ++#line 28676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1471: ++#line 10176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_MINUTE_SECOND; } ++#line 28682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1472: ++#line 10177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; } ++#line 28688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1473: ++#line 10178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval)=INTERVAL_YEAR_MONTH; } ++#line 28694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1474: ++#line 10182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_DAY; } ++#line 28700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1475: ++#line 10183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_WEEK; } ++#line 28706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1476: ++#line 10184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_HOUR; } ++#line 28712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1477: ++#line 10185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_MINUTE; } ++#line 28718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1478: ++#line 10186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_MONTH; } ++#line 28724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1479: ++#line 10187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_QUARTER; } ++#line 28730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1480: ++#line 10188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_SECOND; } ++#line 28736 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1481: ++#line 10189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_MICROSECOND; } ++#line 28742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1482: ++#line 10190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.interval_time_st)=INTERVAL_YEAR; } ++#line 28748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1483: ++#line 10194 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;} ++#line 28754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1484: ++#line 10195 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;} ++#line 28760 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1485: ++#line 10196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} ++#line 28766 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1486: ++#line 10197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} ++#line 28772 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1490: ++#line 10207 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str_ptr)=0; } ++#line 28778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1491: ++#line 10209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str),sizeof(LEX_STRING)); ++ if ((yyval.lex_str_ptr) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 28788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1494: ++#line 10222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->where= 0; } ++#line 28794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1495: ++#line 10224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= IN_WHERE; ++ } ++#line 28802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1496: ++#line 10228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *select= Select; ++ select->where= normalize_cond((yyvsp[0].item)); ++ select->parsing_place= NO_MATTER; ++ if ((yyvsp[0].item)) ++ (yyvsp[0].item)->top_level_item(); ++ } ++#line 28814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1498: ++#line 10240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= IN_HAVING; ++ } ++#line 28822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1499: ++#line 10244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *sel= Select; ++ sel->having= normalize_cond((yyvsp[0].item)); ++ sel->parsing_place= NO_MATTER; ++ if ((yyvsp[0].item)) ++ (yyvsp[0].item)->top_level_item(); ++ } ++#line 28834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1500: ++#line 10255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->escape_used= TRUE; ++ (yyval.item)= (yyvsp[0].item); ++ } ++#line 28843 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1501: ++#line 10260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->escape_used= FALSE; ++ (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ? ++ new (thd->mem_root) Item_string("", 0, &my_charset_latin1) : ++ new (thd->mem_root) Item_string("\\", 1, &my_charset_latin1)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 28856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1504: ++#line 10281 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { if (add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } ++#line 28862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1505: ++#line 10283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { if (add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } ++#line 28868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1506: ++#line 10287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 28874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1507: ++#line 10289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ 'WITH CUBE' is reserved in the MySQL syntax, but not implemented, ++ and cause LALR(2) conflicts. ++ This syntax is not standard. ++ MySQL syntax: GROUP BY col1, col2, col3 WITH CUBE ++ SQL-2003: GROUP BY ... CUBE(col1, col2, col3) ++ */ ++ LEX *lex=Lex; ++ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE", ++ "global union parameters"); ++ MYSQL_YYABORT; ++ } ++ lex->current_select->olap= CUBE_TYPE; ++ my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE"); ++ MYSQL_YYABORT; ++ } ++#line 28898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1508: ++#line 10309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ 'WITH ROLLUP' is needed for backward compatibility, ++ and cause LALR(2) conflicts. ++ This syntax is not standard. ++ MySQL syntax: GROUP BY col1, col2, col3 WITH ROLLUP ++ SQL-2003: GROUP BY ... ROLLUP(col1, col2, col3) ++ */ ++ LEX *lex= Lex; ++ if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP", ++ "global union parameters"); ++ MYSQL_YYABORT; ++ } ++ lex->current_select->olap= ROLLUP_TYPE; ++ } ++#line 28920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1512: ++#line 10343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ bool ascending= ((yyvsp[0].num) == 1) ? true : false; ++ if (add_order_to_list(thd, (yyvsp[-1].item), ascending)) ++ MYSQL_YYABORT; ++ } ++#line 28930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1515: ++#line 10361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ SELECT_LEX *sel= lex->current_select; ++ SELECT_LEX_UNIT *unit= sel-> master_unit(); ++ if (sel->linkage != GLOBAL_OPTIONS_TYPE && ++ sel->olap != UNSPECIFIED_OLAP_TYPE && ++ (sel->linkage != UNION_TYPE || sel->braces)) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), ++ "CUBE/ROLLUP", "ORDER BY"); ++ MYSQL_YYABORT; ++ } ++ if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex) ++ { ++ /* ++ A query of the of the form (SELECT ...) ORDER BY order_list is ++ executed in the same way as the query ++ SELECT ... ORDER BY order_list ++ unless the SELECT construct contains ORDER BY or LIMIT clauses. ++ Otherwise we create a fake SELECT_LEX if it has not been created ++ yet. ++ */ ++ SELECT_LEX *first_sl= unit->first_select(); ++ if (!unit->is_union() && ++ (first_sl->order_list.elements || ++ first_sl->select_limit) && ++ unit->add_fake_select_lex(lex->thd)) ++ MYSQL_YYABORT; ++ } ++ } ++#line 28965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1517: ++#line 10396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { if (add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } ++#line 28971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1518: ++#line 10398 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { if (add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } ++#line 28977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1519: ++#line 10402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) = 1; } ++#line 28983 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1520: ++#line 10403 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) =1; } ++#line 28989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1521: ++#line 10404 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num) =0; } ++#line 28995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1522: ++#line 10409 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ SELECT_LEX *sel= lex->current_select; ++ sel->offset_limit= 0; ++ sel->select_limit= 0; ++ lex->limit_rows_examined= 0; ++ } ++#line 29007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1523: ++#line 10416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1524: ++#line 10420 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29019 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1525: ++#line 10421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1526: ++#line 10426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); ++ } ++#line 29033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1527: ++#line 10430 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); ++ } ++#line 29041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1528: ++#line 10434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); ++ } ++#line 29049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1529: ++#line 10441 "/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 29060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1530: ++#line 10448 "/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 29071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1531: ++#line 10455 "/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 29082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1532: ++#line 10465 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item_splocal *splocal; ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= & thd->m_parser_state->m_lip; ++ sp_variable_t *spv; ++ sp_pcontext *spc = lex->spcont; ++ if (spc && (spv = spc->find_variable(&(yyvsp[0].lex_str)))) ++ { ++ splocal= new (thd->mem_root) ++ Item_splocal((yyvsp[0].lex_str), spv->offset, spv->type, ++ lip->get_tok_start() - lex->sphead->m_tmp_query, ++ lip->get_ptr() - lip->get_tok_start()); ++ if (splocal == NULL) ++ MYSQL_YYABORT; ++#ifndef DBUG_OFF ++ splocal->m_sp= lex->sphead; ++#endif ++ lex->safe_to_cache_query=0; ++ } ++ else ++ { ++ my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (splocal->type() != Item::INT_ITEM) ++ { ++ my_error(ER_WRONG_SPVAR_TYPE_IN_LIMIT, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ splocal->limit_clause_param= TRUE; ++ (yyval.item)= splocal; ++ } ++#line 29119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1533: ++#line 10498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ ((Item_param *) (yyvsp[0].item))->limit_clause_param= TRUE; ++ } ++#line 29127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1534: ++#line 10502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 29137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1535: ++#line 10508 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 29147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1536: ++#line 10514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 29157 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1537: ++#line 10523 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->limit_rows_examined= (yyvsp[0].item); ++ } ++#line 29166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1538: ++#line 10530 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->current_select->select_limit= 0; ++ } ++#line 29175 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1539: ++#line 10535 "/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 29186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1540: ++#line 10541 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } ++#line 29192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1541: ++#line 10542 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } ++#line 29198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1542: ++#line 10546 "/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 29204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1543: ++#line 10547 "/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 29210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1544: ++#line 10548 "/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 29216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1545: ++#line 10552 "/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 29222 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1546: ++#line 10553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } ++#line 29228 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1547: ++#line 10554 "/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 29234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1548: ++#line 10555 "/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 29240 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1549: ++#line 10556 "/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 29246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1550: ++#line 10557 "/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 29252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1551: ++#line 10561 "/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 29258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1552: ++#line 10562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } ++#line 29264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1553: ++#line 10563 "/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 29270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1554: ++#line 10564 "/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 29276 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1555: ++#line 10565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { MYSQL_YYABORT; } ++#line 29282 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1556: ++#line 10569 "/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 29288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1557: ++#line 10570 "/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 29294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1558: ++#line 10571 "/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 29300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1559: ++#line 10572 "/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 29306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1560: ++#line 10573 "/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 29312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1561: ++#line 10577 "/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 29318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1562: ++#line 10578 "/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 29324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1563: ++#line 10579 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } ++#line 29330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1564: ++#line 10580 "/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 29336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1565: ++#line 10581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { MYSQL_YYABORT; } ++#line 29342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1566: ++#line 10586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); } ++#line 29348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1569: ++#line 10595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.choice)= (yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; } ++#line 29354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1570: ++#line 10596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.choice)= HA_CHOICE_UNDEF; } ++#line 29360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1572: ++#line 10602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ ++ if (! lex->parsing_options.allows_select_procedure) ++ { ++ my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "PROCEDURE"); ++ MYSQL_YYABORT; ++ } ++ ++ if (&lex->select_lex != lex->current_select) ++ { ++ my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery"); ++ MYSQL_YYABORT; ++ } ++ lex->proc_list.elements=0; ++ lex->proc_list.first=0; ++ lex->proc_list.next= &lex->proc_list.first; ++ Item_field *item= new (thd->mem_root) ++ Item_field(&lex->current_select->context, ++ NULL, NULL, (yyvsp[0].lex_str).str); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ if (add_proc_to_list(lex->thd, item)) ++ MYSQL_YYABORT; ++ Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); ++ ++ /* ++ PROCEDURE CLAUSE cannot handle subquery as one of its parameter, ++ so set expr_allows_subselect as false to disallow any subqueries ++ further. Reset expr_allows_subselect back to true once the ++ parameters are reduced. ++ */ ++ Lex->expr_allows_subselect= false; ++ } ++#line 29399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1573: ++#line 10637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* Subqueries are allowed from now.*/ ++ Lex->expr_allows_subselect= true; ++ } ++#line 29408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1574: ++#line 10644 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1575: ++#line 10645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1578: ++#line 10655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_proc_to_list(thd, (yyvsp[-1].item))) ++ MYSQL_YYABORT; ++ if (!(yyvsp[-1].item)->name) ++ (yyvsp[-1].item)->set_name((yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); ++ } ++#line 29431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1579: ++#line 10664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (!lex->describe && (!(lex->result= new select_dumpvar()))) ++ MYSQL_YYABORT; ++ } ++#line 29441 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1580: ++#line 10670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1582: ++#line 10675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29453 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1583: ++#line 10680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->result) ++ { ++ my_var *var= new my_var((yyvsp[0].lex_str),0,0,(enum_field_types)0); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ ((select_dumpvar *)lex->result)->var_list.push_back(var); ++ } ++ else ++ { ++ /* ++ The parser won't create select_result instance only ++ if it's an EXPLAIN. ++ */ ++ DBUG_ASSERT(lex->describe); ++ } ++ } ++#line 29476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1584: ++#line 10699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ sp_variable_t *t; ++ ++ if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[0].lex_str)))) ++ { ++ my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (lex->result) ++ { ++ my_var *var= new my_var((yyvsp[0].lex_str),1,t->offset,t->type); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ ((select_dumpvar *)lex->result)->var_list.push_back(var); ++#ifndef DBUG_OFF ++ var->sp= lex->sphead; ++#endif ++ } ++ else ++ { ++ /* ++ The parser won't create select_result instance only ++ if it's an EXPLAIN. ++ */ ++ DBUG_ASSERT(lex->describe); ++ } ++ } ++#line 29509 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1585: ++#line 10731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (! Lex->parsing_options.allows_select_into) ++ { ++ my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 29521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1587: ++#line 10743 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->uncacheable(UNCACHEABLE_SIDEEFFECT); ++ if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str, 0)) || ++ !(lex->result= new select_export(lex->exchange))) ++ MYSQL_YYABORT; ++ } ++#line 29533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1588: ++#line 10751 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->exchange->cs= (yyvsp[0].charset); } ++#line 29539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1590: ++#line 10754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (!lex->describe) ++ { ++ lex->uncacheable(UNCACHEABLE_SIDEEFFECT); ++ if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str,1))) ++ MYSQL_YYABORT; ++ if (!(lex->result= new select_dump(lex->exchange))) ++ MYSQL_YYABORT; ++ } ++ } ++#line 29555 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1591: ++#line 10766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); ++ } ++#line 29563 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1592: ++#line 10777 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_DO; ++ mysql_init_select(lex); ++ } ++#line 29573 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1593: ++#line 10783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->insert_list= (yyvsp[0].item_list); ++ } ++#line 29581 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1594: ++#line 10794 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_DROP_TABLE; ++ lex->drop_temporary= (yyvsp[-2].num); ++ lex->drop_if_exists= (yyvsp[0].num); ++ YYPS->m_lock_type= TL_UNLOCK; ++ YYPS->m_mdl_type= MDL_EXCLUSIVE; ++ } ++#line 29594 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1595: ++#line 10803 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29600 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1596: ++#line 10804 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1597: ++#line 10805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[-3].lex_str).str); ++ if (ad == NULL) ++ MYSQL_YYABORT; ++ lex->sql_command= SQLCOM_DROP_INDEX; ++ lex->alter_info.reset(); ++ lex->alter_info.flags= ALTER_DROP_INDEX; ++ lex->alter_info.drop_list.push_back(ad); ++ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), NULL, ++ TL_OPTION_UPDATING, ++ TL_READ_NO_INSERT, ++ MDL_SHARED_NO_WRITE)) ++ MYSQL_YYABORT; ++ } ++#line 29626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1598: ++#line 10821 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_DROP_DB; ++ lex->drop_if_exists=(yyvsp[-1].num); ++ lex->name= (yyvsp[0].lex_str); ++ } ++#line 29637 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1599: ++#line 10828 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ sp_name *spname; ++ if ((yyvsp[-2].lex_str).str && check_db_name(&(yyvsp[-2].lex_str))) ++ { ++ my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-2].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command = SQLCOM_DROP_FUNCTION; ++ lex->drop_if_exists= (yyvsp[-3].num); ++ spname= new sp_name((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true); ++ if (spname == NULL) ++ MYSQL_YYABORT; ++ spname->init_qname(thd); ++ lex->spname= spname; ++ } ++#line 29663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1600: ++#line 10850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ LEX_STRING db= {0, 0}; ++ sp_name *spname; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION"); ++ MYSQL_YYABORT; ++ } ++ if (thd->db && lex->copy_db_to(&db.str, &db.length)) ++ MYSQL_YYABORT; ++ lex->sql_command = SQLCOM_DROP_FUNCTION; ++ lex->drop_if_exists= (yyvsp[-1].num); ++ spname= new sp_name(db, (yyvsp[0].lex_str), false); ++ if (spname == NULL) ++ MYSQL_YYABORT; ++ spname->init_qname(thd); ++ lex->spname= spname; ++ } ++#line 29687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1601: ++#line 10870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command = SQLCOM_DROP_PROCEDURE; ++ lex->drop_if_exists= (yyvsp[-1].num); ++ lex->spname= (yyvsp[0].spname); ++ } ++#line 29703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1602: ++#line 10882 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_DROP_USER; ++ } ++#line 29711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1603: ++#line 10886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_DROP_VIEW; ++ lex->drop_if_exists= (yyvsp[0].num); ++ YYPS->m_lock_type= TL_UNLOCK; ++ YYPS->m_mdl_type= MDL_EXCLUSIVE; ++ } ++#line 29723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1604: ++#line 10894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1605: ++#line 10896 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->drop_if_exists= (yyvsp[-1].num); ++ Lex->spname= (yyvsp[0].spname); ++ Lex->sql_command = SQLCOM_DROP_EVENT; ++ } ++#line 29739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1606: ++#line 10902 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_DROP_TRIGGER; ++ lex->drop_if_exists= (yyvsp[-1].num); ++ lex->spname= (yyvsp[0].spname); ++ } ++#line 29750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1607: ++#line 10909 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE; ++ } ++#line 29759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1608: ++#line 10914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP; ++ } ++#line 29768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1609: ++#line 10919 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_DROP_SERVER; ++ Lex->drop_if_exists= (yyvsp[-1].num); ++ Lex->server_options.server_name= (yyvsp[0].lex_str).str; ++ Lex->server_options.server_name_length= (yyvsp[0].lex_str).length; ++ } ++#line 29779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1612: ++#line 10934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, ++ TL_OPTION_UPDATING, ++ YYPS->m_lock_type, ++ YYPS->m_mdl_type)) ++ MYSQL_YYABORT; ++ } ++#line 29791 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1615: ++#line 10950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, ++ TL_OPTION_UPDATING | TL_OPTION_ALIAS, ++ YYPS->m_lock_type, ++ YYPS->m_mdl_type)) ++ MYSQL_YYABORT; ++ } ++#line 29803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1616: ++#line 10960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 29809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1617: ++#line 10961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 29815 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1618: ++#line 10965 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 29821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1619: ++#line 10966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 29827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1620: ++#line 10974 "/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 29838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1621: ++#line 10982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->set_lock_for_tables((yyvsp[-2].lock_type)); ++ Lex->current_select= &Lex->select_lex; ++ } ++#line 29847 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1622: ++#line 10987 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1623: ++#line 10992 "/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 29864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1624: ++#line 10999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->set_lock_for_tables((yyvsp[-1].lock_type)); ++ Lex->current_select= &Lex->select_lex; ++ } ++#line 29873 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1625: ++#line 11004 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1626: ++#line 11009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ If it is SP we do not allow insert optimisation when result of ++ insert visible only after the table unlocking but everyone can ++ read table. ++ */ ++ (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); ++ } ++#line 29892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1627: ++#line 11017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } ++#line 29898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1628: ++#line 11019 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() - ++ thd->query()); ++ Lex->keyword_delayed_end_offset= Lex->keyword_delayed_begin_offset + ++ YYLIP->yyLength() + 1; ++ (yyval.lock_type)= TL_WRITE_DELAYED; ++ } ++#line 29910 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1629: ++#line 11026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= TL_WRITE; } ++#line 29916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1630: ++#line 11030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= (yyvsp[0].lock_type); } ++#line 29922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1631: ++#line 11032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() - ++ thd->query()); ++ Lex->keyword_delayed_end_offset= Lex->keyword_delayed_begin_offset + ++ YYLIP->yyLength() + 1; ++ (yyval.lock_type)= TL_WRITE_DELAYED; ++ } ++#line 29934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1632: ++#line 11042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1633: ++#line 11043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1634: ++#line 11048 "/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 29957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1635: ++#line 11056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29963 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1636: ++#line 11057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29969 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1637: ++#line 11058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 29975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1638: ++#line 11060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (!(lex->insert_list = new List_item) || ++ lex->many_values.push_back(lex->insert_list)) ++ MYSQL_YYABORT; ++ } ++#line 29986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1640: ++#line 11070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->field_list.push_back((yyvsp[0].item)); } ++#line 29992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1641: ++#line 11071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->field_list.push_back((yyvsp[0].item)); } ++#line 29998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1642: ++#line 11075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1643: ++#line 11076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1644: ++#line 11078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->set_braces(0);} ++#line 30016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1645: ++#line 11079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1646: ++#line 11081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->set_braces(1);} ++#line 30028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1647: ++#line 11082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1652: ++#line 11097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->field_list.push_back((yyvsp[-2].item)) || ++ lex->insert_list->push_back((yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++#line 30045 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1653: ++#line 11106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30051 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1654: ++#line 11107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1655: ++#line 11111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30063 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1656: ++#line 11112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30069 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1657: ++#line 11117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!(Lex->insert_list = new List_item)) ++ MYSQL_YYABORT; ++ } ++#line 30078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1658: ++#line 11122 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->many_values.push_back(lex->insert_list)) ++ MYSQL_YYABORT; ++ } ++#line 30088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1659: ++#line 11130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1661: ++#line 11136 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->insert_list->push_back((yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++#line 30103 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1662: ++#line 11141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->insert_list->push_back((yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++#line 30112 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1663: ++#line 11148 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item);} ++#line 30118 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1664: ++#line 11150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_default_value(Lex->current_context()); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 30128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1666: ++#line 11159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->duplicates= DUP_UPDATE; } ++#line 30134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1668: ++#line 11167 "/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 30145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1669: ++#line 11175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->select_lex.table_list.elements > 1) ++ lex->sql_command= SQLCOM_UPDATE_MULTI; ++ else if (lex->select_lex.get_table_list()->derived) ++ { ++ /* it is single table update and it is update of derived table */ ++ my_error(ER_NON_UPDATABLE_TABLE, MYF(0), ++ lex->select_lex.get_table_list()->alias, "UPDATE"); ++ MYSQL_YYABORT; ++ } ++ /* ++ In case of multi-update setting write lock for all tables may ++ be too pessimistic. We will decrease lock level if possible in ++ mysql_multi_update(). ++ */ ++ Select->set_lock_for_tables((yyvsp[-4].lock_type)); ++ } ++#line 30168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1670: ++#line 11193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30174 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1673: ++#line 11203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_item_to_list(thd, (yyvsp[-2].item)) || add_value_to_list(thd, (yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++#line 30183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1676: ++#line 11216 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->update_list.push_back((yyvsp[-2].item)) || ++ lex->value_list.push_back((yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++#line 30194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1677: ++#line 11225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= TL_WRITE_DEFAULT; } ++#line 30200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1678: ++#line 11226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } ++#line 30206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1679: ++#line 11233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_DELETE; ++ mysql_init_select(lex); ++ YYPS->m_lock_type= TL_WRITE_DEFAULT; ++ YYPS->m_mdl_type= MDL_SHARED_WRITE; ++ ++ lex->ignore= 0; ++ lex->select_lex.init_order(); ++ } ++#line 30221 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1681: ++#line 11248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, ++ YYPS->m_lock_type, ++ YYPS->m_mdl_type)) ++ MYSQL_YYABORT; ++ YYPS->m_lock_type= TL_READ_DEFAULT; ++ YYPS->m_mdl_type= MDL_SHARED_READ; ++ } ++#line 30234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1682: ++#line 11257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30240 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1683: ++#line 11259 "/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 30250 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1684: ++#line 11265 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (multi_delete_set_locks_and_link_aux_tables(Lex)) ++ MYSQL_YYABORT; ++ } ++#line 30259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1685: ++#line 11270 "/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 30269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1686: ++#line 11276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (multi_delete_set_locks_and_link_aux_tables(Lex)) ++ MYSQL_YYABORT; ++ } ++#line 30278 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1689: ++#line 11289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Table_ident *ti= new Table_ident((yyvsp[-1].lex_str)); ++ if (ti == NULL) ++ MYSQL_YYABORT; ++ if (!Select->add_table_to_list(thd, ++ ti, ++ NULL, ++ TL_OPTION_UPDATING | TL_OPTION_ALIAS, ++ YYPS->m_lock_type, ++ YYPS->m_mdl_type)) ++ MYSQL_YYABORT; ++ } ++#line 30295 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1690: ++#line 11302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Table_ident *ti= new Table_ident(thd, (yyvsp[-3].lex_str), (yyvsp[-1].lex_str), 0); ++ if (ti == NULL) ++ MYSQL_YYABORT; ++ if (!Select->add_table_to_list(thd, ++ ti, ++ NULL, ++ TL_OPTION_UPDATING | TL_OPTION_ALIAS, ++ YYPS->m_lock_type, ++ YYPS->m_mdl_type)) ++ MYSQL_YYABORT; ++ } ++#line 30312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1691: ++#line 11317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1692: ++#line 11318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1693: ++#line 11322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1694: ++#line 11323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 30336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1695: ++#line 11327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->options|= OPTION_QUICK; } ++#line 30342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1696: ++#line 11328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } ++#line 30348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1697: ++#line 11329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ignore= 1; } ++#line 30354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1698: ++#line 11334 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX* lex= Lex; ++ lex->sql_command= SQLCOM_TRUNCATE; ++ lex->alter_info.reset(); ++ lex->select_lex.options= 0; ++ lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED; ++ lex->select_lex.init_order(); ++ YYPS->m_lock_type= TL_WRITE; ++ YYPS->m_mdl_type= MDL_EXCLUSIVE; ++ } ++#line 30369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1699: ++#line 11345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX* lex= thd->lex; ++ DBUG_ASSERT(!lex->m_stmt); ++ lex->m_stmt= new (thd->mem_root) Truncate_statement(lex); ++ if (lex->m_stmt == NULL) ++ MYSQL_YYABORT; ++ } ++#line 30381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1706: ++#line 11369 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_CPU; ++ } ++#line 30389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1707: ++#line 11373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_MEMORY; ++ } ++#line 30397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1708: ++#line 11377 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_BLOCK_IO; ++ } ++#line 30405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1709: ++#line 11381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_CONTEXT; ++ } ++#line 30413 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1710: ++#line 11385 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_PAGE_FAULTS; ++ } ++#line 30421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1711: ++#line 11389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_IPC; ++ } ++#line 30429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1712: ++#line 11393 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_SWAPS; ++ } ++#line 30437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1713: ++#line 11397 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_SOURCE; ++ } ++#line 30445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1714: ++#line 11401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_options|= PROFILE_ALL; ++ } ++#line 30453 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1715: ++#line 11408 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_query_id= 0; ++ } ++#line 30461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1716: ++#line 11412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->profile_query_id= atoi((yyvsp[0].lex_str).str); ++ } ++#line 30469 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1717: ++#line 11421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->wild=0; ++ mysql_init_select(lex); ++ lex->current_select->parsing_place= SELECT_LIST; ++ bzero((char*) &lex->create_info,sizeof(lex->create_info)); ++ } ++#line 30481 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1718: ++#line 11429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= NO_MATTER; ++ } ++#line 30489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1719: ++#line 11436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_DATABASES; ++ if (prepare_schema_table(thd, lex, 0, SCH_SCHEMATA)) ++ MYSQL_YYABORT; ++ } ++#line 30500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1720: ++#line 11443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_TABLES; ++ lex->select_lex.db= (yyvsp[-1].simple_string); ++ if (prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES)) ++ MYSQL_YYABORT; ++ } ++#line 30512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1721: ++#line 11451 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_TRIGGERS; ++ lex->select_lex.db= (yyvsp[-1].simple_string); ++ if (prepare_schema_table(thd, lex, 0, SCH_TRIGGERS)) ++ MYSQL_YYABORT; ++ } ++#line 30524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1722: ++#line 11459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_EVENTS; ++ lex->select_lex.db= (yyvsp[-1].simple_string); ++ if (prepare_schema_table(thd, lex, 0, SCH_EVENTS)) ++ MYSQL_YYABORT; ++ } ++#line 30536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1723: ++#line 11467 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; ++ lex->select_lex.db= (yyvsp[-1].simple_string); ++ if (prepare_schema_table(thd, lex, 0, SCH_TABLES)) ++ MYSQL_YYABORT; ++ } ++#line 30548 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1724: ++#line 11475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; ++ lex->select_lex.db= (yyvsp[-1].simple_string); ++ if (prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES)) ++ MYSQL_YYABORT; ++ } ++#line 30560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1725: ++#line 11483 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_PLUGINS; ++ if (prepare_schema_table(thd, lex, 0, SCH_PLUGINS)) ++ MYSQL_YYABORT; ++ } ++#line 30571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1726: ++#line 11490 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_info.db_type= (yyvsp[-1].db_type); } ++#line 30577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1727: ++#line 11492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_info.db_type= NULL; } ++#line 30583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1728: ++#line 11494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_FIELDS; ++ if ((yyvsp[-1].simple_string)) ++ (yyvsp[-2].table)->change_db((yyvsp[-1].simple_string)); ++ if (prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_COLUMNS)) ++ MYSQL_YYABORT; ++ } ++#line 30596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1729: ++#line 11503 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_SHOW_BINLOGS; ++ } ++#line 30604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1730: ++#line 11507 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS; ++ } ++#line 30612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1731: ++#line 11511 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; ++ } ++#line 30621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1733: ++#line 11516 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS; ++ } ++#line 30630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1735: ++#line 11521 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_KEYS; ++ if ((yyvsp[-1].simple_string)) ++ (yyvsp[-2].table)->change_db((yyvsp[-1].simple_string)); ++ if (prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_STATISTICS)) ++ MYSQL_YYABORT; ++ } ++#line 30643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1736: ++#line 11530 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; ++ if (prepare_schema_table(thd, lex, 0, SCH_ENGINES)) ++ MYSQL_YYABORT; ++ } ++#line 30654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1737: ++#line 11537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SHOW_AUTHORS; ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ++ ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT, ++ ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT), ++ "SHOW AUTHORS"); ++ } ++#line 30667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1738: ++#line 11546 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; ++ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ++ ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT, ++ ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT), ++ "SHOW CONTRIBUTORS"); ++ } ++#line 30680 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1739: ++#line 11555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SHOW_PRIVILEGES; ++ } ++#line 30689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1740: ++#line 11560 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (void) create_select_for_variable("warning_count"); } ++#line 30695 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1741: ++#line 11562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (void) create_select_for_variable("error_count"); } ++#line 30701 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1742: ++#line 11564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command = SQLCOM_SHOW_WARNS;} ++#line 30707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1743: ++#line 11566 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command = SQLCOM_SHOW_ERRORS;} ++#line 30713 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1744: ++#line 11568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command = SQLCOM_SHOW_PROFILES; } ++#line 30719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1745: ++#line 11570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_PROFILE; ++ if (prepare_schema_table(thd, lex, NULL, SCH_PROFILES) != 0) ++ YYABORT; ++ } ++#line 30730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1746: ++#line 11577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_STATUS; ++ lex->option_type= (yyvsp[-2].var_type); ++ if (prepare_schema_table(thd, lex, 0, SCH_STATUS)) ++ MYSQL_YYABORT; ++ } ++#line 30742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1747: ++#line 11585 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} ++#line 30748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1748: ++#line 11587 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_VARIABLES; ++ lex->option_type= (yyvsp[-2].var_type); ++ if (prepare_schema_table(thd, lex, 0, SCH_VARIABLES)) ++ MYSQL_YYABORT; ++ } ++#line 30760 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1749: ++#line 11595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_CHARSETS; ++ if (prepare_schema_table(thd, lex, 0, SCH_CHARSETS)) ++ MYSQL_YYABORT; ++ } ++#line 30771 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1750: ++#line 11602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_COLLATIONS; ++ if (prepare_schema_table(thd, lex, 0, SCH_COLLATIONS)) ++ MYSQL_YYABORT; ++ } ++#line 30782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1751: ++#line 11609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SHOW_GRANTS; ++ LEX_USER *curr_user; ++ if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user)))) ++ MYSQL_YYABORT; ++ bzero(curr_user, sizeof(st_lex_user)); ++ lex->grant_user= curr_user; ++ } ++#line 30796 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1752: ++#line 11619 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SHOW_GRANTS; ++ lex->grant_user=(yyvsp[0].lex_user); ++ lex->grant_user->password=null_lex_str; ++ } ++#line 30807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1753: ++#line 11626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command=SQLCOM_SHOW_CREATE_DB; ++ Lex->create_info.options=(yyvsp[-1].num); ++ Lex->name= (yyvsp[0].lex_str); ++ } ++#line 30817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1754: ++#line 11632 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command = SQLCOM_SHOW_CREATE; ++ if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL,0)) ++ MYSQL_YYABORT; ++ lex->create_info.storage_media= HA_SM_DEFAULT; ++ } ++#line 30829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1755: ++#line 11640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command = SQLCOM_SHOW_CREATE; ++ if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, 0)) ++ MYSQL_YYABORT; ++ lex->only_view= 1; ++ } ++#line 30841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1756: ++#line 11648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_SHOW_MASTER_STAT; ++ } ++#line 30849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1757: ++#line 11652 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; ++ } ++#line 30857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1758: ++#line 11656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_CLIENT_STATS; ++ if (prepare_schema_table(thd, lex, 0, SCH_CLIENT_STATS)) ++ MYSQL_YYABORT; ++ } ++#line 30868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1759: ++#line 11663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_USER_STATS; ++ if (prepare_schema_table(thd, lex, 0, SCH_USER_STATS)) ++ MYSQL_YYABORT; ++ } ++#line 30879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1760: ++#line 11670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_TABLE_STATS; ++ if (prepare_schema_table(thd, lex, 0, SCH_TABLE_STATS)) ++ MYSQL_YYABORT; ++ } ++#line 30890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1761: ++#line 11677 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_INDEX_STATS; ++ if (prepare_schema_table(thd, lex, 0, SCH_INDEX_STATS)) ++ MYSQL_YYABORT; ++ } ++#line 30901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1762: ++#line 11684 "/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 30912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1763: ++#line 11691 "/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 30923 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1764: ++#line 11698 "/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 30933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1765: ++#line 11704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_STATUS_PROC; ++ if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES)) ++ MYSQL_YYABORT; ++ } ++#line 30944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1766: ++#line 11711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_SHOW_STATUS_FUNC; ++ if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES)) ++ MYSQL_YYABORT; ++ } ++#line 30955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1767: ++#line 11718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command= SQLCOM_SHOW_PROC_CODE; ++ Lex->spname= (yyvsp[0].spname); ++ } ++#line 30964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1768: ++#line 11723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command= SQLCOM_SHOW_FUNC_CODE; ++ Lex->spname= (yyvsp[0].spname); ++ } ++#line 30973 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1769: ++#line 11728 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->spname= (yyvsp[0].spname); ++ Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT; ++ } ++#line 30982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1770: ++#line 11736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; } ++#line 30988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1771: ++#line 11738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; } ++#line 30994 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1772: ++#line 11740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; } ++#line 31000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1777: ++#line 11754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.simple_string)= 0; } ++#line 31006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1778: ++#line 11755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.simple_string)= (yyvsp[0].lex_str).str; } ++#line 31012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1779: ++#line 11759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->verbose=0; } ++#line 31018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1780: ++#line 11760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->verbose=1; } ++#line 31024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1783: ++#line 11769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->mi.log_file_name = 0; } ++#line 31030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1784: ++#line 11770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } ++#line 31036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1785: ++#line 11774 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->mi.pos = 4; /* skip magic number */ } ++#line 31042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1786: ++#line 11775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->mi.pos = (yyvsp[0].ulonglong_number); } ++#line 31048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1788: ++#line 11781 "/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); ++ if (Lex->wild == NULL) ++ MYSQL_YYABORT; ++ } ++#line 31059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1789: ++#line 11788 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->where= normalize_cond((yyvsp[0].item)); ++ if ((yyvsp[0].item)) ++ (yyvsp[0].item)->top_level_item(); ++ } ++#line 31069 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1790: ++#line 11798 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ mysql_init_select(lex); ++ lex->current_select->parsing_place= SELECT_LIST; ++ lex->sql_command= SQLCOM_SHOW_FIELDS; ++ lex->select_lex.db= 0; ++ lex->verbose= 0; ++ if (prepare_schema_table(thd, lex, (yyvsp[0].table), SCH_COLUMNS)) ++ MYSQL_YYABORT; ++ } ++#line 31084 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1791: ++#line 11809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Select->parsing_place= NO_MATTER; ++ } ++#line 31092 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1792: ++#line 11813 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->describe|= DESCRIBE_NORMAL; } ++#line 31098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1793: ++#line 11815 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->select_lex.options|= SELECT_DESCRIBE; ++ } ++#line 31107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1796: ++#line 11827 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1797: ++#line 11828 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->describe|= DESCRIBE_EXTENDED; } ++#line 31119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1798: ++#line 11829 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->describe|= DESCRIBE_PARTITIONS; } ++#line 31125 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1799: ++#line 11833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1800: ++#line 11834 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->wild= (yyvsp[0].string); } ++#line 31137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1801: ++#line 11836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->wild= new (thd->mem_root) String((const char*) (yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).length, ++ system_charset_info); ++ if (Lex->wild == NULL) ++ MYSQL_YYABORT; ++ } ++#line 31149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1802: ++#line 11850 "/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 31160 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1803: ++#line 11857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1804: ++#line 11862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->type|= REFRESH_TABLES; ++ /* ++ Set type of metadata and table locks for ++ FLUSH TABLES table_list [WITH READ LOCK]. ++ */ ++ YYPS->m_lock_type= TL_READ_NO_INSERT; ++ YYPS->m_mdl_type= MDL_SHARED_HIGH_PRIO; ++ } ++#line 31180 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1805: ++#line 11871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1806: ++#line 11872 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1808: ++#line 11877 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1809: ++#line 11879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ TABLE_LIST *tables= Lex->query_tables; ++ Lex->type|= REFRESH_READ_LOCK | (yyvsp[0].num); ++ for (; tables; tables= tables->next_global) ++ { ++ tables->mdl_request.set_type(MDL_SHARED_NO_WRITE); ++ tables->required_type= FRMTYPE_TABLE; /* Don't try to flush views. */ ++ tables->open_type= OT_BASE_ONLY; /* Ignore temporary tables. */ ++ } ++ } ++#line 31213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1811: ++#line 11894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1812: ++#line 11899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_ERROR_LOG; } ++#line 31225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1813: ++#line 11901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_ENGINE_LOG; } ++#line 31231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1814: ++#line 11903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_GENERAL_LOG; } ++#line 31237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1815: ++#line 11905 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_SLOW_LOG; } ++#line 31243 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1816: ++#line 11907 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_BINARY_LOG; } ++#line 31249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1817: ++#line 11909 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_RELAY_LOG; } ++#line 31255 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1818: ++#line 11911 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_QUERY_CACHE_FREE; } ++#line 31261 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1819: ++#line 11913 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_HOSTS; } ++#line 31267 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1820: ++#line 11915 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_GRANT; } ++#line 31273 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1821: ++#line 11917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_LOG; } ++#line 31279 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1822: ++#line 11919 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_STATUS; } ++#line 31285 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1823: ++#line 11921 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->type|= REFRESH_SLAVE; ++ Lex->reset_slave_info.all= false; ++ } ++#line 31294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1824: ++#line 11926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_CLIENT_STATS; } ++#line 31300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1825: ++#line 11928 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_USER_STATS; } ++#line 31306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1826: ++#line 11930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_TABLE_STATS; } ++#line 31312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1827: ++#line 11932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_INDEX_STATS; } ++#line 31318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1828: ++#line 11934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_MASTER; } ++#line 31324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1829: ++#line 11936 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_DES_KEY_FILE; } ++#line 31330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1830: ++#line 11938 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_USER_RESOURCES; } ++#line 31336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1831: ++#line 11942 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1832: ++#line 11943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1833: ++#line 11947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.num)= 0;} ++#line 31354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1834: ++#line 11948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.num)= REFRESH_CHECKPOINT; } ++#line 31360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1835: ++#line 11952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_RESET; lex->type=0; ++ } ++#line 31369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1836: ++#line 11957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1839: ++#line 11966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_SLAVE; } ++#line 31381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1840: ++#line 11967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 31387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1841: ++#line 11968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_MASTER; } ++#line 31393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1842: ++#line 11969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->type|= REFRESH_QUERY_CACHE;} ++#line 31399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1843: ++#line 11973 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->reset_slave_info.all= false; } ++#line 31405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1844: ++#line 11974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->reset_slave_info.all= true; } ++#line 31411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1845: ++#line 11979 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->type=0; ++ lex->sql_command = SQLCOM_PURGE; ++ } ++#line 31421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1846: ++#line 11985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1848: ++#line 11994 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->to_log = (yyvsp[0].lex_str).str; ++ } ++#line 31435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1849: ++#line 11998 "/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)); ++ lex->sql_command= SQLCOM_PURGE_BEFORE; ++ } ++#line 31446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1850: ++#line 12010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->value_list.empty(); ++ lex->users_list.empty(); ++ lex->sql_command= SQLCOM_KILL; ++ } ++#line 31457 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1851: ++#line 12017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->kill_signal= (killed_state) ((yyvsp[-2].num) | (yyvsp[-1].num)); ++ } ++#line 31465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1852: ++#line 12023 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (int) KILL_HARD_BIT; } ++#line 31471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1853: ++#line 12024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (int) KILL_HARD_BIT; } ++#line 31477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1854: ++#line 12025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 31483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1855: ++#line 12028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (int) KILL_CONNECTION; } ++#line 31489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1856: ++#line 12029 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (int) KILL_CONNECTION; } ++#line 31495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1857: ++#line 12030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= (int) KILL_QUERY; } ++#line 31501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1858: ++#line 12035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->value_list.push_front((yyval.item)); ++ Lex->kill_type= KILL_TYPE_ID; ++ } ++#line 31510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1859: ++#line 12040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->users_list.push_back((yyvsp[0].lex_user)); ++ Lex->kill_type= KILL_TYPE_USER; ++ } ++#line 31519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1860: ++#line 12050 "/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].lex_str).str; ++ } ++#line 31529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1861: ++#line 12061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), ++ (yyvsp[0].filetype) == FILETYPE_CSV ? "LOAD DATA" : "LOAD XML"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 31544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1862: ++#line 12072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_LOAD; ++ lex->local_file= (yyvsp[-2].num); ++ lex->duplicates= DUP_ERROR; ++ lex->ignore= 0; ++ if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str, 0, (yyvsp[-5].filetype)))) ++ MYSQL_YYABORT; ++ } ++#line 31558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1863: ++#line 12082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, ++ (yyvsp[-8].lock_type), MDL_SHARED_WRITE)) ++ MYSQL_YYABORT; ++ lex->field_list.empty(); ++ lex->update_list.empty(); ++ lex->value_list.empty(); ++ } ++#line 31572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1864: ++#line 12092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->exchange->cs= (yyvsp[0].charset); } ++#line 31578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1865: ++#line 12096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1866: ++#line 12100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.filetype)= FILETYPE_CSV; } ++#line 31590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1867: ++#line 12101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.filetype)= FILETYPE_XML; } ++#line 31596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1868: ++#line 12105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=0;} ++#line 31602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1869: ++#line 12106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=1;} ++#line 31608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1870: ++#line 12110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= TL_WRITE_DEFAULT; } ++#line 31614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1871: ++#line 12112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Ignore this option in SP to avoid problem with query cache and ++ triggers with non default priority locks ++ */ ++ (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); ++ } ++#line 31626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1872: ++#line 12119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } ++#line 31632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1873: ++#line 12123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->duplicates=DUP_ERROR; } ++#line 31638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1874: ++#line 12124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->duplicates=DUP_REPLACE; } ++#line 31644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1875: ++#line 12125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ignore= 1; } ++#line 31650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1880: ++#line 12140 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ DBUG_ASSERT(Lex->exchange != 0); ++ Lex->exchange->field_term= (yyvsp[0].string); ++ } ++#line 31659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1881: ++#line 12145 "/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 31670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1882: ++#line 12152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ DBUG_ASSERT(Lex->exchange != 0); ++ Lex->exchange->enclosed= (yyvsp[0].string); ++ } ++#line 31679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1883: ++#line 12157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ DBUG_ASSERT(Lex->exchange != 0); ++ Lex->exchange->escaped= (yyvsp[0].string); ++ } ++#line 31688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1888: ++#line 12175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ DBUG_ASSERT(Lex->exchange != 0); ++ Lex->exchange->line_term= (yyvsp[0].string); ++ } ++#line 31697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1889: ++#line 12180 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ DBUG_ASSERT(Lex->exchange != 0); ++ Lex->exchange->line_start= (yyvsp[0].string); ++ } ++#line 31706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1890: ++#line 12187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 31712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1891: ++#line 12189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->exchange->line_term = (yyvsp[0].string); } ++#line 31718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1893: ++#line 12194 "/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 31727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1894: ++#line 12201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 31733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1895: ++#line 12203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 31739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1896: ++#line 12207 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1897: ++#line 12208 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1898: ++#line 12209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31757 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1899: ++#line 12214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->field_list.push_back((yyvsp[0].item)); } ++#line 31763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1900: ++#line 12216 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->field_list.push_back((yyvsp[0].item)); } ++#line 31769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1901: ++#line 12220 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {(yyval.item)= (yyvsp[0].item);} ++#line 31775 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1902: ++#line 12222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_user_var_as_out_param((yyvsp[0].lex_str)); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 31785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1903: ++#line 12230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31791 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1904: ++#line 12231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 31797 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1907: ++#line 12241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->update_list.push_back((yyvsp[-4].item)) || ++ lex->value_list.push_back((yyvsp[-1].item))) ++ MYSQL_YYABORT; ++ (yyvsp[-1].item)->set_name_no_truncate((yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); ++ } ++#line 31809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1908: ++#line 12254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX_STRING tmp; ++ CHARSET_INFO *cs_con= thd->variables.collation_connection; ++ CHARSET_INFO *cs_cli= thd->variables.character_set_client; ++ uint repertoire= thd->lex->text_string_is_7bit && ++ my_charset_is_ascii_based(cs_cli) ? ++ MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30; ++ if (thd->charset_is_collation_connection || ++ (repertoire == MY_REPERTOIRE_ASCII && ++ my_charset_is_ascii_based(cs_con))) ++ tmp= (yyvsp[0].lex_str); ++ else ++ { ++ if (thd->convert_string(&tmp, cs_con, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, cs_cli)) ++ MYSQL_YYABORT; ++ } ++ (yyval.item)= new (thd->mem_root) Item_string(tmp.str, tmp.length, cs_con, ++ DERIVATION_COERCIBLE, ++ repertoire); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 31836 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1909: ++#line 12277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ uint repertoire= Lex->text_string_is_7bit ? ++ MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30; ++ DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info)); ++ (yyval.item)= new (thd->mem_root) Item_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, ++ national_charset_info, ++ DERIVATION_COERCIBLE, ++ repertoire); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 31852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1910: ++#line 12289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item_string *str= new (thd->mem_root) Item_string((yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).length, (yyvsp[-1].charset)); ++ if (str == NULL) ++ MYSQL_YYABORT; ++ str->set_repertoire_from_value(); ++ str->set_cs_specified(TRUE); ++ ++ (yyval.item)= str; ++ } ++#line 31867 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1911: ++#line 12300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item_string* item= (Item_string*) (yyvsp[-1].item); ++ item->append((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (!(item->collation.repertoire & MY_REPERTOIRE_EXTENDED)) ++ { ++ /* ++ If the string has been pure ASCII so far, ++ check the new part. ++ */ ++ CHARSET_INFO *cs= thd->variables.collation_connection; ++ item->collation.repertoire|= my_string_repertoire(cs, ++ (yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).length); ++ } ++ } ++#line 31887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1912: ++#line 12319 "/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, ++ thd->variables.collation_connection); ++ if ((yyval.string) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 31899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1913: ++#line 12327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *tmp= new (thd->mem_root) Item_hex_hybrid((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (tmp == NULL) ++ MYSQL_YYABORT; ++ /* ++ it is OK only emulate fix_fields, because we need only ++ value of constant ++ */ ++ tmp->quick_fix_field(); ++ (yyval.string)= tmp->val_str((String*) 0); ++ } ++#line 31915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1914: ++#line 12339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *tmp= new (thd->mem_root) Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (tmp == NULL) ++ MYSQL_YYABORT; ++ tmp->quick_fix_field(); ++ (yyval.string)= tmp->val_str((String*) 0); ++ } ++#line 31927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1915: ++#line 12347 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *tmp= new (thd->mem_root) Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (tmp == NULL) ++ MYSQL_YYABORT; ++ /* ++ it is OK only emulate fix_fields, because we need only ++ value of constant ++ */ ++ tmp->quick_fix_field(); ++ (yyval.string)= tmp->val_str((String*) 0); ++ } ++#line 31943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1916: ++#line 12362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ Item_param *item; ++ if (! lex->parsing_options.allows_variable) ++ { ++ my_error(ER_VIEW_SELECT_VARIABLE, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ item= new (thd->mem_root) Item_param((uint) (lip->get_tok_start() - thd->query())); ++ if (!((yyval.item)= item) || lex->param_list.push_back(item)) ++ { ++ my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 31964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1917: ++#line 12381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item); } ++#line 31970 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1918: ++#line 12382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item_num); } ++#line 31976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1919: ++#line 12384 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyvsp[0].item_num)->max_length++; ++ (yyval.item)= (yyvsp[0].item_num)->neg(); ++ } ++#line 31985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1920: ++#line 12391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item); } ++#line 31991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1921: ++#line 12392 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item_num); } ++#line 31997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1922: ++#line 12394 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item) = new (thd->mem_root) Item_null(); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT; ++ } ++#line 32008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1923: ++#line 12401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_int((char*) "FALSE",0,1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1924: ++#line 12407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_int((char*) "TRUE",1,1); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1925: ++#line 12413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item) = new (thd->mem_root) Item_hex_hybrid((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1926: ++#line 12419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item) = new (thd->mem_root) Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1927: ++#line 12425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)= new (thd->mem_root) Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1928: ++#line 12431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *tmp= new (thd->mem_root) Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (tmp == NULL) ++ MYSQL_YYABORT; ++ /* ++ it is OK only emulate fix_fieds, because we need only ++ value of constant ++ */ ++ tmp->quick_fix_field(); ++ String *str= tmp->val_str((String*) 0); ++ ++ Item_string *item_str; ++ item_str= new (thd->mem_root) ++ Item_string(NULL, /* name will be set in select_item */ ++ str ? str->ptr() : "", ++ str ? str->length() : 0, ++ (yyvsp[-1].charset)); ++ if (!item_str || ++ !item_str->check_well_formed_result(&item_str->str_value, TRUE)) ++ { ++ MYSQL_YYABORT; ++ } ++ ++ item_str->set_repertoire_from_value(); ++ item_str->set_cs_specified(TRUE); ++ ++ (yyval.item)= item_str; ++ } ++#line 32091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1929: ++#line 12460 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item *tmp= new (thd->mem_root) Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (tmp == NULL) ++ MYSQL_YYABORT; ++ /* ++ it is OK only emulate fix_fieds, because we need only ++ value of constant ++ */ ++ tmp->quick_fix_field(); ++ String *str= tmp->val_str((String*) 0); ++ ++ Item_string *item_str; ++ item_str= new (thd->mem_root) ++ Item_string(NULL, /* name will be set in select_item */ ++ str ? str->ptr() : "", ++ str ? str->length() : 0, ++ (yyvsp[-1].charset)); ++ if (!item_str || ++ !item_str->check_well_formed_result(&item_str->str_value, TRUE)) ++ { ++ MYSQL_YYABORT; ++ } ++ ++ item_str->set_cs_specified(TRUE); ++ ++ (yyval.item)= item_str; ++ } ++#line 32123 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1930: ++#line 12487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item); } ++#line 32129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1931: ++#line 12488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item); } ++#line 32135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1932: ++#line 12489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item) = (yyvsp[0].item); } ++#line 32141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1933: ++#line 12494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ int error; ++ (yyval.item_num)= new (thd->mem_root) ++ Item_int((yyvsp[0].lex_str).str, ++ (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), ++ (yyvsp[0].lex_str).length); ++ if ((yyval.item_num) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1934: ++#line 12504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ int error; ++ (yyval.item_num)= new (thd->mem_root) ++ Item_int((yyvsp[0].lex_str).str, ++ (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), ++ (yyvsp[0].lex_str).length); ++ if ((yyval.item_num) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32169 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1935: ++#line 12514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_num)= new (thd->mem_root) Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if ((yyval.item_num) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1936: ++#line 12520 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_num)= new (thd->mem_root) Item_decimal((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, ++ thd->charset()); ++ if (((yyval.item_num) == NULL) || (thd->is_error())) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 32192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1937: ++#line 12529 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item_num)= new (thd->mem_root) Item_float((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (((yyval.item_num) == NULL) || (thd->is_error())) ++ { ++ MYSQL_YYABORT; ++ } ++ } ++#line 32204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1938: ++#line 12543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)=(yyvsp[0].item); } ++#line 32210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1939: ++#line 12544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)=(yyvsp[0].item); } ++#line 32216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1940: ++#line 12549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *sel= Select; ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ NullS, (yyvsp[-2].lex_str).str, "*"); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ sel->with_wild++; ++ } ++#line 32229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1941: ++#line 12558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *sel= Select; ++ const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ? ++ NullS : (yyvsp[-4].lex_str).str; ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ schema, ++ (yyvsp[-2].lex_str).str,"*"); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ sel->with_wild++; ++ } ++#line 32245 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1942: ++#line 12572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)=(yyvsp[0].item); } ++#line 32251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1943: ++#line 12577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ sp_variable_t *spv; ++ sp_pcontext *spc = lex->spcont; ++ if (spc && (spv = spc->find_variable(&(yyvsp[0].lex_str)))) ++ { ++ /* We're compiling a stored procedure and found a variable */ ++ if (! lex->parsing_options.allows_variable) ++ { ++ my_error(ER_VIEW_SELECT_VARIABLE, MYF(0)); ++ MYSQL_YYABORT; ++ } ++ ++ Item_splocal *splocal; ++ splocal= new (thd->mem_root) ++ Item_splocal((yyvsp[0].lex_str), spv->offset, spv->type, ++ lip->get_tok_start_prev() - lex->sphead->m_tmp_query, ++ lip->get_tok_end() - lip->get_tok_start_prev()); ++ if (splocal == NULL) ++ MYSQL_YYABORT; ++#ifndef DBUG_OFF ++ splocal->m_sp= lex->sphead; ++#endif ++ (yyval.item)= splocal; ++ lex->safe_to_cache_query=0; ++ } ++ else ++ { ++ SELECT_LEX *sel=Select; ++ if ((sel->parsing_place != IN_HAVING) || ++ (sel->get_in_sum_expr() > 0)) ++ { ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ NullS, NullS, (yyvsp[0].lex_str).str); ++ } ++ else ++ { ++ (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(), ++ NullS, NullS, (yyvsp[0].lex_str).str); ++ } ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++ } ++#line 32301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1944: ++#line 12622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item); } ++#line 32307 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1945: ++#line 12627 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ SELECT_LEX *sel=Select; ++ if ((sel->parsing_place != IN_HAVING) || ++ (sel->get_in_sum_expr() > 0)) ++ { ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ NullS, NullS, (yyvsp[0].lex_str).str); ++ } ++ else ++ { ++ (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(), ++ NullS, NullS, (yyvsp[0].lex_str).str); ++ } ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1946: ++#line 12643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)= (yyvsp[0].item); } ++#line 32334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1947: ++#line 12648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ ++ /* ++ FIXME This will work ok in simple_ident_nospvar case because ++ we can't meet simple_ident_nospvar in trigger now. But it ++ should be changed in future. ++ */ ++ if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER && ++ (!my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "NEW") || ++ !my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "OLD"))) ++ { ++ Item_trigger_field *trg_fld; ++ bool new_row= ((yyvsp[-2].lex_str).str[0]=='N' || (yyvsp[-2].lex_str).str[0]=='n'); ++ ++ if (lex->trg_chistics.event == TRG_EVENT_INSERT && ++ !new_row) ++ { ++ my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT"); ++ MYSQL_YYABORT; ++ } ++ ++ if (lex->trg_chistics.event == TRG_EVENT_DELETE && ++ new_row) ++ { ++ my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE"); ++ MYSQL_YYABORT; ++ } ++ ++ DBUG_ASSERT(!new_row || ++ (lex->trg_chistics.event == TRG_EVENT_INSERT || ++ lex->trg_chistics.event == TRG_EVENT_UPDATE)); ++ const bool read_only= ++ !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE); ++ trg_fld= new (thd->mem_root) ++ Item_trigger_field(Lex->current_context(), ++ new_row ? ++ Item_trigger_field::NEW_ROW: ++ Item_trigger_field::OLD_ROW, ++ (yyvsp[0].lex_str).str, ++ SELECT_ACL, ++ read_only); ++ if (trg_fld == NULL) ++ MYSQL_YYABORT; ++ ++ /* ++ Let us add this item to list of all Item_trigger_field objects ++ in trigger. ++ */ ++ lex->trg_table_fields.link_in_list(trg_fld, ++ &trg_fld->next_trg_field); ++ ++ (yyval.item)= trg_fld; ++ } ++ else ++ { ++ SELECT_LEX *sel= lex->current_select; ++ if (sel->no_table_names_allowed) ++ { ++ my_error(ER_TABLENAME_NOT_ALLOWED_HERE, ++ MYF(0), (yyvsp[-2].lex_str).str, thd->where); ++ } ++ if ((sel->parsing_place != IN_HAVING) || ++ (sel->get_in_sum_expr() > 0)) ++ { ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); ++ } ++ else ++ { ++ (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(), ++ NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); ++ } ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++ } ++#line 32416 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1948: ++#line 12726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ SELECT_LEX *sel= lex->current_select; ++ if (sel->no_table_names_allowed) ++ { ++ my_error(ER_TABLENAME_NOT_ALLOWED_HERE, ++ MYF(0), (yyvsp[-2].lex_str).str, thd->where); ++ } ++ if ((sel->parsing_place != IN_HAVING) || ++ (sel->get_in_sum_expr() > 0)) ++ { ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); ++ ++ } ++ else ++ { ++ (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(), ++ NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); ++ } ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1949: ++#line 12750 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ SELECT_LEX *sel= lex->current_select; ++ const char* schema= (thd->client_capabilities & CLIENT_NO_SCHEMA ? ++ NullS : (yyvsp[-4].lex_str).str); ++ if (sel->no_table_names_allowed) ++ { ++ my_error(ER_TABLENAME_NOT_ALLOWED_HERE, ++ MYF(0), (yyvsp[-2].lex_str).str, thd->where); ++ } ++ if ((sel->parsing_place != IN_HAVING) || ++ (sel->get_in_sum_expr() > 0)) ++ { ++ (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(), ++ schema, ++ (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); ++ } ++ else ++ { ++ (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(), ++ schema, ++ (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); ++ } ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1950: ++#line 12779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str);} ++#line 32481 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1951: ++#line 12781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ TABLE_LIST *table= Select->table_list.first; ++ if (my_strcasecmp(table_alias_charset, (yyvsp[-4].lex_str).str, table->db)) ++ { ++ my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-4].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ if (my_strcasecmp(table_alias_charset, (yyvsp[-2].lex_str).str, ++ table->table_name)) ++ { ++ my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ (yyval.lex_str)=(yyvsp[0].lex_str); ++ } ++#line 32501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1952: ++#line 12797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ TABLE_LIST *table= Select->table_list.first; ++ if (my_strcasecmp(table_alias_charset, (yyvsp[-2].lex_str).str, table->alias)) ++ { ++ my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ (yyval.lex_str)=(yyvsp[0].lex_str); ++ } ++#line 32515 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1953: ++#line 12806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str);} ++#line 32521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1954: ++#line 12811 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.table)= new Table_ident((yyvsp[0].lex_str)); ++ if ((yyval.table) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32531 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1955: ++#line 12817 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.table)= new Table_ident(thd, (yyvsp[-2].lex_str),(yyvsp[0].lex_str),0); ++ if ((yyval.table) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1956: ++#line 12823 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* For Delphi */ ++ (yyval.table)= new Table_ident((yyvsp[0].lex_str)); ++ if ((yyval.table) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1957: ++#line 12833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.table)= new Table_ident((yyvsp[-1].lex_str)); ++ if ((yyval.table) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1958: ++#line 12839 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.table)= new Table_ident(thd, (yyvsp[-3].lex_str),(yyvsp[-1].lex_str),0); ++ if ((yyval.table) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1959: ++#line 12848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX_STRING db={(char*) any_db,3}; ++ (yyval.table)= new Table_ident(thd, db,(yyvsp[0].lex_str),0); ++ if ((yyval.table) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 32583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1960: ++#line 12857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)= (yyvsp[0].lex_str); } ++#line 32589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1961: ++#line 12859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (thd->charset_is_system_charset) ++ { ++ CHARSET_INFO *cs= system_charset_info; ++ int dummy_error; ++ uint wlen= cs->cset->well_formed_len(cs, (yyvsp[0].lex_str).str, ++ (yyvsp[0].lex_str).str+(yyvsp[0].lex_str).length, ++ (yyvsp[0].lex_str).length, &dummy_error); ++ if (wlen < (yyvsp[0].lex_str).length) ++ { ++ ErrConvString err((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, &my_charset_bin); ++ my_error(ER_INVALID_CHARACTER_STRING, MYF(0), ++ cs->csname, err.ptr()); ++ MYSQL_YYABORT; ++ } ++ (yyval.lex_str)= (yyvsp[0].lex_str); ++ } ++ else ++ { ++ if (thd->convert_string(&(yyval.lex_str), system_charset_info, ++ (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset())) ++ MYSQL_YYABORT; ++ } ++ } ++#line 32618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1962: ++#line 12887 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (thd->charset_is_system_charset) ++ (yyval.lex_str)= (yyvsp[0].lex_str); ++ else ++ { ++ if (thd->convert_string(&(yyval.lex_str), system_charset_info, ++ (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset())) ++ MYSQL_YYABORT; ++ } ++ } ++#line 32633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1963: ++#line 12901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (thd->charset_is_collation_connection) ++ (yyval.lex_str)= (yyvsp[0].lex_str); ++ else ++ { ++ if (thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection, ++ (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset())) ++ MYSQL_YYABORT; ++ } ++ } ++#line 32648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1964: ++#line 12915 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (thd->charset_is_character_set_filesystem) ++ (yyval.lex_str)= (yyvsp[0].lex_str); ++ else ++ { ++ if (thd->convert_string(&(yyval.lex_str), ++ thd->variables.character_set_filesystem, ++ (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset())) ++ MYSQL_YYABORT; ++ } ++ } ++#line 32664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1965: ++#line 12929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 32670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1966: ++#line 12931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.lex_str).str= thd->strmake((yyvsp[0].symbol).str, (yyvsp[0].symbol).length); ++ if ((yyval.lex_str).str == NULL) ++ MYSQL_YYABORT; ++ (yyval.lex_str).length= (yyvsp[0].symbol).length; ++ } ++#line 32681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1967: ++#line 12940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str); } ++#line 32687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1968: ++#line 12942 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.lex_str).str= thd->strmake((yyvsp[0].symbol).str, (yyvsp[0].symbol).length); ++ if ((yyval.lex_str).str == NULL) ++ MYSQL_YYABORT; ++ (yyval.lex_str).length= (yyvsp[0].symbol).length; ++ } ++#line 32698 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1969: ++#line 12951 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str);} ++#line 32704 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1970: ++#line 12952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str);} ++#line 32710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1971: ++#line 12953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_str)=(yyvsp[0].lex_str);} ++#line 32716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1972: ++#line 12958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) ++ MYSQL_YYABORT; ++ (yyval.lex_user)->user = (yyvsp[0].lex_str); ++ (yyval.lex_user)->host.str= (char *) "%"; ++ (yyval.lex_user)->host.length= 1; ++ (yyval.lex_user)->password= null_lex_str; ++ (yyval.lex_user)->plugin= empty_lex_str; ++ (yyval.lex_user)->auth= empty_lex_str; ++ ++ if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME), ++ username_char_length, ++ system_charset_info, 0)) ++ MYSQL_YYABORT; ++ } ++#line 32736 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1973: ++#line 12974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) ++ MYSQL_YYABORT; ++ (yyval.lex_user)->user = (yyvsp[-2].lex_str); (yyval.lex_user)->host=(yyvsp[0].lex_str); ++ (yyval.lex_user)->password= null_lex_str; ++ (yyval.lex_user)->plugin= empty_lex_str; ++ (yyval.lex_user)->auth= empty_lex_str; ++ ++ if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME), ++ username_char_length, ++ system_charset_info, 0) || ++ check_host_name(&(yyval.lex_user)->host)) ++ MYSQL_YYABORT; ++ /* ++ Convert hostname part of username to lowercase. ++ It's OK to use in-place lowercase as long as ++ the character set is utf8. ++ */ ++ my_casedn_str(system_charset_info, (yyval.lex_user)->host.str); ++ } ++#line 32761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1974: ++#line 12995 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user)))) ++ MYSQL_YYABORT; ++ /* ++ empty LEX_USER means current_user and ++ will be handled in the get_current_user() function ++ later ++ */ ++ bzero((yyval.lex_user), sizeof(LEX_USER)); ++ } ++#line 32776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1975: ++#line 13009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1976: ++#line 13010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1977: ++#line 13011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1978: ++#line 13012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1979: ++#line 13013 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1980: ++#line 13014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32812 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1981: ++#line 13015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1982: ++#line 13016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32824 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1983: ++#line 13017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32830 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1984: ++#line 13018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32836 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1985: ++#line 13019 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1986: ++#line 13020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1987: ++#line 13021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1988: ++#line 13022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1989: ++#line 13023 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1990: ++#line 13024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32872 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1991: ++#line 13025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1992: ++#line 13026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32884 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1993: ++#line 13027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1994: ++#line 13028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32896 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1995: ++#line 13029 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1996: ++#line 13030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1997: ++#line 13031 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1998: ++#line 13032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 1999: ++#line 13033 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2000: ++#line 13034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32932 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2001: ++#line 13035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2002: ++#line 13036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2003: ++#line 13037 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32950 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2004: ++#line 13038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2005: ++#line 13039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2006: ++#line 13040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2007: ++#line 13041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2008: ++#line 13042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32980 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2009: ++#line 13043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2010: ++#line 13044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2011: ++#line 13045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 32998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2012: ++#line 13046 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2013: ++#line 13047 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2014: ++#line 13048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2015: ++#line 13049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2016: ++#line 13050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2017: ++#line 13051 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2018: ++#line 13052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2019: ++#line 13053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2020: ++#line 13054 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2021: ++#line 13055 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2022: ++#line 13056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2023: ++#line 13057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2024: ++#line 13058 "/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 2025: ++#line 13059 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2026: ++#line 13060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2027: ++#line 13061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2028: ++#line 13062 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2029: ++#line 13063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2030: ++#line 13064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33112 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2031: ++#line 13065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33118 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2032: ++#line 13066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33124 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2033: ++#line 13067 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2034: ++#line 13077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2035: ++#line 13078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33142 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2036: ++#line 13079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2037: ++#line 13080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33154 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2038: ++#line 13081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33160 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2039: ++#line 13082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2040: ++#line 13083 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33172 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2041: ++#line 13084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33178 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2042: ++#line 13085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33184 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2043: ++#line 13086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33190 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2044: ++#line 13087 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33196 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2045: ++#line 13088 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2046: ++#line 13089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33208 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2047: ++#line 13090 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33214 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2048: ++#line 13091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2049: ++#line 13092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2050: ++#line 13093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33232 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2051: ++#line 13094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2052: ++#line 13095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2053: ++#line 13096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33250 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2054: ++#line 13097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2055: ++#line 13098 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33262 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2056: ++#line 13099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33268 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2057: ++#line 13100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2058: ++#line 13101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2059: ++#line 13102 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2060: ++#line 13103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2061: ++#line 13104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2062: ++#line 13105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2063: ++#line 13106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2064: ++#line 13107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2065: ++#line 13108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33322 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2066: ++#line 13109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2067: ++#line 13110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2068: ++#line 13111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2069: ++#line 13112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2070: ++#line 13113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2071: ++#line 13114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33358 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2072: ++#line 13115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33364 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2073: ++#line 13116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33370 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2074: ++#line 13117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2075: ++#line 13118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2076: ++#line 13119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33388 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2077: ++#line 13120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2078: ++#line 13121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2079: ++#line 13122 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33406 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2080: ++#line 13123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2081: ++#line 13124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33418 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2082: ++#line 13125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33424 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2083: ++#line 13126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2084: ++#line 13127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2085: ++#line 13128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2086: ++#line 13129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2087: ++#line 13130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2088: ++#line 13131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2089: ++#line 13132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33466 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2090: ++#line 13133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33472 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2091: ++#line 13134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33478 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2092: ++#line 13135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33484 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2093: ++#line 13136 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33490 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2094: ++#line 13137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2095: ++#line 13138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2096: ++#line 13139 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2097: ++#line 13140 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2098: ++#line 13141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2099: ++#line 13142 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2100: ++#line 13143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2101: ++#line 13144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2102: ++#line 13145 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2103: ++#line 13146 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2104: ++#line 13147 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2105: ++#line 13148 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2106: ++#line 13149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2107: ++#line 13150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2108: ++#line 13151 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2109: ++#line 13152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2110: ++#line 13153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33592 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2111: ++#line 13154 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2112: ++#line 13155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2113: ++#line 13156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2114: ++#line 13157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33616 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2115: ++#line 13158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2116: ++#line 13159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33628 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2117: ++#line 13160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33634 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2118: ++#line 13161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33640 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2119: ++#line 13162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2120: ++#line 13163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33652 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2121: ++#line 13164 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2122: ++#line 13165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2123: ++#line 13166 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2124: ++#line 13167 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2125: ++#line 13168 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2126: ++#line 13169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2127: ++#line 13170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2128: ++#line 13171 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2129: ++#line 13172 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2130: ++#line 13173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2131: ++#line 13174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2132: ++#line 13175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2133: ++#line 13176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2134: ++#line 13177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33736 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2135: ++#line 13178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2136: ++#line 13179 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2137: ++#line 13180 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2138: ++#line 13181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33760 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2139: ++#line 13182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33766 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2140: ++#line 13183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33772 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2141: ++#line 13184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2142: ++#line 13185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2143: ++#line 13186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2144: ++#line 13187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33796 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2145: ++#line 13188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2146: ++#line 13189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33808 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2147: ++#line 13190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2148: ++#line 13191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2149: ++#line 13192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33826 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2150: ++#line 13193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2151: ++#line 13194 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2152: ++#line 13195 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33844 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2153: ++#line 13196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2154: ++#line 13197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2155: ++#line 13198 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2156: ++#line 13199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2157: ++#line 13200 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2158: ++#line 13201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33880 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2159: ++#line 13202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33886 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2160: ++#line 13203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2161: ++#line 13204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2162: ++#line 13205 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33904 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2163: ++#line 13206 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33910 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2164: ++#line 13207 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2165: ++#line 13208 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2166: ++#line 13209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33928 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2167: ++#line 13210 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2168: ++#line 13211 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2169: ++#line 13212 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2170: ++#line 13213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2171: ++#line 13214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2172: ++#line 13215 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2173: ++#line 13216 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33970 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2174: ++#line 13217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2175: ++#line 13218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2176: ++#line 13219 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2177: ++#line 13220 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 33994 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2178: ++#line 13221 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2179: ++#line 13222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2180: ++#line 13223 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2181: ++#line 13224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2182: ++#line 13225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2183: ++#line 13226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2184: ++#line 13227 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2185: ++#line 13228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2186: ++#line 13229 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2187: ++#line 13230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2188: ++#line 13231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2189: ++#line 13232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2190: ++#line 13233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2191: ++#line 13234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2192: ++#line 13235 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34084 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2193: ++#line 13236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2194: ++#line 13237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34096 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2195: ++#line 13238 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34102 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2196: ++#line 13239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34108 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2197: ++#line 13240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34114 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2198: ++#line 13241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34120 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2199: ++#line 13242 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34126 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2200: ++#line 13243 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34132 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2201: ++#line 13244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34138 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2202: ++#line 13245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34144 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2203: ++#line 13246 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34150 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2204: ++#line 13247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2205: ++#line 13248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2206: ++#line 13249 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2207: ++#line 13250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34174 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2208: ++#line 13251 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34180 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2209: ++#line 13252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2210: ++#line 13253 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2211: ++#line 13254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2212: ++#line 13255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2213: ++#line 13256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2214: ++#line 13257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2215: ++#line 13258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34222 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2216: ++#line 13259 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34228 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2217: ++#line 13260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2218: ++#line 13261 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34240 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2219: ++#line 13262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2220: ++#line 13263 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2221: ++#line 13264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2222: ++#line 13265 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2223: ++#line 13266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2224: ++#line 13267 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34276 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2225: ++#line 13268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34282 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2226: ++#line 13269 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2227: ++#line 13270 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2228: ++#line 13271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2229: ++#line 13272 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2230: ++#line 13273 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2231: ++#line 13274 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2232: ++#line 13275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2233: ++#line 13276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2234: ++#line 13277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2235: ++#line 13278 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2236: ++#line 13279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2237: ++#line 13280 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2238: ++#line 13281 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2239: ++#line 13282 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2240: ++#line 13283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2241: ++#line 13284 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2242: ++#line 13285 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2243: ++#line 13286 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2244: ++#line 13287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2245: ++#line 13288 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2246: ++#line 13289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2247: ++#line 13290 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2248: ++#line 13291 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2249: ++#line 13292 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2250: ++#line 13293 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34432 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2251: ++#line 13294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2252: ++#line 13295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2253: ++#line 13296 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2254: ++#line 13297 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2255: ++#line 13298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2256: ++#line 13299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2257: ++#line 13300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2258: ++#line 13301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34480 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2259: ++#line 13302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2260: ++#line 13303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2261: ++#line 13304 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2262: ++#line 13305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2263: ++#line 13306 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2264: ++#line 13307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2265: ++#line 13308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34522 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2266: ++#line 13309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34528 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2267: ++#line 13310 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34534 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2268: ++#line 13311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34540 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2269: ++#line 13312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2270: ++#line 13313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2271: ++#line 13314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2272: ++#line 13315 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2273: ++#line 13316 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2274: ++#line 13317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2275: ++#line 13318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2276: ++#line 13319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34588 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2277: ++#line 13320 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34594 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2278: ++#line 13321 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34600 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2279: ++#line 13322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2280: ++#line 13323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2281: ++#line 13324 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2282: ++#line 13325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2283: ++#line 13326 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2284: ++#line 13327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2285: ++#line 13328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34642 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2286: ++#line 13329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2287: ++#line 13330 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2288: ++#line 13331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2289: ++#line 13332 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34666 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2290: ++#line 13333 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2291: ++#line 13334 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2292: ++#line 13335 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34684 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2293: ++#line 13336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2294: ++#line 13337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34696 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2295: ++#line 13338 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2296: ++#line 13339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34708 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2297: ++#line 13340 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34714 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2298: ++#line 13341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2299: ++#line 13342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2300: ++#line 13343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2301: ++#line 13344 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2302: ++#line 13345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2303: ++#line 13346 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2304: ++#line 13347 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34756 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2305: ++#line 13348 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2306: ++#line 13349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2307: ++#line 13350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34774 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2308: ++#line 13351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2309: ++#line 13352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2310: ++#line 13353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2311: ++#line 13354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34798 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2312: ++#line 13355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34804 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2313: ++#line 13356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2314: ++#line 13357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34816 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2315: ++#line 13358 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2316: ++#line 13359 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2317: ++#line 13360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2318: ++#line 13361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2319: ++#line 13362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34846 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2320: ++#line 13363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2321: ++#line 13364 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2322: ++#line 13365 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2323: ++#line 13366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34870 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2324: ++#line 13367 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34876 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2325: ++#line 13368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2326: ++#line 13369 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34888 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2327: ++#line 13376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SET_OPTION; ++ mysql_init_select(lex); ++ lex->option_type=OPT_SESSION; ++ lex->var_list.empty(); ++ lex->one_shot_set= 0; ++ lex->autocommit= 0; ++ } ++#line 34902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2328: ++#line 13386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2329: ++#line 13390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2330: ++#line 13391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 34920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2333: ++#line 13400 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ ++ if (lex->sphead) ++ { ++ /* ++ If we are in SP we want have own LEX for each assignment. ++ This is mostly because it is hard for several sp_instr_set ++ and sp_instr_set_trigger instructions share one LEX. ++ (Well, it is theoretically possible but adds some extra ++ overhead on preparation for execution stage and IMO less ++ robust). ++ ++ QQ: May be we should simply prohibit group assignments in SP? ++ */ ++ lex->sphead->reset_lex(thd); ++ lex= thd->lex; ++ ++ /* Set new LEX as if we at start of set rule. */ ++ lex->sql_command= SQLCOM_SET_OPTION; ++ mysql_init_select(lex); ++ lex->option_type=OPT_SESSION; ++ lex->var_list.empty(); ++ lex->one_shot_set= 0; ++ lex->autocommit= 0; ++ lex->sphead->m_tmp_query= lip->get_tok_start(); ++ } ++ } ++#line 34954 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2334: ++#line 13430 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ ++ if (lex->sphead) ++ { ++ sp_head *sp= lex->sphead; ++ ++ if (!lex->var_list.is_empty()) ++ { ++ /* ++ We have assignment to user or system variable or ++ option setting, so we should construct sp_instr_stmt ++ for it. ++ */ ++ LEX_STRING qbuff; ++ sp_instr_stmt *i; ++ ++ if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont, ++ lex))) ++ MYSQL_YYABORT; ++ ++ /* ++ Extract the query statement from the tokenizer. The ++ end is either lip->ptr, if there was no lookahead, ++ lip->tok_end otherwise. ++ */ ++ if (yychar == YYEMPTY) ++ qbuff.length= lip->get_ptr() - sp->m_tmp_query; ++ else ++ qbuff.length= lip->get_tok_end() - sp->m_tmp_query; ++ ++ if (!(qbuff.str= (char*) alloc_root(thd->mem_root, ++ qbuff.length + 5))) ++ MYSQL_YYABORT; ++ ++ strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query, ++ qbuff.length); ++ qbuff.length+= 4; ++ i->m_query= qbuff; ++ if (sp->add_instr(i)) ++ MYSQL_YYABORT; ++ } ++ if (lex->sphead->restore_lex(thd)) ++ MYSQL_YYABORT; ++ } ++ } ++#line 35006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2335: ++#line 13480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2336: ++#line 13481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_GLOBAL; } ++#line 35018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2337: ++#line 13482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2338: ++#line 13483 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2339: ++#line 13487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= OPT_DEFAULT; } ++#line 35036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2340: ++#line 13488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; } ++#line 35042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2341: ++#line 13492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2342: ++#line 13493 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_GLOBAL; } ++#line 35054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2343: ++#line 13494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2344: ++#line 13495 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2345: ++#line 13499 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_DEFAULT; } ++#line 35072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2346: ++#line 13500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_GLOBAL; } ++#line 35078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2347: ++#line 13501 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35084 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2348: ++#line 13502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.var_type)=OPT_SESSION; } ++#line 35090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2351: ++#line 13512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ LEX_STRING *name= &(yyvsp[-2].variable).base_name; ++ ++ if ((yyvsp[-2].variable).var == trg_new_row_fake_var) ++ { ++ /* We are in trigger and assigning value to field of new row */ ++ if ((yyvsp[-3].var_type)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (set_trigger_new_row(thd, name, (yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++ else if ((yyvsp[-2].variable).var) ++ { ++ if ((yyvsp[-3].var_type)) ++ lex->option_type= (yyvsp[-3].var_type); ++ ++ /* It is a system variable. */ ++ if (set_system_variable(thd, &(yyvsp[-2].variable), lex->option_type, (yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++ else ++ { ++ sp_pcontext *spc= lex->spcont; ++ sp_variable_t *spv= spc->find_variable(name); ++ ++ if ((yyvsp[-3].var_type)) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ ++ /* It is a local variable. */ ++ if (set_local_variable(thd, spv, (yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++ } ++#line 35135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2352: ++#line 13553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->option_type= (yyvsp[-4].var_type); ++ Item *item= new (thd->mem_root) Item_int((int32) (yyvsp[0].tx_isolation)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ set_var *var= new set_var(lex->option_type, ++ find_sys_var(thd, "tx_isolation"), ++ &null_lex_str, ++ item); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ lex->var_list.push_back(var); ++ } ++#line 35154 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2353: ++#line 13571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Item_func_set_user_var *item; ++ item= new (thd->mem_root) Item_func_set_user_var((yyvsp[-2].lex_str), (yyvsp[0].item)); ++ if (item == NULL) ++ MYSQL_YYABORT; ++ set_var_user *var= new set_var_user(item); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ Lex->var_list.push_back(var); ++ } ++#line 35169 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2354: ++#line 13582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ struct sys_var_with_base tmp= (yyvsp[-2].variable); ++ /* Lookup if necessary: must be a system variable. */ ++ if (tmp.var == NULL) ++ { ++ if (find_sys_var_null_base(thd, &tmp)) ++ MYSQL_YYABORT; ++ } ++ if (set_system_variable(thd, &tmp, (yyvsp[-3].var_type), (yyvsp[0].item))) ++ MYSQL_YYABORT; ++ } ++#line 35185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2355: ++#line 13594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ CHARSET_INFO *cs2; ++ cs2= (yyvsp[0].charset) ? (yyvsp[0].charset): global_system_variables.character_set_client; ++ set_var_collation_client *var; ++ var= new set_var_collation_client(cs2, ++ thd->variables.collation_database, ++ cs2); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ lex->var_list.push_back(var); ++ } ++#line 35202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2356: ++#line 13607 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_pcontext *spc= lex->spcont; ++ LEX_STRING names; ++ ++ names.str= (char *)"names"; ++ names.length= 5; ++ if (spc && spc->find_variable(&names)) ++ my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str); ++ else ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ ++ MYSQL_YYABORT; ++ } ++#line 35221 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2357: ++#line 13622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ CHARSET_INFO *cs2; ++ CHARSET_INFO *cs3; ++ cs2= (yyvsp[-1].charset) ? (yyvsp[-1].charset) : global_system_variables.character_set_client; ++ cs3= (yyvsp[0].charset) ? (yyvsp[0].charset) : cs2; ++ if (!my_charset_same(cs2, cs3)) ++ { ++ my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), ++ cs3->name, cs2->csname); ++ MYSQL_YYABORT; ++ } ++ set_var_collation_client *var; ++ var= new set_var_collation_client(cs3, cs3, cs3); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ lex->var_list.push_back(var); ++ } ++#line 35244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2358: ++#line 13641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ LEX_USER *user; ++ sp_pcontext *spc= lex->spcont; ++ LEX_STRING pw; ++ ++ pw.str= (char *)"password"; ++ pw.length= 8; ++ if (spc && spc->find_variable(&pw)) ++ { ++ my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str); ++ MYSQL_YYABORT; ++ } ++ if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER)))) ++ MYSQL_YYABORT; ++ user->host=null_lex_str; ++ user->user.str=thd->security_ctx->user; ++ set_var_password *var= new set_var_password(user, (yyvsp[0].simple_string)); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ thd->lex->var_list.push_back(var); ++ thd->lex->autocommit= TRUE; ++ if (lex->sphead) ++ lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; ++ } ++#line 35274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2359: ++#line 13667 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ set_var_password *var= new set_var_password((yyvsp[-2].lex_user),(yyvsp[0].simple_string)); ++ if (var == NULL) ++ MYSQL_YYABORT; ++ Lex->var_list.push_back(var); ++ Lex->autocommit= TRUE; ++ if (Lex->sphead) ++ Lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; ++ } ++#line 35288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2360: ++#line 13680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ sp_pcontext *spc= thd->lex->spcont; ++ sp_variable_t *spv; ++ ++ /* Best effort lookup for system variable. */ ++ if (!spc || !(spv = spc->find_variable(&(yyvsp[0].lex_str)))) ++ { ++ struct sys_var_with_base tmp= {NULL, (yyvsp[0].lex_str)}; ++ ++ /* Not an SP local variable */ ++ if (find_sys_var_null_base(thd, &tmp)) ++ MYSQL_YYABORT; ++ ++ (yyval.variable)= tmp; ++ } ++ else ++ { ++ /* ++ Possibly an SP local variable (or a shadowed sysvar). ++ Will depend on the context of the SET statement. ++ */ ++ (yyval.variable).var= NULL; ++ (yyval.variable).base_name= (yyvsp[0].lex_str); ++ } ++ } ++#line 35318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2361: ++#line 13706 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (check_reserved_words(&(yyvsp[-2].lex_str))) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER && ++ (!my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "NEW") || ++ !my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "OLD"))) ++ { ++ if ((yyvsp[-2].lex_str).str[0]=='O' || (yyvsp[-2].lex_str).str[0]=='o') ++ { ++ my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "OLD", ""); ++ MYSQL_YYABORT; ++ } ++ if (lex->trg_chistics.event == TRG_EVENT_DELETE) ++ { ++ my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), ++ "NEW", "on DELETE"); ++ MYSQL_YYABORT; ++ } ++ if (lex->trg_chistics.action_time == TRG_ACTION_AFTER) ++ { ++ my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "NEW", "after "); ++ MYSQL_YYABORT; ++ } ++ /* This special combination will denote field of NEW row */ ++ (yyval.variable).var= trg_new_row_fake_var; ++ (yyval.variable).base_name= (yyvsp[0].lex_str); ++ } ++ else ++ { ++ sys_var *tmp=find_sys_var(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (!tmp) ++ MYSQL_YYABORT; ++ if (!tmp->is_struct()) ++ my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[0].lex_str).str); ++ (yyval.variable).var= tmp; ++ (yyval.variable).base_name= (yyvsp[-2].lex_str); ++ } ++ } ++#line 35365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2362: ++#line 13749 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ sys_var *tmp=find_sys_var(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ if (!tmp) ++ MYSQL_YYABORT; ++ if (!tmp->is_struct()) ++ my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[0].lex_str).str); ++ (yyval.variable).var= tmp; ++ (yyval.variable).base_name.str= (char*) "default"; ++ (yyval.variable).base_name.length= 7; ++ } ++#line 35380 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2363: ++#line 13762 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; } ++#line 35386 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2364: ++#line 13763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.tx_isolation)= ISO_READ_COMMITTED; } ++#line 35392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2365: ++#line 13764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.tx_isolation)= ISO_REPEATABLE_READ; } ++#line 35398 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2366: ++#line 13765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.tx_isolation)= ISO_SERIALIZABLE; } ++#line 35404 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2367: ++#line 13769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.simple_string)=(yyvsp[0].lex_str).str;} ++#line 35410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2368: ++#line 13771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.simple_string)= (yyvsp[-1].lex_str).length ? thd->variables.old_passwords ? ++ Item_func_old_password::alloc(thd, (yyvsp[-1].lex_str).str, (yyvsp[-1].lex_str).length) : ++ Item_func_password::alloc(thd, (yyvsp[-1].lex_str).str, (yyvsp[-1].lex_str).length) : ++ (yyvsp[-1].lex_str).str; ++ if ((yyval.simple_string) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 35423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2369: ++#line 13780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.simple_string)= (yyvsp[-1].lex_str).length ? Item_func_old_password::alloc(thd, (yyvsp[-1].lex_str).str, ++ (yyvsp[-1].lex_str).length) : ++ (yyvsp[-1].lex_str).str; ++ if ((yyval.simple_string) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 35435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2370: ++#line 13791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)=(yyvsp[0].item); } ++#line 35441 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2371: ++#line 13792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.item)=0; } ++#line 35447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2372: ++#line 13794 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)=new (thd->mem_root) Item_string("ON", 2, system_charset_info); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 35457 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2373: ++#line 13800 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)=new (thd->mem_root) Item_string("ALL", 3, system_charset_info); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 35467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2374: ++#line 13806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.item)=new (thd->mem_root) Item_string("binary", 6, system_charset_info); ++ if ((yyval.item) == NULL) ++ MYSQL_YYABORT; ++ } ++#line 35477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2375: ++#line 13817 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_LOCK_TABLES; ++ } ++#line 35492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2376: ++#line 13828 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2377: ++#line 13832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 35504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2378: ++#line 13833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { } ++#line 35510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2381: ++#line 13843 "/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); ++ if (!Select->add_table_to_list(thd, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), 0, lock_type, ++ (lock_for_write ? ++ lock_type == TL_WRITE_CONCURRENT_INSERT ? ++ MDL_SHARED_WRITE : ++ MDL_SHARED_NO_READ_WRITE : ++ MDL_SHARED_READ))) ++ MYSQL_YYABORT; ++ } ++#line 35526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2382: ++#line 13857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= TL_READ_NO_INSERT; } ++#line 35532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2383: ++#line 13858 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= TL_WRITE_DEFAULT; } ++#line 35538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2384: ++#line 13860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); ++ } ++#line 35546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2385: ++#line 13864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= TL_WRITE_LOW_PRIORITY; } ++#line 35552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2386: ++#line 13865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= TL_READ; } ++#line 35558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2387: ++#line 13870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_UNLOCK_TABLES; ++ } ++#line 35573 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2388: ++#line 13881 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35579 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2389: ++#line 13890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command = SQLCOM_HA_OPEN; ++ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-2].table), (yyvsp[0].lex_str_ptr), 0)) ++ MYSQL_YYABORT; ++ } ++#line 35595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2390: ++#line 13902 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER"); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command = SQLCOM_HA_CLOSE; ++ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), 0, 0)) ++ MYSQL_YYABORT; ++ } ++#line 35611 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2391: ++#line 13914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->sphead) ++ { ++ my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER"); ++ MYSQL_YYABORT; ++ } ++ lex->expr_allows_subselect= FALSE; ++ lex->sql_command = SQLCOM_HA_READ; ++ lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */ ++ Item *one= new (thd->mem_root) Item_int((int32) 1); ++ if (one == NULL) ++ MYSQL_YYABORT; ++ lex->current_select->select_limit= one; ++ lex->current_select->offset_limit= 0; ++ lex->limit_rows_examined= 0; ++ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), 0, 0)) ++ MYSQL_YYABORT; ++ } ++#line 35635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2392: ++#line 13934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->expr_allows_subselect= TRUE; ++ /* Stored functions are not supported for HANDLER READ. */ ++ if (Lex->uses_stored_routines()) ++ { ++ my_error(ER_NOT_SUPPORTED_YET, MYF(0), ++ "stored functions in HANDLER ... READ"); ++ MYSQL_YYABORT; ++ } ++ } ++#line 35650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2393: ++#line 13947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ident= null_lex_str; } ++#line 35656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2394: ++#line 13948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ident= (yyvsp[-1].lex_str); } ++#line 35662 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2395: ++#line 13952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ha_read_mode = RFIRST; } ++#line 35668 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2396: ++#line 13953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ha_read_mode = RNEXT; } ++#line 35674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2397: ++#line 13957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ha_read_mode = RFIRST; } ++#line 35680 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2398: ++#line 13958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ha_read_mode = RNEXT; } ++#line 35686 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2399: ++#line 13959 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ha_read_mode = RPREV; } ++#line 35692 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2400: ++#line 13960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->ha_read_mode = RLAST; } ++#line 35698 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2401: ++#line 13962 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->ha_read_mode = RKEY; ++ lex->ha_rkey_mode=(yyvsp[0].ha_rkey_mode); ++ if (!(lex->insert_list = new List_item)) ++ MYSQL_YYABORT; ++ } ++#line 35710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2402: ++#line 13970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2403: ++#line 13974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } ++#line 35722 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2404: ++#line 13975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } ++#line 35728 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2405: ++#line 13976 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } ++#line 35734 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2406: ++#line 13977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } ++#line 35740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2407: ++#line 13978 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } ++#line 35746 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2408: ++#line 13985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2409: ++#line 13990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_REVOKE; ++ lex->type= 0; ++ } ++#line 35762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2410: ++#line 13996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->columns.elements) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_REVOKE; ++ lex->type= TYPE_ENUM_FUNCTION; ++ } ++#line 35777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2411: ++#line 14007 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->columns.elements) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_REVOKE; ++ lex->type= TYPE_ENUM_PROCEDURE; ++ } ++#line 35792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2412: ++#line 14018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_REVOKE_ALL; ++ } ++#line 35800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2413: ++#line 14022 "/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 35811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2414: ++#line 14032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2415: ++#line 14038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_GRANT; ++ lex->type= 0; ++ } ++#line 35827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2416: ++#line 14045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->columns.elements) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_GRANT; ++ lex->type= TYPE_ENUM_FUNCTION; ++ } ++#line 35842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2417: ++#line 14057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ if (lex->columns.elements) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command= SQLCOM_GRANT; ++ lex->type= TYPE_ENUM_PROCEDURE; ++ } ++#line 35857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2418: ++#line 14068 "/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 35868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2421: ++#line 14082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2422: ++#line 14084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->all_privileges= 1; ++ Lex->grant= GLOBAL_ACLS; ++ } ++#line 35883 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2427: ++#line 14102 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->which_columns = SELECT_ACL;} ++#line 35889 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2428: ++#line 14103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2429: ++#line 14105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->which_columns = INSERT_ACL;} ++#line 35901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2430: ++#line 14106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2431: ++#line 14108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->which_columns = UPDATE_ACL; } ++#line 35913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2432: ++#line 14109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35919 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2433: ++#line 14111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->which_columns = REFERENCES_ACL;} ++#line 35925 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2434: ++#line 14112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35931 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2435: ++#line 14113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= DELETE_ACL;} ++#line 35937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2436: ++#line 14114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 35943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2437: ++#line 14115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= INDEX_ACL;} ++#line 35949 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2438: ++#line 14116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= ALTER_ACL;} ++#line 35955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2439: ++#line 14117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= CREATE_ACL;} ++#line 35961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2440: ++#line 14118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= DROP_ACL;} ++#line 35967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2441: ++#line 14119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= EXECUTE_ACL;} ++#line 35973 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2442: ++#line 14120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= RELOAD_ACL;} ++#line 35979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2443: ++#line 14121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= SHUTDOWN_ACL;} ++#line 35985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2444: ++#line 14122 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= PROCESS_ACL;} ++#line 35991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2445: ++#line 14123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= FILE_ACL;} ++#line 35997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2446: ++#line 14124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= GRANT_ACL;} ++#line 36003 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2447: ++#line 14125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= SHOW_DB_ACL;} ++#line 36009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2448: ++#line 14126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= SUPER_ACL;} ++#line 36015 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2449: ++#line 14127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= CREATE_TMP_ACL;} ++#line 36021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2450: ++#line 14128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= LOCK_TABLES_ACL; } ++#line 36027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2451: ++#line 14129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= REPL_SLAVE_ACL; } ++#line 36033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2452: ++#line 14130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= REPL_CLIENT_ACL; } ++#line 36039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2453: ++#line 14131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= CREATE_VIEW_ACL; } ++#line 36045 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2454: ++#line 14132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= SHOW_VIEW_ACL; } ++#line 36051 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2455: ++#line 14133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= CREATE_PROC_ACL; } ++#line 36057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2456: ++#line 14134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= ALTER_PROC_ACL; } ++#line 36063 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2457: ++#line 14135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= CREATE_USER_ACL; } ++#line 36069 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2458: ++#line 14136 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= EVENT_ACL;} ++#line 36075 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2459: ++#line 14137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= TRIGGER_ACL; } ++#line 36081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2460: ++#line 14138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= CREATE_TABLESPACE_ACL; } ++#line 36087 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2461: ++#line 14142 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2462: ++#line 14143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36099 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2465: ++#line 14153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->x509_subject) ++ { ++ my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT"); ++ MYSQL_YYABORT; ++ } ++ lex->x509_subject=(yyvsp[0].lex_str).str; ++ } ++#line 36113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2466: ++#line 14163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->x509_issuer) ++ { ++ my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER"); ++ MYSQL_YYABORT; ++ } ++ lex->x509_issuer=(yyvsp[0].lex_str).str; ++ } ++#line 36127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2467: ++#line 14173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (lex->ssl_cipher) ++ { ++ my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER"); ++ MYSQL_YYABORT; ++ } ++ lex->ssl_cipher=(yyvsp[0].lex_str).str; ++ } ++#line 36141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2468: ++#line 14186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ size_t dummy; ++ if (lex->copy_db_to(&lex->current_select->db, &dummy)) ++ MYSQL_YYABORT; ++ if (lex->grant == GLOBAL_ACLS) ++ lex->grant = DB_ACLS & ~GRANT_ACL; ++ else if (lex->columns.elements) ++ { ++ my_message(ER_ILLEGAL_GRANT_FOR_TABLE, ++ ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 36160 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2469: ++#line 14201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->current_select->db = (yyvsp[-2].lex_str).str; ++ if (lex->grant == GLOBAL_ACLS) ++ lex->grant = DB_ACLS & ~GRANT_ACL; ++ else if (lex->columns.elements) ++ { ++ my_message(ER_ILLEGAL_GRANT_FOR_TABLE, ++ ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 36177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2470: ++#line 14214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->current_select->db = NULL; ++ if (lex->grant == GLOBAL_ACLS) ++ lex->grant= GLOBAL_ACLS & ~GRANT_ACL; ++ else if (lex->columns.elements) ++ { ++ my_message(ER_ILLEGAL_GRANT_FOR_TABLE, ++ ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0)); ++ MYSQL_YYABORT; ++ } ++ } ++#line 36194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2471: ++#line 14227 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[0].table),NULL, ++ TL_OPTION_UPDATING)) ++ MYSQL_YYABORT; ++ if (lex->grant == GLOBAL_ACLS) ++ lex->grant = TABLE_ACLS & ~GRANT_ACL; ++ } ++#line 36207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2472: ++#line 14239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->users_list.push_back((yyvsp[0].lex_user))) ++ MYSQL_YYABORT; ++ } ++#line 36216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2473: ++#line 14244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->users_list.push_back((yyvsp[0].lex_user))) ++ MYSQL_YYABORT; ++ } ++#line 36225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2474: ++#line 14252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->users_list.push_back((yyvsp[0].lex_user))) ++ MYSQL_YYABORT; ++ } ++#line 36234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2475: ++#line 14257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (Lex->users_list.push_back((yyvsp[0].lex_user))) ++ MYSQL_YYABORT; ++ } ++#line 36243 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2480: ++#line 14268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.lex_user)=(yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->password=(yyvsp[0].lex_str); ++ if ((yyvsp[0].lex_str).length) ++ { ++ if (thd->variables.old_passwords) ++ { ++ char *buff= ++ (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1); ++ if (buff == NULL) ++ MYSQL_YYABORT; ++ my_make_scrambled_password_323(buff, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ (yyvsp[-3].lex_user)->password.str= buff; ++ (yyvsp[-3].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323; ++ } ++ else ++ { ++ char *buff= ++ (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1); ++ if (buff == NULL) ++ MYSQL_YYABORT; ++ my_make_scrambled_password(buff, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); ++ (yyvsp[-3].lex_user)->password.str= buff; ++ (yyvsp[-3].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH; ++ } ++ } ++ } ++#line 36274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2481: ++#line 14295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.lex_user)= (yyvsp[-4].lex_user); ++ (yyvsp[-4].lex_user)->password= (yyvsp[0].lex_str); ++ } ++#line 36283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2482: ++#line 14300 "/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_lex_str; ++ } ++#line 36293 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2483: ++#line 14306 "/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 36303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2484: ++#line 14312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.lex_user)= (yyvsp[0].lex_user); (yyvsp[0].lex_user)->password= null_lex_str; } ++#line 36309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2485: ++#line 14317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->grant |= lex->which_columns; ++ } ++#line 36318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2489: ++#line 14331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ String *new_str = new (thd->mem_root) String((const char*) (yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,system_charset_info); ++ if (new_str == NULL) ++ MYSQL_YYABORT; ++ List_iterator iter(Lex->columns); ++ class LEX_COLUMN *point; ++ LEX *lex=Lex; ++ while ((point=iter++)) ++ { ++ if (!my_strcasecmp(system_charset_info, ++ point->column.c_ptr(), new_str->c_ptr())) ++ break; ++ } ++ lex->grant_tot_col|= lex->which_columns; ++ if (point) ++ point->rights |= lex->which_columns; ++ else ++ { ++ LEX_COLUMN *col= new LEX_COLUMN (*new_str,lex->which_columns); ++ if (col == NULL) ++ MYSQL_YYABORT; ++ lex->columns.push_back(col); ++ } ++ } ++#line 36347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2491: ++#line 14360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->ssl_type=SSL_TYPE_SPECIFIED; ++ } ++#line 36355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2492: ++#line 14364 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->ssl_type=SSL_TYPE_ANY; ++ } ++#line 36363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2493: ++#line 14368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->ssl_type=SSL_TYPE_X509; ++ } ++#line 36371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2494: ++#line 14372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->ssl_type=SSL_TYPE_NONE; ++ } ++#line 36379 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2495: ++#line 14378 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36385 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2497: ++#line 14383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36391 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2498: ++#line 14384 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= GRANT_ACL;} ++#line 36397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2499: ++#line 14388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2500: ++#line 14389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36409 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2501: ++#line 14393 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->grant |= GRANT_ACL;} ++#line 36415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2502: ++#line 14395 "/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 36425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2503: ++#line 14401 "/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 36435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2504: ++#line 14407 "/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 36445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2505: ++#line 14413 "/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 36455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2506: ++#line 14422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command = SQLCOM_BEGIN; ++ lex->start_transaction_opt= 0; ++ } ++#line 36465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2507: ++#line 14427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2508: ++#line 14431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2509: ++#line 14432 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2510: ++#line 14437 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } ++#line 36489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2511: ++#line 14438 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_yes_no_unk)= TVL_NO; } ++#line 36495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2512: ++#line 14439 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_yes_no_unk)= TVL_YES; } ++#line 36501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2513: ++#line 14444 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } ++#line 36507 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2514: ++#line 14445 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_yes_no_unk)= TVL_YES; } ++#line 36513 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2515: ++#line 14446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.m_yes_no_unk)= TVL_NO; } ++#line 36519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2516: ++#line 14450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36525 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2517: ++#line 14451 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36531 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2518: ++#line 14456 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_COMMIT; ++ /* Don't allow AND CHAIN RELEASE. */ ++ MYSQL_YYABORT_UNLESS((yyvsp[-1].m_yes_no_unk) != TVL_YES || (yyvsp[0].m_yes_no_unk) != TVL_YES); ++ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); ++ lex->tx_release= (yyvsp[0].m_yes_no_unk); ++ } ++#line 36544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2519: ++#line 14468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_ROLLBACK; ++ /* Don't allow AND CHAIN RELEASE. */ ++ MYSQL_YYABORT_UNLESS((yyvsp[-1].m_yes_no_unk) != TVL_YES || (yyvsp[0].m_yes_no_unk) != TVL_YES); ++ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); ++ lex->tx_release= (yyvsp[0].m_yes_no_unk); ++ } ++#line 36557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2520: ++#line 14478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; ++ lex->ident= (yyvsp[0].lex_str); ++ } ++#line 36567 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2521: ++#line 14487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_SAVEPOINT; ++ lex->ident= (yyvsp[0].lex_str); ++ } ++#line 36577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2522: ++#line 14496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; ++ lex->ident= (yyvsp[0].lex_str); ++ } ++#line 36587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2523: ++#line 14509 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2525: ++#line 14515 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_select_to_union_list(Lex, (bool)(yyvsp[0].num), TRUE)) ++ MYSQL_YYABORT; ++ } ++#line 36602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2526: ++#line 14520 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ Remove from the name resolution context stack the context of the ++ last select in the union. ++ */ ++ Lex->pop_context(); ++ } ++#line 36614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2527: ++#line 14530 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 0; } ++#line 36620 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2528: ++#line 14531 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 36626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2529: ++#line 14532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)= 1; } ++#line 36632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2530: ++#line 14536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.is_not_empty)= false; } ++#line 36638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2531: ++#line 14537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.is_not_empty)= true; } ++#line 36644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2532: ++#line 14541 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE); ++ SELECT_LEX *sel= lex->current_select; ++ SELECT_LEX_UNIT *unit= sel->master_unit(); ++ SELECT_LEX *fake= unit->fake_select_lex; ++ if (fake) ++ { ++ unit->global_parameters= fake; ++ fake->no_table_names_allowed= 1; ++ lex->current_select= fake; ++ } ++ thd->where= "global ORDER clause"; ++ } ++#line 36663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2533: ++#line 14556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ thd->lex->current_select->no_table_names_allowed= 0; ++ thd->where= ""; ++ } ++#line 36672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2536: ++#line 14568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=1; } ++#line 36678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2537: ++#line 14569 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=1; } ++#line 36684 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2538: ++#line 14570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { (yyval.num)=0; } ++#line 36690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2539: ++#line 14575 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); ++ } ++#line 36698 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2540: ++#line 14579 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); ++ } ++#line 36706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2542: ++#line 14588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (add_select_to_union_list(Lex, (bool)(yyvsp[0].num), FALSE)) ++ MYSQL_YYABORT; ++ } ++#line 36715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2543: ++#line 14594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->pop_context(); ++ (yyval.select_lex)= (yyvsp[-5].select_lex); ++ } ++#line 36724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2544: ++#line 14603 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ (yyval.select_lex)= (yyvsp[-1].select_lex); ++ } ++#line 36732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2545: ++#line 14609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ if (!lex->expr_allows_subselect || ++ lex->sql_command == (int)SQLCOM_PURGE) ++ { ++ my_parse_error(ER(ER_SYNTAX_ERROR)); ++ MYSQL_YYABORT; ++ } ++ /* ++ we are making a "derived table" for the parenthesis ++ as we need to have a lex level to fit the union ++ after the parenthesis, e.g. ++ (SELECT .. ) UNION ... becomes ++ SELECT * FROM ((SELECT ...) UNION ...) ++ */ ++ if (mysql_new_select(Lex, 1)) ++ MYSQL_YYABORT; ++ } ++#line 36755 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2546: ++#line 14630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex=Lex; ++ ++ lex->pop_context(); ++ SELECT_LEX *child= lex->current_select; ++ lex->current_select = lex->current_select->return_after_parsing(); ++ lex->nest_level--; ++ lex->current_select->n_child_sum_items += child->n_sum_items; ++ /* ++ A subselect can add fields to an outer select. Reserve space for ++ them. ++ */ ++ lex->current_select->select_n_where_fields+= ++ child->select_n_where_fields; ++ ++ /* ++ Aggregate functions in having clause may add fields to an outer ++ select. Count them also. ++ */ ++ lex->current_select->select_n_having_items+= ++ child->select_n_having_items; ++ } ++#line 36782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2551: ++#line 14665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->options|= SELECT_STRAIGHT_JOIN; } ++#line 36788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2552: ++#line 14667 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (check_simple_select()) ++ MYSQL_YYABORT; ++ YYPS->m_lock_type= TL_READ_HIGH_PRIORITY; ++ YYPS->m_mdl_type= MDL_SHARED_READ; ++ Select->options|= SELECT_HIGH_PRIORITY; ++ } ++#line 36800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2553: ++#line 14674 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->options|= SELECT_DISTINCT; } ++#line 36806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2554: ++#line 14675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->options|= SELECT_SMALL_RESULT; } ++#line 36812 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2555: ++#line 14676 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->options|= SELECT_BIG_RESULT; } ++#line 36818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2556: ++#line 14678 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (check_simple_select()) ++ MYSQL_YYABORT; ++ Select->options|= OPTION_BUFFER_RESULT; ++ } ++#line 36828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2557: ++#line 14684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ if (check_simple_select()) ++ MYSQL_YYABORT; ++ Select->options|= OPTION_FOUND_ROWS; ++ } ++#line 36838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2558: ++#line 14689 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Select->options|= SELECT_ALL; } ++#line 36844 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2559: ++#line 14700 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2560: ++#line 14702 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2561: ++#line 14704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2575: ++#line 14737 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ /* ++ We have to distinguish missing DEFINER-clause from case when ++ CURRENT_USER specified as definer explicitly in order to properly ++ handle CREATE TRIGGER statements which come to replication thread ++ from older master servers (i.e. to create non-suid trigger in this ++ case). ++ */ ++ thd->lex->definer= 0; ++ } ++#line 36877 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2576: ++#line 14751 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ thd->lex->definer= get_current_user(thd, (yyvsp[0].lex_user)); ++ } ++#line 36885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2577: ++#line 14764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2578: ++#line 14766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2579: ++#line 14768 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2580: ++#line 14773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; } ++#line 36909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2581: ++#line 14778 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; } ++#line 36915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2582: ++#line 14780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; } ++#line 36921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2583: ++#line 14782 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; } ++#line 36927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2584: ++#line 14787 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_suid= VIEW_SUID_DEFAULT; } ++#line 36933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2585: ++#line 14789 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_suid= VIEW_SUID_DEFINER; } ++#line 36939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2586: ++#line 14791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_suid= VIEW_SUID_INVOKER; } ++#line 36945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2587: ++#line 14796 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ lex->sql_command= SQLCOM_CREATE_VIEW; ++ /* first table in list is target VIEW name */ ++ if (!lex->select_lex.add_table_to_list(thd, (yyvsp[0].table), NULL, ++ TL_OPTION_UPDATING, ++ TL_IGNORE, ++ MDL_EXCLUSIVE)) ++ MYSQL_YYABORT; ++ lex->query_tables->open_strategy= TABLE_LIST::OPEN_STUB; ++ } ++#line 36961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2589: ++#line 14812 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 36967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2591: ++#line 14818 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->view_list.push_back((LEX_STRING*) ++ sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))); ++ } ++#line 36976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2592: ++#line 14823 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->view_list.push_back((LEX_STRING*) ++ sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))); ++ } ++#line 36985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2593: ++#line 14830 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->parsing_options.allows_variable= FALSE; ++ lex->parsing_options.allows_select_into= FALSE; ++ lex->parsing_options.allows_select_procedure= FALSE; ++ lex->parsing_options.allows_derived= FALSE; ++ lex->create_view_select.str= (char *) YYLIP->get_cpp_ptr(); ++ } ++#line 36998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2594: ++#line 14839 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str; ++ void *create_view_select= thd->memdup(lex->create_view_select.str, len); ++ lex->create_view_select.length= len; ++ lex->create_view_select.str= (char *) create_view_select; ++ trim_whitespace(thd->charset(), &lex->create_view_select); ++ lex->parsing_options.allows_variable= TRUE; ++ lex->parsing_options.allows_select_into= TRUE; ++ lex->parsing_options.allows_select_procedure= TRUE; ++ lex->parsing_options.allows_derived= TRUE; ++ } ++#line 37015 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2597: ++#line 14860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_check= VIEW_CHECK_NONE; } ++#line 37021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2598: ++#line 14862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_check= VIEW_CHECK_CASCADED; } ++#line 37027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2599: ++#line 14864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_check= VIEW_CHECK_CASCADED; } ++#line 37033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2600: ++#line 14866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->create_view_check= VIEW_CHECK_LOCAL; } ++#line 37039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2601: ++#line 14883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $8 */ ++ Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start(); ++ } ++#line 37047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2602: ++#line 14889 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $12 */ ++ Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start(); ++ } ++#line 37055 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2603: ++#line 14894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $15 */ ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ sp_head *sp; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER"); ++ MYSQL_YYABORT; ++ } ++ ++ if (!(sp= new sp_head())) ++ MYSQL_YYABORT; ++ sp->reset_thd_mem_root(thd); ++ sp->init(lex); ++ sp->m_type= TYPE_ENUM_TRIGGER; ++ sp->init_sp_name(thd, (yyvsp[-11].spname)); ++ lex->stmt_definition_begin= (yyvsp[-12].simple_string); ++ lex->ident.str= (yyvsp[-7].simple_string); ++ lex->ident.length= (yyvsp[-3].simple_string) - (yyvsp[-7].simple_string); ++ ++ lex->sphead= sp; ++ lex->spname= (yyvsp[-11].spname); ++ ++ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); ++ lex->sphead->m_chistics= &lex->sp_chistics; ++ lex->sphead->set_body_start(thd, lip->get_cpp_ptr()); ++ } ++#line 37088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2604: ++#line 14923 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $17 */ ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ ++ lex->sql_command= SQLCOM_CREATE_TRIGGER; ++ sp->set_stmt_end(thd); ++ sp->restore_thd_mem_root(thd); ++ ++ if (sp->is_not_allowed_in_function("trigger")) ++ MYSQL_YYABORT; ++ ++ /* ++ We have to do it after parsing trigger body, because some of ++ sp_proc_stmt alternatives are not saving/restoring LEX, so ++ lex->query_tables can be wiped out. ++ */ ++ if (!lex->select_lex.add_table_to_list(thd, (yyvsp[-7].table), ++ (LEX_STRING*) 0, ++ TL_OPTION_UPDATING, ++ TL_READ_NO_INSERT, ++ MDL_SHARED_NO_WRITE)) ++ MYSQL_YYABORT; ++ } ++#line 37116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2605: ++#line 14957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ if (is_native_function(thd, & (yyvsp[-4].lex_str))) ++ { ++ my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0), ++ (yyvsp[-4].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command = SQLCOM_CREATE_FUNCTION; ++ lex->udf.type= UDFTYPE_AGGREGATE; ++ lex->stmt_definition_begin= (yyvsp[-6].simple_string); ++ lex->udf.name = (yyvsp[-4].lex_str); ++ lex->udf.returns=(Item_result) (yyvsp[-2].num); ++ lex->udf.dl=(yyvsp[0].lex_str).str; ++ } ++#line 37136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2606: ++#line 14974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ if (is_native_function(thd, & (yyvsp[-4].lex_str))) ++ { ++ my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0), ++ (yyvsp[-4].lex_str).str); ++ MYSQL_YYABORT; ++ } ++ lex->sql_command = SQLCOM_CREATE_FUNCTION; ++ lex->udf.type= UDFTYPE_FUNCTION; ++ lex->stmt_definition_begin= (yyvsp[-6].simple_string); ++ lex->udf.name = (yyvsp[-4].lex_str); ++ lex->udf.returns=(Item_result) (yyvsp[-2].num); ++ lex->udf.dl=(yyvsp[0].lex_str).str; ++ } ++#line 37156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2607: ++#line 14996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $5 */ ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ sp_head *sp; ++ const char* tmp_param_begin; ++ ++ lex->stmt_definition_begin= (yyvsp[-3].simple_string); ++ lex->spname= (yyvsp[-1].spname); ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION"); ++ MYSQL_YYABORT; ++ } ++ /* Order is important here: new - reset - init */ ++ sp= new sp_head(); ++ if (sp == NULL) ++ MYSQL_YYABORT; ++ sp->reset_thd_mem_root(thd); ++ sp->init(lex); ++ sp->init_sp_name(thd, lex->spname); ++ ++ sp->m_type= TYPE_ENUM_FUNCTION; ++ lex->sphead= sp; ++ ++ tmp_param_begin= lip->get_cpp_tok_start(); ++ tmp_param_begin++; ++ lex->sphead->m_param_begin= tmp_param_begin; ++ } ++#line 37190 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2608: ++#line 15027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $8 */ ++ Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); ++ } ++#line 37198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2609: ++#line 15031 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $10 */ ++ LEX *lex= Lex; ++ lex->charset= NULL; ++ lex->length= lex->dec= NULL; ++ lex->interval_list.empty(); ++ lex->type= 0; ++ lex->vcol_info= 0; ++ } ++#line 37211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2610: ++#line 15040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $12 */ ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ /* ++ This was disabled in 5.1.12. See bug #20701 ++ When collation support in SP is implemented, then this test ++ should be removed. ++ */ ++ if (((yyvsp[0].num) == MYSQL_TYPE_STRING || (yyvsp[0].num) == MYSQL_TYPE_VARCHAR) ++ && (lex->type & BINCMP_FLAG)) ++ { ++ my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation"); ++ MYSQL_YYABORT; ++ } ++ ++ if (sp->fill_field_definition(thd, lex, ++ (enum enum_field_types) (yyvsp[0].num), ++ &sp->m_return_field_def)) ++ MYSQL_YYABORT; ++ ++ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); ++ } ++#line 37238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2611: ++#line 15063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { /* $14 */ ++ LEX *lex= thd->lex; ++ Lex_input_stream *lip= YYLIP; ++ ++ lex->sphead->m_chistics= &lex->sp_chistics; ++ lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); ++ } ++#line 37250 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2612: ++#line 15071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ sp_head *sp= lex->sphead; ++ ++ if (sp->is_not_allowed_in_function("function")) ++ MYSQL_YYABORT; ++ ++ lex->sql_command= SQLCOM_CREATE_SPFUNCTION; ++ sp->set_stmt_end(thd); ++ if (!(sp->m_flags & sp_head::HAS_RETURN)) ++ { ++ my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str); ++ MYSQL_YYABORT; ++ } ++ if (is_native_function(thd, & sp->m_name)) ++ { ++ /* ++ This warning will be printed when ++ [1] A client query is parsed, ++ [2] A stored function is loaded by db_load_routine. ++ Printing the warning for [2] is intentional, to cover the ++ following scenario: ++ - A user define a SF 'foo' using MySQL 5.N ++ - An application uses select foo(), and works. ++ - MySQL 5.{N+1} defines a new native function 'foo', as ++ part of a new feature. ++ - MySQL 5.{N+1} documentation is updated, and should mention ++ that there is a potential incompatible change in case of ++ existing stored function named 'foo'. ++ - The user deploys 5.{N+1}. At this point, 'select foo()' ++ means something different, and the user code is most likely ++ broken (it's only safe if the code is 'select db.foo()'). ++ With a warning printed when the SF is loaded (which has to occur ++ before the call), the warning will provide a hint explaining ++ the root cause of a later failure of 'select foo()'. ++ With no warning printed, the user code will fail with no ++ apparent reason. ++ Printing a warning each time db_load_routine is executed for ++ an ambiguous function is annoying, since that can happen a lot, ++ but in practice should not happen unless there *are* name ++ collisions. ++ If a collision exists, it should not be silenced but fixed. ++ */ ++ push_warning_printf(thd, ++ MYSQL_ERROR::WARN_LEVEL_NOTE, ++ ER_NATIVE_FCT_NAME_COLLISION, ++ ER(ER_NATIVE_FCT_NAME_COLLISION), ++ sp->m_name.str); ++ } ++ sp->restore_thd_mem_root(thd); ++ } ++#line 37306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2613: ++#line 15126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp; ++ ++ if (lex->sphead) ++ { ++ my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE"); ++ MYSQL_YYABORT; ++ } ++ ++ lex->stmt_definition_begin= (yyvsp[-1].simple_string); ++ ++ /* Order is important here: new - reset - init */ ++ sp= new sp_head(); ++ if (sp == NULL) ++ MYSQL_YYABORT; ++ sp->reset_thd_mem_root(thd); ++ sp->init(lex); ++ sp->m_type= TYPE_ENUM_PROCEDURE; ++ sp->init_sp_name(thd, (yyvsp[0].spname)); ++ ++ lex->sphead= sp; ++ } ++#line 37334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2614: ++#line 15150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ const char* tmp_param_begin; ++ ++ tmp_param_begin= YYLIP->get_cpp_tok_start(); ++ tmp_param_begin++; ++ Lex->sphead->m_param_begin= tmp_param_begin; ++ } ++#line 37346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2615: ++#line 15159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ ++ lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); ++ bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); ++ } ++#line 37357 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2616: ++#line 15166 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= thd->lex; ++ ++ lex->sphead->m_chistics= &lex->sp_chistics; ++ lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); ++ } ++#line 37368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2617: ++#line 15173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ sp_head *sp= lex->sphead; ++ ++ sp->set_stmt_end(thd); ++ lex->sql_command= SQLCOM_CREATE_PROCEDURE; ++ sp->restore_thd_mem_root(thd); ++ } ++#line 37381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2618: ++#line 15187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_XA_START; ++ } ++#line 37389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2619: ++#line 15191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_XA_END; ++ } ++#line 37397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2620: ++#line 15195 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_XA_PREPARE; ++ } ++#line 37405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2621: ++#line 15199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_XA_COMMIT; ++ } ++#line 37413 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2622: ++#line 15203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_XA_ROLLBACK; ++ } ++#line 37421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2623: ++#line 15207 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ Lex->sql_command = SQLCOM_XA_RECOVER; ++ } ++#line 37429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2624: ++#line 15214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE); ++ if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID)))) ++ MYSQL_YYABORT; ++ Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0); ++ } ++#line 37440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2625: ++#line 15221 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE); ++ if (!(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 37451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2626: ++#line 15228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && (yyvsp[-2].string)->length() <= MAXBQUALSIZE); ++ if (!(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 37462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2627: ++#line 15237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 37468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2628: ++#line 15238 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 37474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2629: ++#line 15242 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_NONE; } ++#line 37480 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2630: ++#line 15243 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_JOIN; } ++#line 37486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2631: ++#line 15244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_RESUME; } ++#line 37492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2632: ++#line 15248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_NONE; } ++#line 37498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2633: ++#line 15249 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_ONE_PHASE; } ++#line 37504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2634: ++#line 15254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_NONE; } ++#line 37510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2635: ++#line 15256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_SUSPEND; } ++#line 37516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2637: ++#line 15261 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ {} ++#line 37522 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2638: ++#line 15262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { Lex->xa_opt=XA_FOR_MIGRATE; } ++#line 37528 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2639: ++#line 15267 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_INSTALL_PLUGIN; ++ lex->comment= (yyvsp[-2].lex_str); ++ lex->ident= (yyvsp[0].lex_str); ++ } ++#line 37539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2640: ++#line 15274 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_INSTALL_PLUGIN; ++ lex->comment= null_lex_str; ++ lex->ident= (yyvsp[0].lex_str); ++ } ++#line 37550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2641: ++#line 15284 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; ++ lex->comment= (yyvsp[0].lex_str); ++ } ++#line 37560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2642: ++#line 15290 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ LEX *lex= Lex; ++ lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; ++ lex->comment= null_lex_str; ++ lex->ident= (yyvsp[0].lex_str); ++ } ++#line 37571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ case 2643: ++#line 15301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ ++ { ++ YYERROR; ++ } ++#line 37579 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ break; ++ ++ ++#line 37583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ ++ default: break; ++ } ++ /* User semantic actions sometimes alter yychar, and that requires ++ that yytoken be updated with the new translation. We take the ++ approach of translating immediately before every use of yytoken. ++ One alternative is translating here after every semantic action, ++ but that translation would be missed if the semantic action invokes ++ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or ++ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an ++ incorrect destructor might then be invoked immediately. In the ++ case of YYERROR or YYBACKUP, subsequent parser actions might lead ++ to an incorrect destructor call or verbose syntax error message ++ before the lookahead is translated. */ ++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); ++ ++ YYPOPSTACK (yylen); ++ yylen = 0; ++ YY_STACK_PRINT (yyss, yyssp); ++ ++ *++yyvsp = yyval; ++ ++ /* Now 'shift' the result of the reduction. Determine what state ++ that goes to, based on the state we popped back to and the rule ++ number reduced by. */ ++ ++ yyn = yyr1[yyn]; ++ ++ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; ++ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) ++ yystate = yytable[yystate]; ++ else ++ yystate = yydefgoto[yyn - YYNTOKENS]; ++ ++ goto yynewstate; ++ ++ ++/*--------------------------------------. ++| yyerrlab -- here on detecting error. | ++`--------------------------------------*/ ++yyerrlab: ++ /* Make sure we have latest lookahead translation. See comments at ++ user semantic actions for why this is necessary. */ ++ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); ++ ++ /* If not already recovering from an error, report this error. */ ++ if (!yyerrstatus) ++ { ++ ++yynerrs; ++#if ! YYERROR_VERBOSE ++ yyerror (thd, YY_("syntax error")); ++#else ++# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ ++ yyssp, yytoken) ++ { ++ char const *yymsgp = YY_("syntax error"); ++ int yysyntax_error_status; ++ yysyntax_error_status = YYSYNTAX_ERROR; ++ if (yysyntax_error_status == 0) ++ yymsgp = yymsg; ++ else if (yysyntax_error_status == 1) ++ { ++ if (yymsg != yymsgbuf) ++ YYSTACK_FREE (yymsg); ++ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); ++ if (!yymsg) ++ { ++ yymsg = yymsgbuf; ++ yymsg_alloc = sizeof yymsgbuf; ++ yysyntax_error_status = 2; ++ } ++ else ++ { ++ yysyntax_error_status = YYSYNTAX_ERROR; ++ yymsgp = yymsg; ++ } ++ } ++ yyerror (thd, yymsgp); ++ if (yysyntax_error_status == 2) ++ goto yyexhaustedlab; ++ } ++# undef YYSYNTAX_ERROR ++#endif ++ } ++ ++ ++ ++ if (yyerrstatus == 3) ++ { ++ /* If just tried and failed to reuse lookahead token after an ++ error, discard it. */ ++ ++ if (yychar <= YYEOF) ++ { ++ /* Return failure if at end of input. */ ++ if (yychar == YYEOF) ++ YYABORT; ++ } ++ else ++ { ++ yydestruct ("Error: discarding", ++ yytoken, &yylval, thd); ++ yychar = YYEMPTY; ++ } ++ } ++ ++ /* Else will try to reuse lookahead token after shifting the error ++ token. */ ++ goto yyerrlab1; ++ ++ ++/*---------------------------------------------------. ++| yyerrorlab -- error raised explicitly by YYERROR. | ++`---------------------------------------------------*/ ++yyerrorlab: ++ ++ /* Pacify compilers like GCC when the user code never invokes ++ YYERROR and the label yyerrorlab therefore never appears in user ++ code. */ ++ if (/*CONSTCOND*/ 0) ++ goto yyerrorlab; ++ ++ /* Do not reclaim the symbols of the rule whose action triggered ++ this YYERROR. */ ++ YYPOPSTACK (yylen); ++ yylen = 0; ++ YY_STACK_PRINT (yyss, yyssp); ++ yystate = *yyssp; ++ goto yyerrlab1; ++ ++ ++/*-------------------------------------------------------------. ++| yyerrlab1 -- common code for both syntax error and YYERROR. | ++`-------------------------------------------------------------*/ ++yyerrlab1: ++ yyerrstatus = 3; /* Each real token shifted decrements this. */ ++ ++ for (;;) ++ { ++ yyn = yypact[yystate]; ++ if (!yypact_value_is_default (yyn)) ++ { ++ yyn += YYTERROR; ++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) ++ { ++ yyn = yytable[yyn]; ++ if (0 < yyn) ++ break; ++ } ++ } ++ ++ /* Pop the current state because it cannot handle the error token. */ ++ if (yyssp == yyss) ++ YYABORT; ++ ++ ++ yydestruct ("Error: popping", ++ yystos[yystate], yyvsp, thd); ++ YYPOPSTACK (1); ++ yystate = *yyssp; ++ YY_STACK_PRINT (yyss, yyssp); ++ } ++ ++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++ *++yyvsp = yylval; ++ YY_IGNORE_MAYBE_UNINITIALIZED_END ++ ++ ++ /* Shift the error token. */ ++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); ++ ++ yystate = yyn; ++ goto yynewstate; ++ ++ ++/*-------------------------------------. ++| yyacceptlab -- YYACCEPT comes here. | ++`-------------------------------------*/ ++yyacceptlab: ++ yyresult = 0; ++ goto yyreturn; ++ ++/*-----------------------------------. ++| yyabortlab -- YYABORT comes here. | ++`-----------------------------------*/ ++yyabortlab: ++ yyresult = 1; ++ goto yyreturn; ++ ++#if !defined yyoverflow || YYERROR_VERBOSE ++/*-------------------------------------------------. ++| yyexhaustedlab -- memory exhaustion comes here. | ++`-------------------------------------------------*/ ++yyexhaustedlab: ++ yyerror (thd, YY_("memory exhausted")); ++ yyresult = 2; ++ /* Fall through. */ ++#endif ++ ++yyreturn: ++ if (yychar != YYEMPTY) ++ { ++ /* Make sure we have latest lookahead translation. See comments at ++ user semantic actions for why this is necessary. */ ++ yytoken = YYTRANSLATE (yychar); ++ yydestruct ("Cleanup: discarding lookahead", ++ yytoken, &yylval, thd); ++ } ++ /* Do not reclaim the symbols of the rule whose action triggered ++ this YYABORT or YYACCEPT. */ ++ YYPOPSTACK (yylen); ++ YY_STACK_PRINT (yyss, yyssp); ++ while (yyssp != yyss) ++ { ++ yydestruct ("Cleanup: popping", ++ yystos[*yyssp], yyvsp, thd); ++ YYPOPSTACK (1); ++ } ++#ifndef yyoverflow ++ if (yyss != yyssa) ++ YYSTACK_FREE (yyss); ++#endif ++#if YYERROR_VERBOSE ++ if (yymsg != yymsgbuf) ++ YYSTACK_FREE (yymsg); ++#endif ++ return yyresult; ++} +diff --git a/sql/sql_yacc.h b/sql/sql_yacc.h +new file mode 100644 +index 0000000..75959ac +--- /dev/null ++++ b/sql/sql_yacc.h +@@ -0,0 +1,1348 @@ ++/* A Bison parser, made by GNU Bison 3.0.2. */ ++ ++/* Bison interface for Yacc-like parsers in C ++ ++ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. ++ ++ This program is free software: you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . */ ++ ++/* As a special exception, you may create a larger work that contains ++ part or all of the Bison parser skeleton and distribute that work ++ under terms of your choice, so long as that work isn't itself a ++ parser generator using the skeleton or a modified version thereof ++ as a parser skeleton. Alternatively, if you modify or redistribute ++ the parser skeleton itself, you may (at your option) remove this ++ special exception, which will cause the skeleton and the resulting ++ Bison output files to be licensed under the GNU General Public ++ License without this special exception. ++ ++ This special exception was added by the Free Software Foundation in ++ version 2.2 of Bison. */ ++ ++#ifndef YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED ++# define YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED ++/* Debug traces. */ ++#ifndef YYDEBUG ++# define YYDEBUG 0 ++#endif ++#if YYDEBUG ++extern int MYSQLdebug; ++#endif ++ ++/* Token type. */ ++#ifndef YYTOKENTYPE ++# define YYTOKENTYPE ++ enum yytokentype ++ { ++ ABORT_SYM = 258, ++ ACCESSIBLE_SYM = 259, ++ ACTION = 260, ++ ADD = 261, ++ ADDDATE_SYM = 262, ++ AFTER_SYM = 263, ++ AGAINST = 264, ++ AGGREGATE_SYM = 265, ++ ALGORITHM_SYM = 266, ++ ALL = 267, ++ ALTER = 268, ++ ALWAYS_SYM = 269, ++ ANALYZE_SYM = 270, ++ AND_AND_SYM = 271, ++ AND_SYM = 272, ++ ANY_SYM = 273, ++ AS = 274, ++ ASC = 275, ++ ASCII_SYM = 276, ++ ASENSITIVE_SYM = 277, ++ AT_SYM = 278, ++ AUTHORS_SYM = 279, ++ AUTOEXTEND_SIZE_SYM = 280, ++ AUTO_INC = 281, ++ AVG_ROW_LENGTH = 282, ++ AVG_SYM = 283, ++ BACKUP_SYM = 284, ++ BEFORE_SYM = 285, ++ BEGIN_SYM = 286, ++ BETWEEN_SYM = 287, ++ BIGINT = 288, ++ BINARY = 289, ++ BINLOG_SYM = 290, ++ BIN_NUM = 291, ++ BIT_AND = 292, ++ BIT_OR = 293, ++ BIT_SYM = 294, ++ BIT_XOR = 295, ++ BLOB_SYM = 296, ++ BLOCK_SYM = 297, ++ BOOLEAN_SYM = 298, ++ BOOL_SYM = 299, ++ BOTH = 300, ++ BTREE_SYM = 301, ++ BY = 302, ++ BYTE_SYM = 303, ++ CACHE_SYM = 304, ++ CALL_SYM = 305, ++ CASCADE = 306, ++ CASCADED = 307, ++ CASE_SYM = 308, ++ CAST_SYM = 309, ++ CATALOG_NAME_SYM = 310, ++ CHAIN_SYM = 311, ++ CHANGE = 312, ++ CHANGED = 313, ++ CHARSET = 314, ++ CHAR_SYM = 315, ++ CHECKPOINT_SYM = 316, ++ CHECKSUM_SYM = 317, ++ CHECK_SYM = 318, ++ CIPHER_SYM = 319, ++ CLASS_ORIGIN_SYM = 320, ++ CLIENT_SYM = 321, ++ CLIENT_STATS_SYM = 322, ++ CLOSE_SYM = 323, ++ COALESCE = 324, ++ CODE_SYM = 325, ++ COLLATE_SYM = 326, ++ COLLATION_SYM = 327, ++ COLUMNS = 328, ++ COLUMN_ADD_SYM = 329, ++ COLUMN_CREATE_SYM = 330, ++ COLUMN_DELETE_SYM = 331, ++ COLUMN_EXISTS_SYM = 332, ++ COLUMN_GET_SYM = 333, ++ COLUMN_LIST_SYM = 334, ++ COLUMN_SYM = 335, ++ COLUMN_NAME_SYM = 336, ++ COMMENT_SYM = 337, ++ COMMITTED_SYM = 338, ++ COMMIT_SYM = 339, ++ COMPACT_SYM = 340, ++ COMPLETION_SYM = 341, ++ COMPRESSED_SYM = 342, ++ CONCURRENT = 343, ++ CONDITION_SYM = 344, ++ CONNECTION_SYM = 345, ++ CONSISTENT_SYM = 346, ++ CONSTRAINT = 347, ++ CONSTRAINT_CATALOG_SYM = 348, ++ CONSTRAINT_NAME_SYM = 349, ++ CONSTRAINT_SCHEMA_SYM = 350, ++ CONTAINS_SYM = 351, ++ CONTEXT_SYM = 352, ++ CONTINUE_SYM = 353, ++ CONTRIBUTORS_SYM = 354, ++ CONVERT_SYM = 355, ++ COUNT_SYM = 356, ++ CPU_SYM = 357, ++ CREATE = 358, ++ CROSS = 359, ++ CUBE_SYM = 360, ++ CURDATE = 361, ++ CURRENT_USER = 362, ++ CURSOR_SYM = 363, ++ CURSOR_NAME_SYM = 364, ++ CURTIME = 365, ++ DATABASE = 366, ++ DATABASES = 367, ++ DATAFILE_SYM = 368, ++ DATA_SYM = 369, ++ DATETIME = 370, ++ DATE_ADD_INTERVAL = 371, ++ DATE_SUB_INTERVAL = 372, ++ DATE_SYM = 373, ++ DAY_HOUR_SYM = 374, ++ DAY_MICROSECOND_SYM = 375, ++ DAY_MINUTE_SYM = 376, ++ DAY_SECOND_SYM = 377, ++ DAY_SYM = 378, ++ DEALLOCATE_SYM = 379, ++ DECIMAL_NUM = 380, ++ DECIMAL_SYM = 381, ++ DECLARE_SYM = 382, ++ DEFAULT = 383, ++ DEFINER_SYM = 384, ++ DELAYED_SYM = 385, ++ DELAY_KEY_WRITE_SYM = 386, ++ DELETE_SYM = 387, ++ DESC = 388, ++ DESCRIBE = 389, ++ DES_KEY_FILE = 390, ++ DETERMINISTIC_SYM = 391, ++ DIRECTORY_SYM = 392, ++ DISABLE_SYM = 393, ++ DISCARD = 394, ++ DISK_SYM = 395, ++ DISTINCT = 396, ++ DIV_SYM = 397, ++ DOUBLE_SYM = 398, ++ DO_SYM = 399, ++ DROP = 400, ++ DUAL_SYM = 401, ++ DUMPFILE = 402, ++ DUPLICATE_SYM = 403, ++ DYNAMIC_SYM = 404, ++ EACH_SYM = 405, ++ ELSE = 406, ++ ELSEIF_SYM = 407, ++ ENABLE_SYM = 408, ++ ENCLOSED = 409, ++ END = 410, ++ ENDS_SYM = 411, ++ END_OF_INPUT = 412, ++ ENGINES_SYM = 413, ++ ENGINE_SYM = 414, ++ ENUM = 415, ++ EQUAL_SYM = 416, ++ ERROR_SYM = 417, ++ ERRORS = 418, ++ ESCAPED = 419, ++ ESCAPE_SYM = 420, ++ EVENTS_SYM = 421, ++ EVENT_SYM = 422, ++ EVERY_SYM = 423, ++ EXAMINED_SYM = 424, ++ EXECUTE_SYM = 425, ++ EXISTS = 426, ++ EXIT_SYM = 427, ++ EXPANSION_SYM = 428, ++ EXTENDED_SYM = 429, ++ EXTENT_SIZE_SYM = 430, ++ EXTRACT_SYM = 431, ++ FALSE_SYM = 432, ++ FAST_SYM = 433, ++ FAULTS_SYM = 434, ++ FETCH_SYM = 435, ++ FILE_SYM = 436, ++ FIRST_SYM = 437, ++ FIXED_SYM = 438, ++ FLOAT_NUM = 439, ++ FLOAT_SYM = 440, ++ FLUSH_SYM = 441, ++ FORCE_SYM = 442, ++ FOREIGN = 443, ++ FOR_SYM = 444, ++ FOUND_SYM = 445, ++ FROM = 446, ++ FULL = 447, ++ FULLTEXT_SYM = 448, ++ FUNCTION_SYM = 449, ++ GE = 450, ++ GENERAL = 451, ++ GENERATED_SYM = 452, ++ GEOMETRYCOLLECTION = 453, ++ GEOMETRY_SYM = 454, ++ GET_FORMAT = 455, ++ GLOBAL_SYM = 456, ++ GRANT = 457, ++ GRANTS = 458, ++ GROUP_SYM = 459, ++ GROUP_CONCAT_SYM = 460, ++ HANDLER_SYM = 461, ++ HARD_SYM = 462, ++ HASH_SYM = 463, ++ HAVING = 464, ++ HELP_SYM = 465, ++ HEX_NUM = 466, ++ HEX_STRING = 467, ++ HIGH_PRIORITY = 468, ++ HOST_SYM = 469, ++ HOSTS_SYM = 470, ++ HOUR_MICROSECOND_SYM = 471, ++ HOUR_MINUTE_SYM = 472, ++ HOUR_SECOND_SYM = 473, ++ HOUR_SYM = 474, ++ IDENT = 475, ++ IDENTIFIED_SYM = 476, ++ IDENT_QUOTED = 477, ++ IF = 478, ++ IGNORE_SYM = 479, ++ IGNORE_SERVER_IDS_SYM = 480, ++ IMPORT = 481, ++ INDEXES = 482, ++ INDEX_SYM = 483, ++ INDEX_STATS_SYM = 484, ++ INFILE = 485, ++ INITIAL_SIZE_SYM = 486, ++ INNER_SYM = 487, ++ INOUT_SYM = 488, ++ INSENSITIVE_SYM = 489, ++ INSERT = 490, ++ INSERT_METHOD = 491, ++ INSTALL_SYM = 492, ++ INTERVAL_SYM = 493, ++ INTO = 494, ++ INT_SYM = 495, ++ INVOKER_SYM = 496, ++ IN_SYM = 497, ++ IO_SYM = 498, ++ IPC_SYM = 499, ++ IS = 500, ++ ISOLATION = 501, ++ ISSUER_SYM = 502, ++ ITERATE_SYM = 503, ++ JOIN_SYM = 504, ++ KEYS = 505, ++ KEY_BLOCK_SIZE = 506, ++ KEY_SYM = 507, ++ KILL_SYM = 508, ++ LANGUAGE_SYM = 509, ++ LAST_SYM = 510, ++ LAST_VALUE = 511, ++ LE = 512, ++ LEADING = 513, ++ LEAVES = 514, ++ LEAVE_SYM = 515, ++ LEFT = 516, ++ LESS_SYM = 517, ++ LEVEL_SYM = 518, ++ LEX_HOSTNAME = 519, ++ LIKE = 520, ++ LIMIT = 521, ++ LINEAR_SYM = 522, ++ LINES = 523, ++ LINESTRING = 524, ++ LIST_SYM = 525, ++ LOAD = 526, ++ LOCAL_SYM = 527, ++ LOCATOR_SYM = 528, ++ LOCKS_SYM = 529, ++ LOCK_SYM = 530, ++ LOGFILE_SYM = 531, ++ LOGS_SYM = 532, ++ LONGBLOB = 533, ++ LONGTEXT = 534, ++ LONG_NUM = 535, ++ LONG_SYM = 536, ++ LOOP_SYM = 537, ++ LOW_PRIORITY = 538, ++ MASTER_CONNECT_RETRY_SYM = 539, ++ MASTER_HOST_SYM = 540, ++ MASTER_LOG_FILE_SYM = 541, ++ MASTER_LOG_POS_SYM = 542, ++ MASTER_PASSWORD_SYM = 543, ++ MASTER_PORT_SYM = 544, ++ MASTER_SERVER_ID_SYM = 545, ++ MASTER_SSL_CAPATH_SYM = 546, ++ MASTER_SSL_CA_SYM = 547, ++ MASTER_SSL_CERT_SYM = 548, ++ MASTER_SSL_CIPHER_SYM = 549, ++ MASTER_SSL_KEY_SYM = 550, ++ MASTER_SSL_SYM = 551, ++ MASTER_SSL_VERIFY_SERVER_CERT_SYM = 552, ++ MASTER_SYM = 553, ++ MASTER_USER_SYM = 554, ++ MASTER_HEARTBEAT_PERIOD_SYM = 555, ++ MATCH = 556, ++ MAX_CONNECTIONS_PER_HOUR = 557, ++ MAX_QUERIES_PER_HOUR = 558, ++ MAX_ROWS = 559, ++ MAX_SIZE_SYM = 560, ++ MAX_SYM = 561, ++ MAX_UPDATES_PER_HOUR = 562, ++ MAX_USER_CONNECTIONS_SYM = 563, ++ MAX_VALUE_SYM = 564, ++ MEDIUMBLOB = 565, ++ MEDIUMINT = 566, ++ MEDIUMTEXT = 567, ++ MEDIUM_SYM = 568, ++ MEMORY_SYM = 569, ++ MERGE_SYM = 570, ++ MESSAGE_TEXT_SYM = 571, ++ MICROSECOND_SYM = 572, ++ MIGRATE_SYM = 573, ++ MINUTE_MICROSECOND_SYM = 574, ++ MINUTE_SECOND_SYM = 575, ++ MINUTE_SYM = 576, ++ MIN_ROWS = 577, ++ MIN_SYM = 578, ++ MODE_SYM = 579, ++ MODIFIES_SYM = 580, ++ MODIFY_SYM = 581, ++ MOD_SYM = 582, ++ MONTH_SYM = 583, ++ MULTILINESTRING = 584, ++ MULTIPOINT = 585, ++ MULTIPOLYGON = 586, ++ MUTEX_SYM = 587, ++ MYSQL_SYM = 588, ++ MYSQL_ERRNO_SYM = 589, ++ NAMES_SYM = 590, ++ NAME_SYM = 591, ++ NATIONAL_SYM = 592, ++ NATURAL = 593, ++ NCHAR_STRING = 594, ++ NCHAR_SYM = 595, ++ NDBCLUSTER_SYM = 596, ++ NE = 597, ++ NEG = 598, ++ NEW_SYM = 599, ++ NEXT_SYM = 600, ++ NODEGROUP_SYM = 601, ++ NONE_SYM = 602, ++ NOT2_SYM = 603, ++ NOT_SYM = 604, ++ NOW_SYM = 605, ++ NO_SYM = 606, ++ NO_WAIT_SYM = 607, ++ NO_WRITE_TO_BINLOG = 608, ++ NULL_SYM = 609, ++ NUM = 610, ++ NUMERIC_SYM = 611, ++ NVARCHAR_SYM = 612, ++ OFFSET_SYM = 613, ++ OLD_PASSWORD = 614, ++ ON = 615, ++ ONE_SHOT_SYM = 616, ++ ONE_SYM = 617, ++ ONLINE_SYM = 618, ++ OPEN_SYM = 619, ++ OPTIMIZE = 620, ++ OPTIONS_SYM = 621, ++ OPTION = 622, ++ OPTIONALLY = 623, ++ OR2_SYM = 624, ++ ORDER_SYM = 625, ++ OR_OR_SYM = 626, ++ OR_SYM = 627, ++ OUTER = 628, ++ OUTFILE = 629, ++ OUT_SYM = 630, ++ OWNER_SYM = 631, ++ PACK_KEYS_SYM = 632, ++ PAGE_SYM = 633, ++ PAGE_CHECKSUM_SYM = 634, ++ PARAM_MARKER = 635, ++ PARSER_SYM = 636, ++ PARSE_VCOL_EXPR_SYM = 637, ++ PARTIAL = 638, ++ PARTITIONING_SYM = 639, ++ PARTITIONS_SYM = 640, ++ PARTITION_SYM = 641, ++ PASSWORD = 642, ++ PERSISTENT_SYM = 643, ++ PHASE_SYM = 644, ++ PLUGINS_SYM = 645, ++ PLUGIN_SYM = 646, ++ POINT_SYM = 647, ++ POLYGON = 648, ++ PORT_SYM = 649, ++ POSITION_SYM = 650, ++ PRECISION = 651, ++ PREPARE_SYM = 652, ++ PRESERVE_SYM = 653, ++ PREV_SYM = 654, ++ PRIMARY_SYM = 655, ++ PRIVILEGES = 656, ++ PROCEDURE_SYM = 657, ++ PROCESS = 658, ++ PROCESSLIST_SYM = 659, ++ PROFILE_SYM = 660, ++ PROFILES_SYM = 661, ++ PROXY_SYM = 662, ++ PURGE = 663, ++ QUARTER_SYM = 664, ++ QUERY_SYM = 665, ++ QUICK = 666, ++ RANGE_SYM = 667, ++ READS_SYM = 668, ++ READ_ONLY_SYM = 669, ++ READ_SYM = 670, ++ READ_WRITE_SYM = 671, ++ REAL = 672, ++ REBUILD_SYM = 673, ++ RECOVER_SYM = 674, ++ REDOFILE_SYM = 675, ++ REDO_BUFFER_SIZE_SYM = 676, ++ REDUNDANT_SYM = 677, ++ REFERENCES = 678, ++ REGEXP = 679, ++ RELAY = 680, ++ RELAYLOG_SYM = 681, ++ RELAY_LOG_FILE_SYM = 682, ++ RELAY_LOG_POS_SYM = 683, ++ RELAY_THREAD = 684, ++ RELEASE_SYM = 685, ++ RELOAD = 686, ++ REMOVE_SYM = 687, ++ RENAME = 688, ++ REORGANIZE_SYM = 689, ++ REPAIR = 690, ++ REPEATABLE_SYM = 691, ++ REPEAT_SYM = 692, ++ REPLACE = 693, ++ REPLICATION = 694, ++ REQUIRE_SYM = 695, ++ RESET_SYM = 696, ++ RESIGNAL_SYM = 697, ++ RESOURCES = 698, ++ RESTORE_SYM = 699, ++ RESTRICT = 700, ++ RESUME_SYM = 701, ++ RETURNS_SYM = 702, ++ RETURN_SYM = 703, ++ REVOKE = 704, ++ RIGHT = 705, ++ ROLLBACK_SYM = 706, ++ ROLLUP_SYM = 707, ++ ROUTINE_SYM = 708, ++ ROWS_SYM = 709, ++ ROW_FORMAT_SYM = 710, ++ ROW_SYM = 711, ++ RTREE_SYM = 712, ++ SAVEPOINT_SYM = 713, ++ SCHEDULE_SYM = 714, ++ SCHEMA_NAME_SYM = 715, ++ SECOND_MICROSECOND_SYM = 716, ++ SECOND_SYM = 717, ++ SECURITY_SYM = 718, ++ SELECT_SYM = 719, ++ SENSITIVE_SYM = 720, ++ SEPARATOR_SYM = 721, ++ SERIALIZABLE_SYM = 722, ++ SERIAL_SYM = 723, ++ SESSION_SYM = 724, ++ SERVER_SYM = 725, ++ SERVER_OPTIONS = 726, ++ SET = 727, ++ SET_VAR = 728, ++ SHARE_SYM = 729, ++ SHIFT_LEFT = 730, ++ SHIFT_RIGHT = 731, ++ SHOW = 732, ++ SHUTDOWN = 733, ++ SIGNAL_SYM = 734, ++ SIGNED_SYM = 735, ++ SIMPLE_SYM = 736, ++ SLAVE = 737, ++ SLOW = 738, ++ SMALLINT = 739, ++ SNAPSHOT_SYM = 740, ++ SOCKET_SYM = 741, ++ SOFT_SYM = 742, ++ SONAME_SYM = 743, ++ SOUNDS_SYM = 744, ++ SOURCE_SYM = 745, ++ SPATIAL_SYM = 746, ++ SPECIFIC_SYM = 747, ++ SQLEXCEPTION_SYM = 748, ++ SQLSTATE_SYM = 749, ++ SQLWARNING_SYM = 750, ++ SQL_BIG_RESULT = 751, ++ SQL_BUFFER_RESULT = 752, ++ SQL_CACHE_SYM = 753, ++ SQL_CALC_FOUND_ROWS = 754, ++ SQL_NO_CACHE_SYM = 755, ++ SQL_SMALL_RESULT = 756, ++ SQL_SYM = 757, ++ SQL_THREAD = 758, ++ SSL_SYM = 759, ++ STARTING = 760, ++ STARTS_SYM = 761, ++ START_SYM = 762, ++ STATUS_SYM = 763, ++ STDDEV_SAMP_SYM = 764, ++ STD_SYM = 765, ++ STOP_SYM = 766, ++ STORAGE_SYM = 767, ++ STRAIGHT_JOIN = 768, ++ STRING_SYM = 769, ++ SUBCLASS_ORIGIN_SYM = 770, ++ SUBDATE_SYM = 771, ++ SUBJECT_SYM = 772, ++ SUBPARTITIONS_SYM = 773, ++ SUBPARTITION_SYM = 774, ++ SUBSTRING = 775, ++ SUM_SYM = 776, ++ SUPER_SYM = 777, ++ SUSPEND_SYM = 778, ++ SWAPS_SYM = 779, ++ SWITCHES_SYM = 780, ++ SYSDATE = 781, ++ TABLES = 782, ++ TABLESPACE = 783, ++ TABLE_REF_PRIORITY = 784, ++ TABLE_STATS_SYM = 785, ++ TABLE_SYM = 786, ++ TABLE_CHECKSUM_SYM = 787, ++ TABLE_NAME_SYM = 788, ++ TEMPORARY = 789, ++ TEMPTABLE_SYM = 790, ++ TERMINATED = 791, ++ TEXT_STRING = 792, ++ TEXT_SYM = 793, ++ THAN_SYM = 794, ++ THEN_SYM = 795, ++ TIMESTAMP = 796, ++ TIMESTAMP_ADD = 797, ++ TIMESTAMP_DIFF = 798, ++ TIME_SYM = 799, ++ TINYBLOB = 800, ++ TINYINT = 801, ++ TINYTEXT = 802, ++ TO_SYM = 803, ++ TRAILING = 804, ++ TRANSACTION_SYM = 805, ++ TRANSACTIONAL_SYM = 806, ++ TRIGGERS_SYM = 807, ++ TRIGGER_SYM = 808, ++ TRIM = 809, ++ TRUE_SYM = 810, ++ TRUNCATE_SYM = 811, ++ TYPES_SYM = 812, ++ TYPE_SYM = 813, ++ UDF_RETURNS_SYM = 814, ++ ULONGLONG_NUM = 815, ++ UNCOMMITTED_SYM = 816, ++ UNDEFINED_SYM = 817, ++ UNDERSCORE_CHARSET = 818, ++ UNDOFILE_SYM = 819, ++ UNDO_BUFFER_SIZE_SYM = 820, ++ UNDO_SYM = 821, ++ UNICODE_SYM = 822, ++ UNINSTALL_SYM = 823, ++ UNION_SYM = 824, ++ UNIQUE_SYM = 825, ++ UNKNOWN_SYM = 826, ++ UNLOCK_SYM = 827, ++ UNSIGNED = 828, ++ UNTIL_SYM = 829, ++ UPDATE_SYM = 830, ++ UPGRADE_SYM = 831, ++ USAGE = 832, ++ USER = 833, ++ USER_STATS_SYM = 834, ++ USE_FRM = 835, ++ USE_SYM = 836, ++ USING = 837, ++ UTC_DATE_SYM = 838, ++ UTC_TIMESTAMP_SYM = 839, ++ UTC_TIME_SYM = 840, ++ VALUES = 841, ++ VALUE_SYM = 842, ++ VARBINARY = 843, ++ VARCHAR = 844, ++ VARIABLES = 845, ++ VARIANCE_SYM = 846, ++ VARYING = 847, ++ VAR_SAMP_SYM = 848, ++ VIA_SYM = 849, ++ VIEW_SYM = 850, ++ VIRTUAL_SYM = 851, ++ WAIT_SYM = 852, ++ WARNINGS = 853, ++ WEEK_SYM = 854, ++ WHEN_SYM = 855, ++ WHERE = 856, ++ WHILE_SYM = 857, ++ WITH = 858, ++ WITH_CUBE_SYM = 859, ++ WITH_ROLLUP_SYM = 860, ++ WORK_SYM = 861, ++ WRAPPER_SYM = 862, ++ WRITE_SYM = 863, ++ X509_SYM = 864, ++ XA_SYM = 865, ++ XML_SYM = 866, ++ XOR = 867, ++ YEAR_MONTH_SYM = 868, ++ YEAR_SYM = 869, ++ ZEROFILL = 870, ++ IMPOSSIBLE_ACTION = 871 ++ }; ++#endif ++/* Tokens. */ ++#define ABORT_SYM 258 ++#define ACCESSIBLE_SYM 259 ++#define ACTION 260 ++#define ADD 261 ++#define ADDDATE_SYM 262 ++#define AFTER_SYM 263 ++#define AGAINST 264 ++#define AGGREGATE_SYM 265 ++#define ALGORITHM_SYM 266 ++#define ALL 267 ++#define ALTER 268 ++#define ALWAYS_SYM 269 ++#define ANALYZE_SYM 270 ++#define AND_AND_SYM 271 ++#define AND_SYM 272 ++#define ANY_SYM 273 ++#define AS 274 ++#define ASC 275 ++#define ASCII_SYM 276 ++#define ASENSITIVE_SYM 277 ++#define AT_SYM 278 ++#define AUTHORS_SYM 279 ++#define AUTOEXTEND_SIZE_SYM 280 ++#define AUTO_INC 281 ++#define AVG_ROW_LENGTH 282 ++#define AVG_SYM 283 ++#define BACKUP_SYM 284 ++#define BEFORE_SYM 285 ++#define BEGIN_SYM 286 ++#define BETWEEN_SYM 287 ++#define BIGINT 288 ++#define BINARY 289 ++#define BINLOG_SYM 290 ++#define BIN_NUM 291 ++#define BIT_AND 292 ++#define BIT_OR 293 ++#define BIT_SYM 294 ++#define BIT_XOR 295 ++#define BLOB_SYM 296 ++#define BLOCK_SYM 297 ++#define BOOLEAN_SYM 298 ++#define BOOL_SYM 299 ++#define BOTH 300 ++#define BTREE_SYM 301 ++#define BY 302 ++#define BYTE_SYM 303 ++#define CACHE_SYM 304 ++#define CALL_SYM 305 ++#define CASCADE 306 ++#define CASCADED 307 ++#define CASE_SYM 308 ++#define CAST_SYM 309 ++#define CATALOG_NAME_SYM 310 ++#define CHAIN_SYM 311 ++#define CHANGE 312 ++#define CHANGED 313 ++#define CHARSET 314 ++#define CHAR_SYM 315 ++#define CHECKPOINT_SYM 316 ++#define CHECKSUM_SYM 317 ++#define CHECK_SYM 318 ++#define CIPHER_SYM 319 ++#define CLASS_ORIGIN_SYM 320 ++#define CLIENT_SYM 321 ++#define CLIENT_STATS_SYM 322 ++#define CLOSE_SYM 323 ++#define COALESCE 324 ++#define CODE_SYM 325 ++#define COLLATE_SYM 326 ++#define COLLATION_SYM 327 ++#define COLUMNS 328 ++#define COLUMN_ADD_SYM 329 ++#define COLUMN_CREATE_SYM 330 ++#define COLUMN_DELETE_SYM 331 ++#define COLUMN_EXISTS_SYM 332 ++#define COLUMN_GET_SYM 333 ++#define COLUMN_LIST_SYM 334 ++#define COLUMN_SYM 335 ++#define COLUMN_NAME_SYM 336 ++#define COMMENT_SYM 337 ++#define COMMITTED_SYM 338 ++#define COMMIT_SYM 339 ++#define COMPACT_SYM 340 ++#define COMPLETION_SYM 341 ++#define COMPRESSED_SYM 342 ++#define CONCURRENT 343 ++#define CONDITION_SYM 344 ++#define CONNECTION_SYM 345 ++#define CONSISTENT_SYM 346 ++#define CONSTRAINT 347 ++#define CONSTRAINT_CATALOG_SYM 348 ++#define CONSTRAINT_NAME_SYM 349 ++#define CONSTRAINT_SCHEMA_SYM 350 ++#define CONTAINS_SYM 351 ++#define CONTEXT_SYM 352 ++#define CONTINUE_SYM 353 ++#define CONTRIBUTORS_SYM 354 ++#define CONVERT_SYM 355 ++#define COUNT_SYM 356 ++#define CPU_SYM 357 ++#define CREATE 358 ++#define CROSS 359 ++#define CUBE_SYM 360 ++#define CURDATE 361 ++#define CURRENT_USER 362 ++#define CURSOR_SYM 363 ++#define CURSOR_NAME_SYM 364 ++#define CURTIME 365 ++#define DATABASE 366 ++#define DATABASES 367 ++#define DATAFILE_SYM 368 ++#define DATA_SYM 369 ++#define DATETIME 370 ++#define DATE_ADD_INTERVAL 371 ++#define DATE_SUB_INTERVAL 372 ++#define DATE_SYM 373 ++#define DAY_HOUR_SYM 374 ++#define DAY_MICROSECOND_SYM 375 ++#define DAY_MINUTE_SYM 376 ++#define DAY_SECOND_SYM 377 ++#define DAY_SYM 378 ++#define DEALLOCATE_SYM 379 ++#define DECIMAL_NUM 380 ++#define DECIMAL_SYM 381 ++#define DECLARE_SYM 382 ++#define DEFAULT 383 ++#define DEFINER_SYM 384 ++#define DELAYED_SYM 385 ++#define DELAY_KEY_WRITE_SYM 386 ++#define DELETE_SYM 387 ++#define DESC 388 ++#define DESCRIBE 389 ++#define DES_KEY_FILE 390 ++#define DETERMINISTIC_SYM 391 ++#define DIRECTORY_SYM 392 ++#define DISABLE_SYM 393 ++#define DISCARD 394 ++#define DISK_SYM 395 ++#define DISTINCT 396 ++#define DIV_SYM 397 ++#define DOUBLE_SYM 398 ++#define DO_SYM 399 ++#define DROP 400 ++#define DUAL_SYM 401 ++#define DUMPFILE 402 ++#define DUPLICATE_SYM 403 ++#define DYNAMIC_SYM 404 ++#define EACH_SYM 405 ++#define ELSE 406 ++#define ELSEIF_SYM 407 ++#define ENABLE_SYM 408 ++#define ENCLOSED 409 ++#define END 410 ++#define ENDS_SYM 411 ++#define END_OF_INPUT 412 ++#define ENGINES_SYM 413 ++#define ENGINE_SYM 414 ++#define ENUM 415 ++#define EQUAL_SYM 416 ++#define ERROR_SYM 417 ++#define ERRORS 418 ++#define ESCAPED 419 ++#define ESCAPE_SYM 420 ++#define EVENTS_SYM 421 ++#define EVENT_SYM 422 ++#define EVERY_SYM 423 ++#define EXAMINED_SYM 424 ++#define EXECUTE_SYM 425 ++#define EXISTS 426 ++#define EXIT_SYM 427 ++#define EXPANSION_SYM 428 ++#define EXTENDED_SYM 429 ++#define EXTENT_SIZE_SYM 430 ++#define EXTRACT_SYM 431 ++#define FALSE_SYM 432 ++#define FAST_SYM 433 ++#define FAULTS_SYM 434 ++#define FETCH_SYM 435 ++#define FILE_SYM 436 ++#define FIRST_SYM 437 ++#define FIXED_SYM 438 ++#define FLOAT_NUM 439 ++#define FLOAT_SYM 440 ++#define FLUSH_SYM 441 ++#define FORCE_SYM 442 ++#define FOREIGN 443 ++#define FOR_SYM 444 ++#define FOUND_SYM 445 ++#define FROM 446 ++#define FULL 447 ++#define FULLTEXT_SYM 448 ++#define FUNCTION_SYM 449 ++#define GE 450 ++#define GENERAL 451 ++#define GENERATED_SYM 452 ++#define GEOMETRYCOLLECTION 453 ++#define GEOMETRY_SYM 454 ++#define GET_FORMAT 455 ++#define GLOBAL_SYM 456 ++#define GRANT 457 ++#define GRANTS 458 ++#define GROUP_SYM 459 ++#define GROUP_CONCAT_SYM 460 ++#define HANDLER_SYM 461 ++#define HARD_SYM 462 ++#define HASH_SYM 463 ++#define HAVING 464 ++#define HELP_SYM 465 ++#define HEX_NUM 466 ++#define HEX_STRING 467 ++#define HIGH_PRIORITY 468 ++#define HOST_SYM 469 ++#define HOSTS_SYM 470 ++#define HOUR_MICROSECOND_SYM 471 ++#define HOUR_MINUTE_SYM 472 ++#define HOUR_SECOND_SYM 473 ++#define HOUR_SYM 474 ++#define IDENT 475 ++#define IDENTIFIED_SYM 476 ++#define IDENT_QUOTED 477 ++#define IF 478 ++#define IGNORE_SYM 479 ++#define IGNORE_SERVER_IDS_SYM 480 ++#define IMPORT 481 ++#define INDEXES 482 ++#define INDEX_SYM 483 ++#define INDEX_STATS_SYM 484 ++#define INFILE 485 ++#define INITIAL_SIZE_SYM 486 ++#define INNER_SYM 487 ++#define INOUT_SYM 488 ++#define INSENSITIVE_SYM 489 ++#define INSERT 490 ++#define INSERT_METHOD 491 ++#define INSTALL_SYM 492 ++#define INTERVAL_SYM 493 ++#define INTO 494 ++#define INT_SYM 495 ++#define INVOKER_SYM 496 ++#define IN_SYM 497 ++#define IO_SYM 498 ++#define IPC_SYM 499 ++#define IS 500 ++#define ISOLATION 501 ++#define ISSUER_SYM 502 ++#define ITERATE_SYM 503 ++#define JOIN_SYM 504 ++#define KEYS 505 ++#define KEY_BLOCK_SIZE 506 ++#define KEY_SYM 507 ++#define KILL_SYM 508 ++#define LANGUAGE_SYM 509 ++#define LAST_SYM 510 ++#define LAST_VALUE 511 ++#define LE 512 ++#define LEADING 513 ++#define LEAVES 514 ++#define LEAVE_SYM 515 ++#define LEFT 516 ++#define LESS_SYM 517 ++#define LEVEL_SYM 518 ++#define LEX_HOSTNAME 519 ++#define LIKE 520 ++#define LIMIT 521 ++#define LINEAR_SYM 522 ++#define LINES 523 ++#define LINESTRING 524 ++#define LIST_SYM 525 ++#define LOAD 526 ++#define LOCAL_SYM 527 ++#define LOCATOR_SYM 528 ++#define LOCKS_SYM 529 ++#define LOCK_SYM 530 ++#define LOGFILE_SYM 531 ++#define LOGS_SYM 532 ++#define LONGBLOB 533 ++#define LONGTEXT 534 ++#define LONG_NUM 535 ++#define LONG_SYM 536 ++#define LOOP_SYM 537 ++#define LOW_PRIORITY 538 ++#define MASTER_CONNECT_RETRY_SYM 539 ++#define MASTER_HOST_SYM 540 ++#define MASTER_LOG_FILE_SYM 541 ++#define MASTER_LOG_POS_SYM 542 ++#define MASTER_PASSWORD_SYM 543 ++#define MASTER_PORT_SYM 544 ++#define MASTER_SERVER_ID_SYM 545 ++#define MASTER_SSL_CAPATH_SYM 546 ++#define MASTER_SSL_CA_SYM 547 ++#define MASTER_SSL_CERT_SYM 548 ++#define MASTER_SSL_CIPHER_SYM 549 ++#define MASTER_SSL_KEY_SYM 550 ++#define MASTER_SSL_SYM 551 ++#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 552 ++#define MASTER_SYM 553 ++#define MASTER_USER_SYM 554 ++#define MASTER_HEARTBEAT_PERIOD_SYM 555 ++#define MATCH 556 ++#define MAX_CONNECTIONS_PER_HOUR 557 ++#define MAX_QUERIES_PER_HOUR 558 ++#define MAX_ROWS 559 ++#define MAX_SIZE_SYM 560 ++#define MAX_SYM 561 ++#define MAX_UPDATES_PER_HOUR 562 ++#define MAX_USER_CONNECTIONS_SYM 563 ++#define MAX_VALUE_SYM 564 ++#define MEDIUMBLOB 565 ++#define MEDIUMINT 566 ++#define MEDIUMTEXT 567 ++#define MEDIUM_SYM 568 ++#define MEMORY_SYM 569 ++#define MERGE_SYM 570 ++#define MESSAGE_TEXT_SYM 571 ++#define MICROSECOND_SYM 572 ++#define MIGRATE_SYM 573 ++#define MINUTE_MICROSECOND_SYM 574 ++#define MINUTE_SECOND_SYM 575 ++#define MINUTE_SYM 576 ++#define MIN_ROWS 577 ++#define MIN_SYM 578 ++#define MODE_SYM 579 ++#define MODIFIES_SYM 580 ++#define MODIFY_SYM 581 ++#define MOD_SYM 582 ++#define MONTH_SYM 583 ++#define MULTILINESTRING 584 ++#define MULTIPOINT 585 ++#define MULTIPOLYGON 586 ++#define MUTEX_SYM 587 ++#define MYSQL_SYM 588 ++#define MYSQL_ERRNO_SYM 589 ++#define NAMES_SYM 590 ++#define NAME_SYM 591 ++#define NATIONAL_SYM 592 ++#define NATURAL 593 ++#define NCHAR_STRING 594 ++#define NCHAR_SYM 595 ++#define NDBCLUSTER_SYM 596 ++#define NE 597 ++#define NEG 598 ++#define NEW_SYM 599 ++#define NEXT_SYM 600 ++#define NODEGROUP_SYM 601 ++#define NONE_SYM 602 ++#define NOT2_SYM 603 ++#define NOT_SYM 604 ++#define NOW_SYM 605 ++#define NO_SYM 606 ++#define NO_WAIT_SYM 607 ++#define NO_WRITE_TO_BINLOG 608 ++#define NULL_SYM 609 ++#define NUM 610 ++#define NUMERIC_SYM 611 ++#define NVARCHAR_SYM 612 ++#define OFFSET_SYM 613 ++#define OLD_PASSWORD 614 ++#define ON 615 ++#define ONE_SHOT_SYM 616 ++#define ONE_SYM 617 ++#define ONLINE_SYM 618 ++#define OPEN_SYM 619 ++#define OPTIMIZE 620 ++#define OPTIONS_SYM 621 ++#define OPTION 622 ++#define OPTIONALLY 623 ++#define OR2_SYM 624 ++#define ORDER_SYM 625 ++#define OR_OR_SYM 626 ++#define OR_SYM 627 ++#define OUTER 628 ++#define OUTFILE 629 ++#define OUT_SYM 630 ++#define OWNER_SYM 631 ++#define PACK_KEYS_SYM 632 ++#define PAGE_SYM 633 ++#define PAGE_CHECKSUM_SYM 634 ++#define PARAM_MARKER 635 ++#define PARSER_SYM 636 ++#define PARSE_VCOL_EXPR_SYM 637 ++#define PARTIAL 638 ++#define PARTITIONING_SYM 639 ++#define PARTITIONS_SYM 640 ++#define PARTITION_SYM 641 ++#define PASSWORD 642 ++#define PERSISTENT_SYM 643 ++#define PHASE_SYM 644 ++#define PLUGINS_SYM 645 ++#define PLUGIN_SYM 646 ++#define POINT_SYM 647 ++#define POLYGON 648 ++#define PORT_SYM 649 ++#define POSITION_SYM 650 ++#define PRECISION 651 ++#define PREPARE_SYM 652 ++#define PRESERVE_SYM 653 ++#define PREV_SYM 654 ++#define PRIMARY_SYM 655 ++#define PRIVILEGES 656 ++#define PROCEDURE_SYM 657 ++#define PROCESS 658 ++#define PROCESSLIST_SYM 659 ++#define PROFILE_SYM 660 ++#define PROFILES_SYM 661 ++#define PROXY_SYM 662 ++#define PURGE 663 ++#define QUARTER_SYM 664 ++#define QUERY_SYM 665 ++#define QUICK 666 ++#define RANGE_SYM 667 ++#define READS_SYM 668 ++#define READ_ONLY_SYM 669 ++#define READ_SYM 670 ++#define READ_WRITE_SYM 671 ++#define REAL 672 ++#define REBUILD_SYM 673 ++#define RECOVER_SYM 674 ++#define REDOFILE_SYM 675 ++#define REDO_BUFFER_SIZE_SYM 676 ++#define REDUNDANT_SYM 677 ++#define REFERENCES 678 ++#define REGEXP 679 ++#define RELAY 680 ++#define RELAYLOG_SYM 681 ++#define RELAY_LOG_FILE_SYM 682 ++#define RELAY_LOG_POS_SYM 683 ++#define RELAY_THREAD 684 ++#define RELEASE_SYM 685 ++#define RELOAD 686 ++#define REMOVE_SYM 687 ++#define RENAME 688 ++#define REORGANIZE_SYM 689 ++#define REPAIR 690 ++#define REPEATABLE_SYM 691 ++#define REPEAT_SYM 692 ++#define REPLACE 693 ++#define REPLICATION 694 ++#define REQUIRE_SYM 695 ++#define RESET_SYM 696 ++#define RESIGNAL_SYM 697 ++#define RESOURCES 698 ++#define RESTORE_SYM 699 ++#define RESTRICT 700 ++#define RESUME_SYM 701 ++#define RETURNS_SYM 702 ++#define RETURN_SYM 703 ++#define REVOKE 704 ++#define RIGHT 705 ++#define ROLLBACK_SYM 706 ++#define ROLLUP_SYM 707 ++#define ROUTINE_SYM 708 ++#define ROWS_SYM 709 ++#define ROW_FORMAT_SYM 710 ++#define ROW_SYM 711 ++#define RTREE_SYM 712 ++#define SAVEPOINT_SYM 713 ++#define SCHEDULE_SYM 714 ++#define SCHEMA_NAME_SYM 715 ++#define SECOND_MICROSECOND_SYM 716 ++#define SECOND_SYM 717 ++#define SECURITY_SYM 718 ++#define SELECT_SYM 719 ++#define SENSITIVE_SYM 720 ++#define SEPARATOR_SYM 721 ++#define SERIALIZABLE_SYM 722 ++#define SERIAL_SYM 723 ++#define SESSION_SYM 724 ++#define SERVER_SYM 725 ++#define SERVER_OPTIONS 726 ++#define SET 727 ++#define SET_VAR 728 ++#define SHARE_SYM 729 ++#define SHIFT_LEFT 730 ++#define SHIFT_RIGHT 731 ++#define SHOW 732 ++#define SHUTDOWN 733 ++#define SIGNAL_SYM 734 ++#define SIGNED_SYM 735 ++#define SIMPLE_SYM 736 ++#define SLAVE 737 ++#define SLOW 738 ++#define SMALLINT 739 ++#define SNAPSHOT_SYM 740 ++#define SOCKET_SYM 741 ++#define SOFT_SYM 742 ++#define SONAME_SYM 743 ++#define SOUNDS_SYM 744 ++#define SOURCE_SYM 745 ++#define SPATIAL_SYM 746 ++#define SPECIFIC_SYM 747 ++#define SQLEXCEPTION_SYM 748 ++#define SQLSTATE_SYM 749 ++#define SQLWARNING_SYM 750 ++#define SQL_BIG_RESULT 751 ++#define SQL_BUFFER_RESULT 752 ++#define SQL_CACHE_SYM 753 ++#define SQL_CALC_FOUND_ROWS 754 ++#define SQL_NO_CACHE_SYM 755 ++#define SQL_SMALL_RESULT 756 ++#define SQL_SYM 757 ++#define SQL_THREAD 758 ++#define SSL_SYM 759 ++#define STARTING 760 ++#define STARTS_SYM 761 ++#define START_SYM 762 ++#define STATUS_SYM 763 ++#define STDDEV_SAMP_SYM 764 ++#define STD_SYM 765 ++#define STOP_SYM 766 ++#define STORAGE_SYM 767 ++#define STRAIGHT_JOIN 768 ++#define STRING_SYM 769 ++#define SUBCLASS_ORIGIN_SYM 770 ++#define SUBDATE_SYM 771 ++#define SUBJECT_SYM 772 ++#define SUBPARTITIONS_SYM 773 ++#define SUBPARTITION_SYM 774 ++#define SUBSTRING 775 ++#define SUM_SYM 776 ++#define SUPER_SYM 777 ++#define SUSPEND_SYM 778 ++#define SWAPS_SYM 779 ++#define SWITCHES_SYM 780 ++#define SYSDATE 781 ++#define TABLES 782 ++#define TABLESPACE 783 ++#define TABLE_REF_PRIORITY 784 ++#define TABLE_STATS_SYM 785 ++#define TABLE_SYM 786 ++#define TABLE_CHECKSUM_SYM 787 ++#define TABLE_NAME_SYM 788 ++#define TEMPORARY 789 ++#define TEMPTABLE_SYM 790 ++#define TERMINATED 791 ++#define TEXT_STRING 792 ++#define TEXT_SYM 793 ++#define THAN_SYM 794 ++#define THEN_SYM 795 ++#define TIMESTAMP 796 ++#define TIMESTAMP_ADD 797 ++#define TIMESTAMP_DIFF 798 ++#define TIME_SYM 799 ++#define TINYBLOB 800 ++#define TINYINT 801 ++#define TINYTEXT 802 ++#define TO_SYM 803 ++#define TRAILING 804 ++#define TRANSACTION_SYM 805 ++#define TRANSACTIONAL_SYM 806 ++#define TRIGGERS_SYM 807 ++#define TRIGGER_SYM 808 ++#define TRIM 809 ++#define TRUE_SYM 810 ++#define TRUNCATE_SYM 811 ++#define TYPES_SYM 812 ++#define TYPE_SYM 813 ++#define UDF_RETURNS_SYM 814 ++#define ULONGLONG_NUM 815 ++#define UNCOMMITTED_SYM 816 ++#define UNDEFINED_SYM 817 ++#define UNDERSCORE_CHARSET 818 ++#define UNDOFILE_SYM 819 ++#define UNDO_BUFFER_SIZE_SYM 820 ++#define UNDO_SYM 821 ++#define UNICODE_SYM 822 ++#define UNINSTALL_SYM 823 ++#define UNION_SYM 824 ++#define UNIQUE_SYM 825 ++#define UNKNOWN_SYM 826 ++#define UNLOCK_SYM 827 ++#define UNSIGNED 828 ++#define UNTIL_SYM 829 ++#define UPDATE_SYM 830 ++#define UPGRADE_SYM 831 ++#define USAGE 832 ++#define USER 833 ++#define USER_STATS_SYM 834 ++#define USE_FRM 835 ++#define USE_SYM 836 ++#define USING 837 ++#define UTC_DATE_SYM 838 ++#define UTC_TIMESTAMP_SYM 839 ++#define UTC_TIME_SYM 840 ++#define VALUES 841 ++#define VALUE_SYM 842 ++#define VARBINARY 843 ++#define VARCHAR 844 ++#define VARIABLES 845 ++#define VARIANCE_SYM 846 ++#define VARYING 847 ++#define VAR_SAMP_SYM 848 ++#define VIA_SYM 849 ++#define VIEW_SYM 850 ++#define VIRTUAL_SYM 851 ++#define WAIT_SYM 852 ++#define WARNINGS 853 ++#define WEEK_SYM 854 ++#define WHEN_SYM 855 ++#define WHERE 856 ++#define WHILE_SYM 857 ++#define WITH 858 ++#define WITH_CUBE_SYM 859 ++#define WITH_ROLLUP_SYM 860 ++#define WORK_SYM 861 ++#define WRAPPER_SYM 862 ++#define WRITE_SYM 863 ++#define X509_SYM 864 ++#define XA_SYM 865 ++#define XML_SYM 866 ++#define XOR 867 ++#define YEAR_MONTH_SYM 868 ++#define YEAR_SYM 869 ++#define ZEROFILL 870 ++#define IMPOSSIBLE_ACTION 871 ++ ++/* Value type. */ ++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED ++typedef union YYSTYPE YYSTYPE; ++union YYSTYPE ++{ ++#line 732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1909 */ ++ ++ int num; ++ ulong ulong_num; ++ ulonglong ulonglong_number; ++ longlong longlong_number; ++ LEX_STRING lex_str; ++ LEX_STRING *lex_str_ptr; ++ LEX_SYMBOL symbol; ++ LEX_TYPE lex_type; ++ Table_ident *table; ++ char *simple_string; ++ Item *item; ++ Item_num *item_num; ++ List *item_list; ++ List *string_list; ++ String *string; ++ Key_part_spec *key_part; ++ TABLE_LIST *table_list; ++ udf_func *udf; ++ LEX_USER *lex_user; ++ struct sys_var_with_base variable; ++ enum enum_var_type var_type; ++ Key::Keytype key_type; ++ enum ha_key_alg key_alg; ++ handlerton *db_type; ++ enum row_type row_type; ++ enum ha_rkey_function ha_rkey_mode; ++ enum enum_tx_isolation tx_isolation; ++ enum Cast_target cast_type; ++ enum Item_udftype udf_type; ++ enum ha_choice choice; ++ CHARSET_INFO *charset; ++ thr_lock_type lock_type; ++ interval_type interval, interval_time_st; ++ timestamp_type date_time_type; ++ st_select_lex *select_lex; ++ chooser_compare_func_creator boolfunc2creator; ++ struct sp_cond_type *spcondtype; ++ struct { int vars, conds, hndlrs, curs; } spblock; ++ sp_name *spname; ++ LEX *lex; ++ sp_head *sphead; ++ struct p_elem_val *p_elem_value; ++ enum index_hint_type index_hint; ++ enum enum_filetype filetype; ++ enum Foreign_key::fk_option m_fk_option; ++ enum enum_yes_no_unknown m_yes_no_unk; ++ Diag_condition_item_name diag_condition_item_name; ++ DYNCALL_CREATE_DEF *dyncol_def; ++ List *dyncol_def_list; ++ bool is_not_empty; ++ ++#line 1339 "/home/buildbot/git/mkdist/sql/sql_yacc.h" /* yacc.c:1909 */ ++}; ++# define YYSTYPE_IS_TRIVIAL 1 ++# define YYSTYPE_IS_DECLARED 1 ++#endif ++ ++ ++ ++int MYSQLparse (THD *thd); ++ ++#endif /* !YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED */ +diff --git a/storage/maria/unittest/ma_test_all-t b/storage/maria/unittest/ma_test_all-t +new file mode 100755 +index 0000000..e66d269 +--- /dev/null ++++ b/storage/maria/unittest/ma_test_all-t +@@ -0,0 +1,766 @@ ++#!/usr/bin/env perl ++# ++# Run various unit tests. ++# ++ ++use Getopt::Long; ++use File::Basename; ++ ++$|= 1; ++$^W = 1; # warnings, because env cannot parse 'perl -w' ++$VER= "1.5"; ++ ++$opt_version= 0; ++$opt_help= 0; ++$opt_verbose= 0; ++$opt_abort_on_error= 0; ++$opt_valgrind= "valgrind --alignment=8 --leak-check=yes"; ++$opt_silent= "-s"; ++$opt_number_of_tests= 0; ++$opt_run_tests= undef(); ++ ++my $maria_path; # path to "storage/maria" ++my $maria_exe_path; # path to executables (ma_test1, aria_chk etc) ++my $my_progname= $0; ++$my_progname=~ s/.*[\/]//; ++my $runtime_error= 0; # Return 1 if error(s) occur during run ++my $NEW_TEST= 0; # Test group separator in an array of tests ++my $test_begin= 0; ++my $test_end= 0; ++my $test_counter= 0; ++my $using_internal_tmpdir= 0; ++my $full_tmpdir; ++my $tmpdir="tmp"; ++my $exec_dir="TMP-ma_test_all"; # Run test in this directory ++run_tests(); ++ ++#### ++#### Initialise variables, clean temporary files and run the tests ++#### ++ ++sub run_tests ++{ ++ my $nr_tests= 0; ++ my $flag_exit= 0; ++ ++ if (!GetOptions("help" => \$opt_help, ++ "version" => \$opt_version, ++ "verbose" => \$opt_verbose, ++ "abort-on-error" => \$opt_abort_on_error, ++ "valgrind=s" => \$opt_valgrind, ++ "silent=s" => \$opt_silent, ++ "tmpdir=s" => \$full_tmpdir, ++ "number-of-tests" => \$opt_number_of_tests, ++ "run-tests=s" => \$opt_run_tests, ++ "start-from=s" => \$opt_run_tests)) ++ { ++ $flag_exit= 1; ++ } ++ if ($opt_version) ++ { ++ print "$my_progname version $VER\n"; ++ exit(0); ++ } ++ ++ if (! -d $exec_dir) ++ { ++ die if (!mkdir("$exec_dir")); ++ } ++ chdir($exec_dir); ++ ++ $maria_path= "../" . dirname($0) . "/.."; ++ ++ my $suffix= ( $^O =~ /win/i && $^O !~ /darwin/i ) ? ".exe" : ""; ++ $maria_exe_path= "$maria_path/release"; ++ # we use -f, sometimes -x is unexpectedly false in Cygwin ++ if ( ! -f "$maria_exe_path/ma_test1$suffix" ) ++ { ++ $maria_exe_path= "$maria_path/relwithdebinfo"; ++ if ( ! -f "$maria_exe_path/ma_test1$suffix" ) ++ { ++ $maria_exe_path= "$maria_path/debug"; ++ if ( ! -f "$maria_exe_path/ma_test1$suffix" ) ++ { ++ $maria_exe_path= $maria_path; ++ if ( ! -f "$maria_exe_path/ma_test1$suffix" ) ++ { ++ die("Cannot find ma_test1 executable in $maria_path\n"); ++ } ++ } ++ } ++ } ++ ++ usage() if ($opt_help || $flag_exit); ++ ++ if (defined($full_tmpdir)) ++ { ++ $tmpdir= $full_tmpdir; ++ } ++ else ++ { ++ $full_tmpdir= $tmpdir; ++ $using_internal_tmpdir= 1; ++ if (! -d "$full_tmpdir") ++ { ++ die if (!mkdir("$full_tmpdir")); ++ } ++ } ++ ++ # ++ # IMPORTANT: If you modify this file, please read this: ++ # ++ # Count total number of tests. Make sure that the functions return ++ # number of unit tests correctly, e.g. calls to ok(). The last argument ++ # for each function is a flag counter and will return the number of ++ # unit tests in each. Please see comments on function ok() at the end. ++ # ++ # If you modify any functions or add any new ones, please make sure the ++ # unit tests are appropriately detected here. A wrong count will ++ # make the unit test fail during 'make test'. $nr_tests must be right. ++ # ++ ++ $nr_tests+= run_check_tests(0, 0, 0, 0, 1) * 5; # ++ $nr_tests+= run_repair_tests(0, 0, 0, 0, 1) * 5; # called 4 times ++ $nr_tests+= run_pack_tests(0, 0, 0, 0, 1) * 5; # ++ $nr_tests+= run_tests_on_warnings_and_errors(0, 0, 0, 1); ++ $nr_tests+= run_ma_test_recovery(0, 1); ++ $nr_tests+= run_tests_on_clrs(0, 0, 1); ++ ++ if ($opt_number_of_tests) ++ { ++ print "Total number of tests is $nr_tests\n"; ++ exit(0); ++ } ++ ++ if (defined($opt_run_tests)) ++ { ++ if ($opt_run_tests =~ m/^(\d+)$/ || ++ $opt_run_tests =~ m/^(\d+)\.+$/) ++ { ++ $test_begin= $1; ++ } ++ elsif ($opt_run_tests =~ m/^(\d+)\.+(\d+)$/) ++ { ++ $test_begin= $1; ++ $test_end= $2; ++ } ++ else ++ { ++ print "Wrong syntax for option --run-tests=$opt_run_tests\n"; ++ print "Please use --run-tests=..\nwhere 'begin' is the "; ++ print "first test to be run and 'end' is the last.\n"; ++ exit(1); ++ } ++ if ($test_end > $nr_tests) ++ { ++ print "Test range ($test_begin..$test_end) out of range. "; ++ print "There are only $nr_tests in the test suite.\n"; ++ exit(1); ++ } ++ $test_begin++ if (!$test_begin); # Handle zero, if user gave that ++ if ($test_end && $test_begin > $test_end) ++ { ++ print "Bad test range ($test_begin..$test_end)\n"; ++ exit(1); ++ } ++ # Now adjust number of tests ++ $nr_tests= ($test_end ? $test_end : $nr_tests) - $test_begin + 1; ++ } ++ ++ # ++ # clean-up ++ # ++ ++ unlink_all_possible_tmp_files(); ++ ++ # ++ # Run tests ++ # ++ ++ if (!$opt_verbose) ++ { ++ print "1..$nr_tests\n"; ++ } ++ else ++ { ++ print "Total tests: $nr_tests\n"; ++ } ++ ++ if ($opt_verbose) ++ { ++ print "Running tests with dynamic row format\n" ++ } ++ run_check_tests($suffix, $opt_silent, "", $opt_verbose, 0); ++ run_repair_tests($suffix, $opt_silent, "", $opt_verbose, 0); ++ run_pack_tests($suffix, $opt_silent, "", $opt_verbose, 0); ++ ++ if ($opt_verbose) ++ { ++ print "\nRunning tests with static row format\n"; ++ } ++ run_check_tests($suffix, $opt_silent, "-S", $opt_verbose, 0); ++ run_repair_tests($suffix, $opt_silent, "-S", $opt_verbose, 0); ++ run_pack_tests($suffix, $opt_silent, "-S", $opt_verbose, 0); ++ ++ if ($opt_verbose) ++ { ++ print "\nRunning tests with block row format\n"; ++ } ++ run_check_tests($suffix, $opt_silent, "-M", $opt_verbose, 0); ++ run_repair_tests($suffix, $opt_silent, "-M", $opt_verbose, 0); ++ run_pack_tests($suffix, $opt_silent, "-M", $opt_verbose, 0); ++ ++ if ($opt_verbose) ++ { ++ print "\nRunning tests with block row format and transactions\n"; ++ } ++ run_check_tests($suffix, $opt_silent, "-M -T", $opt_verbose, 0); ++ run_repair_tests($suffix, $opt_silent, "-M -T", $opt_verbose, 0); ++ run_pack_tests($suffix, $opt_silent, "-M -T", $opt_verbose, 0); ++ ++ if ($opt_verbose) ++ { ++ print "\nRunning tests with block row format, transactions and versioning\n"; ++ } ++ run_check_tests($suffix, $opt_silent, "-M -T -C", $opt_verbose, 0); ++ run_repair_tests($suffix, $opt_silent, "-M -T -C", $opt_verbose, 0); ++ run_pack_tests($suffix, $opt_silent, "-M -T -C", $opt_verbose, 0); ++ ++ ++ if ($opt_verbose) ++ { ++ print "\nRunning tests with warnings and recovery\n"; ++ } ++ run_tests_on_warnings_and_errors($suffix, $opt_silent, $opt_verbose, 0); ++ run_ma_test_recovery($opt_verbose, 0); ++ run_tests_on_clrs($suffix, $opt_verbose, 0); ++ ++ unlink_all_possible_tmp_files(); ++ if ($using_internal_tmpdir) ++ { ++ rmdir($tmpdir); ++ } ++ rmdir($exec_dir); ++ chdir(".."); ++ rmdir($exec_dir); ++ exit($runtime_error); ++} ++ ++#### ++#### regular tests ++#### ++ ++sub run_check_tests ++{ ++ my ($suffix, $silent, $row_type, $verbose, $count)= @_; ++ my ($i, $nr_tests); ++ my @ma_test1_opt= ( ["","-se"], ++ ["-N","-se"], ++ ["-P --checksum","-se"], ++ ["-P -N","-se"], ++ ["-B -N -R2","-sm"], ++ ["-a -k 480 --unique","-sm"], ++ ["-a -N -R1 ","-sm"], ++ ["-p","-sm"], ++ ["-p -N --unique","-sm"], ++ ["-p -N --key_length=127 --checksum","-sm"], ++ ["-p -N --key_length=128","-sm"], ++ ["-p --key_length=480","-sm"], ++ ["-a -B","-sm"], ++ ["-a -B --key_length=64 --unique","-sm"], ++ ["-a -B -k 480 --checksum","-sm"], ++ ["-a -B -k 480 -N --unique --checksum","-sm"], ++ ["-a -m","-sm"], ++ ["-a -m -P --unique --checksum","-sm"], ++ ["-a -m -P --key_length=480 --key_cache","-sm"], ++ ["-m -p","-sm"], ++ ["-w --unique","-sm"], ++ ["-a -w --key_length=64 --checksum","-sm"], ++ ["-a -w -N --key_length=480","-sm"], ++ ["-a -w --key_length=480 --checksum","-sm"], ++ ["-a -b -N","-sm"], ++ ["-a -b --key_length=480","-sm"], ++ ["-p -B --key_length=480","-sm"], ++ ["--checksum --unique","-se"], ++ ["--unique","-se"], ++ ["--rows-no-data", "-s"], ++ ["--key_multiple -N -S","-sm"], ++ ["--key_multiple -a -p --key_length=480","-sm"], ++ ["--key_multiple -a -B --key_length=480","-sm"], ++ ["--key_multiple -P -S","-sm"] ); ++ my @ma_test2_opt= ( ["-L -K -W -P","-sm"], ++ ["-L -K -W -P -A","-sm"], ++ ["-L -K -W -P -b32768", "-sm"], ++ ["-L -K -W -P -M -T -c -b32768 -t4 -m300", "-sm"], ++ ["-L -K -P -R3 -m50 -b1000000", "-sm"], ++ ["-L -B","-sm"], ++ ["-D -B -c","-sm"], ++ ["-m10000 -e4096 -K","-sm"], ++ ["-m10000 -e8192 -K","-sm"], ++ ["-m10000 -e16384 -E16384 -K -L","-sm"], ++ ["-L -K -W -P -b32768", "-se"], ++ ["-c -b65000","-se"] ); ++ my @ma_rt_test_opt= ( ); # (["--checksum", "-se"] ); ++ ++ ++ if ($count) ++ { ++ $nr_tests= 2; # Number of tests outside loops ++ for ($i= 0; defined($ma_test1_opt[$i]); $i++) { $nr_tests+=2; } ++ for ($i= 0; defined($ma_test2_opt[$i]); $i++) { $nr_tests+=2; } ++ for ($i= 0; defined($ma_rt_test_opt[$i]); $i++) { $nr_tests+=2; } ++ return $nr_tests; ++ } ++ ++ for ($i= 0; defined($ma_test1_opt[$i]); $i++) ++ { ++ unlink_log_files(); ++ ok("$maria_exe_path/ma_test1$suffix $silent -h$tmpdir $ma_test1_opt[$i][0] $row_type", ++ $verbose, $i + 1); ++ ok("$maria_exe_path/aria_chk$suffix -h$tmpdir $ma_test1_opt[$i][1] $tmpdir/test1", ++ $verbose, $i + 1); ++ } ++ # ++ # These tests are outside the loops. Make sure to include them in ++ # nr_tests manually ++ # ++ ok("$maria_exe_path/aria_pack$suffix --force -s $tmpdir/test1", $verbose, 0); ++ ok("$maria_exe_path/aria_chk$suffix -ess $tmpdir/test1", $verbose, 0); ++ ++ for ($i= 0; defined($ma_test2_opt[$i]); $i++) ++ { ++ unlink_log_files(); ++ ok("$maria_exe_path/ma_test2$suffix $silent -h$tmpdir $ma_test2_opt[$i][0] $row_type", ++ $verbose, $i + 1); ++ ok("$maria_exe_path/aria_chk$suffix -h$tmpdir $ma_test2_opt[$i][1] $tmpdir/test2", ++ $verbose, $i + 1); ++ } ++ ++ for ($i= 0; defined($ma_rt_test_opt[$i]); $i++) ++ { ++ unlink_log_files(); ++ ok("$maria_exe_path/ma_rt_test$suffix $silent -h$tmpdir $ma_rt_test_opt[$i][0] $row_type", ++ $verbose, $i + 1); ++ ok("$maria_exe_path/aria_chk$suffix -h$tmpdir $ma_rt_test_opt[$i][1] $tmpdir/rt_test", ++ $verbose, $i + 1); ++ } ++ ++ unlink_log_files(); ++ ++ return 0; ++} ++ ++#### ++#### repair tests ++#### ++ ++sub run_repair_tests() ++{ ++ my ($suffix, $silent, $row_type, $verbose, $count)= @_; ++ my ($i); ++ ++ my @t= ($NEW_TEST, ++ "$maria_exe_path/ma_test1$suffix $silent --checksum $row_type", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix --silent -re --transaction-log test1", ++ "$maria_exe_path/aria_chk$suffix -rs test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -rqs test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -rs --correct-checksum test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -rqs --correct-checksum test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -ros --correct-checksum test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -rqos --correct-checksum test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -sz test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/ma_test2$suffix $silent -c -d1 $row_type", ++ "$maria_exe_path/aria_chk$suffix -s --parallel-recover test2", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ "$maria_exe_path/aria_chk$suffix -s --parallel-recover --quick test2", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ "$maria_exe_path/ma_test2$suffix $silent -c $row_type", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ "$maria_exe_path/aria_chk$suffix -sr test2", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ "$maria_exe_path/ma_test2$suffix $silent -c -t4 -b32768 $row_type", ++ "$maria_exe_path/aria_chk$suffix -s --zerofill test1", ++ "$maria_exe_path/aria_chk$suffix -se test1" ++ ); ++ ++ return &count_tests(\@t) if ($count); ++ &run_test_bunch(\@t, $verbose, 0); ++ return 0; ++} ++ ++#### ++#### pack tests ++#### ++ ++sub run_pack_tests() ++{ ++ my ($suffix, $silent, $row_type, $verbose, $count)= @_; ++ my ($i); ++ ++ my @t= ($NEW_TEST, ++ "$maria_exe_path/ma_test1$suffix $silent --checksum $row_type", ++ "$maria_exe_path/aria_pack$suffix --force -s test1", ++ "$maria_exe_path/aria_chk$suffix -ess test1", ++ "$maria_exe_path/aria_chk$suffix -rqs test1", ++ "$maria_exe_path/aria_chk$suffix -es test1", ++ "$maria_exe_path/aria_chk$suffix -rs test1", ++ "$maria_exe_path/aria_chk$suffix -es test1", ++ "$maria_exe_path/aria_chk$suffix -rus test1", ++ "$maria_exe_path/aria_chk$suffix -es test1", ++ $NEW_TEST, ++ "$maria_exe_path/ma_test1$suffix $silent --checksum $row_type", ++ "$maria_exe_path/aria_pack$suffix --force -s test1", ++ "$maria_exe_path/aria_chk$suffix -rus --safe-recover test1", ++ "$maria_exe_path/aria_chk$suffix -es test1", ++ $NEW_TEST, ++ "$maria_exe_path/ma_test1$suffix $silent --checksum -S $row_type", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ "$maria_exe_path/aria_chk$suffix -ros test1", ++ "$maria_exe_path/aria_chk$suffix -rqs test1", ++ "$maria_exe_path/aria_chk$suffix -se test1", ++ $NEW_TEST, ++ "$maria_exe_path/aria_pack$suffix --force -s test1", ++ "$maria_exe_path/aria_chk$suffix -rqs test1", ++ "$maria_exe_path/aria_chk$suffix -es test1", ++ "$maria_exe_path/aria_chk$suffix -rus test1", ++ "$maria_exe_path/aria_chk$suffix -es test1", ++ $NEW_TEST, ++ "$maria_exe_path/ma_test2$suffix $silent -c -d1 $row_type", ++ "$maria_exe_path/aria_chk$suffix -s --parallel-recover test2", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ "$maria_exe_path/aria_chk$suffix -s --unpack --parallel-recover test2", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ "$maria_exe_path/aria_pack$suffix --force -s test1", ++ "$maria_exe_path/aria_chk$suffix -s --unpack --parallel-recover test2", ++ "$maria_exe_path/aria_chk$suffix -se test2", ++ $NEW_TEST, ++ "$maria_exe_path/ma_test1$suffix $silent -c $row_type", ++ "cp test1.MAD test2.MAD", ++ "cp test1.MAI test2.MAI", ++ "$maria_exe_path/aria_pack$suffix --force -s --join=test3 test1 test2", ++ ); ++ ++ return (&count_tests(\@t) + 3) if ($count); ++ &run_test_bunch(\@t, $verbose, 0); ++ ++ ok("$maria_exe_path/aria_chk -s test3", $verbose, 0, 1); ++ @t= ("$maria_exe_path/aria_chk -s --safe-recover test3", ++ "$maria_exe_path/aria_chk -s test3"); ++ &run_test_bunch(\@t, $verbose, 0); ++ ++ return 0; ++} ++ ++#### ++#### Tests that gives warnings or errors ++#### ++ ++sub run_tests_on_warnings_and_errors ++{ ++ my ($suffix, $silent, $verbose, $count)= @_; ++ my ($com); ++ ++ return 9 if ($count); # Number of tests in this function, e.g. calls to ok() ++ ++ ok("$maria_exe_path/ma_test2$suffix -h$tmpdir $silent -L -K -W -P -S -R1 -m500", ++ $verbose, 0); ++ ok("$maria_exe_path/aria_chk$suffix -h$tmpdir -sm $tmpdir/test2", $verbose, 0); ++ # ma_test2$suffix $silent -L -K -R1 -m2000 ; Should give error 135\n ++ # In the following a failure is a success and success is a failure ++ $com= "$maria_exe_path/ma_test2$suffix -h$tmpdir $silent -L -K -R1 -m2000 "; ++ $com.= ">ma_test2_message.txt 2>&1"; ++ ok($com, $verbose, 0, 1); ++ ok("cat ma_test2_message.txt", $verbose, 0); ++ ok("grep \"Error: 135\" ma_test2_message.txt > /dev/null", $verbose, 0); ++ # maria_exe_path/aria_chk$suffix -h$tmpdir -sm $tmpdir/test2 will warn that ++ # Datafile is almost full ++ ok("$maria_exe_path/aria_chk$suffix -h$tmpdir -sm $tmpdir/test2 >ma_test2_message.txt 2>&1", ++ $verbose, 0, 1); ++ ok("cat ma_test2_message.txt", $verbose, 0); ++ ok("grep \"warning: Datafile is almost full\" ma_test2_message.txt>/dev/null", ++ $verbose, 0); ++ unlink ; ++ ok("$maria_exe_path/aria_chk$suffix -h$tmpdir -ssm $tmpdir/test2", $verbose, 0); ++ ++ return 0; ++} ++ ++#### ++#### Test that removing tables and applying the log leads to identical tables ++#### ++ ++sub run_ma_test_recovery ++{ ++ my ($verbose, $count)= @_; ++ ++ return 1 if ($count); # Number of tests in this function ++ ok("$maria_path/unittest/ma_test_recovery.pl", $verbose, 0); ++ return 0; ++} ++ ++#### ++#### Tests on CLR's ++#### ++ ++sub run_tests_on_clrs ++{ ++ my ($suffix, $verbose, $count)= @_; ++ my ($i); ++ ++ my @t= ($NEW_TEST, ++ "$maria_exe_path/ma_test2$suffix -h$tmpdir -s -L -K -W -P -M -T -c -b -t2 -A1", ++ "cp $tmpdir/aria_log_control $tmpdir/aria_log_control.backup", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -s -e $tmpdir/test2", ++ "mv $tmpdir/aria_log_control.backup $tmpdir/aria_log_control", ++ "rm $tmpdir/test2.MA?", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -s -e $tmpdir/test2", ++ "rm $tmpdir/test2.MA?", ++ $NEW_TEST, ++ "$maria_exe_path/ma_test2$suffix -h$tmpdir -s -L -K -W -P -M -T -c -b -t2 -A1", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir ", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -s -e $tmpdir/test2", ++ "rm $tmpdir/test2.MA?", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -e -s $tmpdir/test2", ++ "rm $tmpdir/test2.MA?", ++ $NEW_TEST, ++ "$maria_exe_path/ma_test2$suffix -h$tmpdir -s -L -K -W -P -M -T -c -b32768 -t4 -A1", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -es $tmpdir/test2", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir ", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -es $tmpdir/test2", ++ "rm $tmpdir/test2.MA?", ++ "$maria_exe_path/aria_read_log$suffix -a -s -h$tmpdir", ++ "$maria_exe_path/aria_chk$suffix -h$tmpdir -es $tmpdir/test2", ++ "rm $tmpdir/test2.MA?" ++ ); ++ ++ return &count_tests(\@t) if ($count); ++ &run_test_bunch(\@t, $verbose, 1); ++ return 0; ++} ++ ++# ++# Print "ok" on success and "not ok" on error ++# ++# Note: Every time this function is called it will be counted ++# as a unit test. ++# ++# Args: $com: The actual command run. Will be printed on a failure ++# $verbose: Be more verbose. ++# $iteration: Number of iterations in a loop when the error ++# occurred. If not in loop, this should be blank ++# (e.g. send zero). ++# $expected_error: Optional; put here expected error code. Test ++# will pass with this result only. ++# ++# Return value: Will return 1 on success and 0 on an error ++# ++ ++sub ok ++{ ++ my ($com, $verbose, $iteration, $expected_error)= @_; ++ my ($msg, $output, $err, $errcode, $len); ++ ++ $test_counter++; ++ if ($test_begin > $test_counter) ++ { ++ return 0; ++ } ++ if ($test_end && $test_end < $test_counter) ++ { ++ exit(0); ++ } ++ ++ $msg= ""; ++ $expected_error= 0 if (!defined($expected_error)); ++ ++ if ($verbose) ++ { ++ # Print command with out the long unittest/../ prefix ++ my $tmp; ++ $tmp= $com; ++ $tmp =~ s|^unittest/../||; ++ print "$tmp "; ++ $len= length($tmp); ++ } ++ $output= `$com 2>&1`; ++ if ($verbose) ++ { ++ print " " x (62 - $len); ++ } ++ $err= $?; ++ $errcode= ($? >> 8); ++ if ((!$err && !$expected_error) || ++ ($errcode == $expected_error && $expected_error)) ++ { ++ print "[ " if ($verbose); ++ print "ok"; ++ if ($verbose) ++ { ++ print " ]"; ++ print " " x (5 - length("$test_counter")); ++ print "$test_counter"; ++ } ++ else ++ { ++ print " $test_counter - $com" ++ } ++ print "\n"; ++ return 1; ++ } ++ print "[ " if ($verbose); ++ print "not ok"; ++ print " ]" if ($verbose); ++ print " $test_counter - $com" unless $verbose; ++ print "\n"; ++ if ($verbose && defined($output) && length($output)) ++ { ++ print "$output\n"; ++ } ++ if (!$verbose) ++ { ++ $msg= "\n"; # Get a nicer output in perl unit test mode ++ } ++ $msg.= "Failed test '$com' "; ++ if ($iteration) ++ { ++ $msg.= "(loop iteration $iteration.) "; ++ } ++ $msg.= "at line "; ++ $msg.= (caller)[2]; ++ $msg.= "\n(errcode: $errcode, test: $test_counter)\n"; ++ if ($expected_error) ++ { ++ $msg.= "Was expecting errcode: $expected_error\n"; ++ } ++ warn $msg; ++ $runtime_error= 1; ++ if ($opt_abort_on_error) ++ { ++ exit 1; ++ } ++ return 0; ++} ++ ++# ++# Print "skip" and the reason ++# ++# Note: Every time this function is called it will be counted ++# as a unit test. ++# ++# Args: $com: The actual command run. Will be printed on a failure ++# $reason: The reason to skip a test ++# $verbose: Be more verbose. ++# ++ ++sub skip ++{ ++ my ($com, $reason, $verbose)= @_; ++ ++ $test_counter++; ++ return 0 if $test_begin > $test_counter; ++ exit 0 if $test_end && $test_end < $test_counter; ++ printf '%-64s[ skipped ]%5d', $com, $test_counter if $verbose; ++ print "ok $test_counter # skip $reason" unless $verbose; ++ print "\n"; ++ return 1; ++} ++ ++#### ++#### Count tests ++#### Arguments: $t: an array of the tests ++#### ++ ++sub count_tests ++{ ++ my ($t)= @_; ++ my ($i, $nr_tests); ++ ++ $nr_tests= 0; ++ for ($i= 0; defined(@$t[$i]); $i++) { $nr_tests++ if (@$t[$i]); } ++ return $nr_tests; ++} ++ ++sub unlink_log_files ++{ ++ unlink "$full_tmpdir/aria_log_control", "$full_tmpdir/aria_log.00000001", "$full_tmpdir/aria_log.00000002"; ++} ++ ++sub unlink_all_possible_tmp_files() ++{ ++ unlink_log_files(); ++ ++ # Unlink tmp files that may have been created when testing the test programs ++ unlink <$full_tmpdir/*.TMD $full_tmpdir/aria_read_log_test1.txt $full_tmpdir/test1*.MA? $full_tmpdir/ma_test_recovery.output aria_log_control aria_log.00000001 aria_log.00000002 aria_logtest1.MA? test1.MA? test2.MA? test3.MA?>; ++} ++ ++#### ++#### Run a bunch of tests ++#### Arguments: $t: an array of the tests ++#### $verbose: to be passed to ok() ++#### $clear: clear log files if set ++#### ++ ++sub run_test_bunch ++{ ++ my ($t, $verbose, $clear)= @_; ++ my ($i); ++ ++ for ($i= 0; defined(@$t[$i]); $i++) ++ { ++ if ($clear && @$t[$i] eq $NEW_TEST) ++ { ++ unlink_log_files(); ++ } ++ if (@$t[$i] ne $NEW_TEST) ++ { ++ ok(@$t[$i], $verbose, $i + 1); ++ } ++ } ++} ++ ++#### ++#### usage ++#### ++ ++sub usage ++{ ++ print <. ++# ++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, ++# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++# This configure script is free software; the Free Software Foundation ++# gives unlimited permission to copy, distribute and modify it. ++## --------------------- ## ++## M4sh Initialization. ## ++## --------------------- ## ++ ++# Be more Bourne compatible ++DUALCASE=1; export DUALCASE # for MKS sh ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in ++ *posix*) set -o posix ;; ++esac ++ ++fi ++ ++ ++ ++ ++# PATH needs CR ++# Avoid depending upon Character Ranges. ++as_cr_letters='abcdefghijklmnopqrstuvwxyz' ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS ++as_cr_digits='0123456789' ++as_cr_alnum=$as_cr_Letters$as_cr_digits ++ ++as_nl=' ++' ++export as_nl ++# Printing a long string crashes Solaris 7 /usr/bin/printf. ++as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo ++if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='printf %s\n' ++ as_echo_n='printf %s' ++else ++ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then ++ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' ++ as_echo_n='/usr/ucb/echo -n' ++ else ++ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' ++ as_echo_n_body='eval ++ arg=$1; ++ case $arg in ++ *"$as_nl"*) ++ expr "X$arg" : "X\\(.*\\)$as_nl"; ++ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; ++ esac; ++ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ++ ' ++ export as_echo_n_body ++ as_echo_n='sh -c $as_echo_n_body as_echo' ++ fi ++ export as_echo_body ++ as_echo='sh -c $as_echo_body as_echo' ++fi ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { ++ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || ++ PATH_SEPARATOR=';' ++ } ++fi ++ ++# Support unset when possible. ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ as_unset=unset ++else ++ as_unset=false ++fi ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. Quoting is ++# there to prevent editors from complaining about space-tab. ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word ++# splitting by setting IFS to empty value.) ++IFS=" "" $as_nl" ++ ++# Find who we are. Look in the path if we contain no directory separator. ++case $0 in ++ *[\\/]* ) as_myself=$0 ;; ++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++# We did not find ourselves, most probably we were run as `sh COMMAND' ++# in which case we are not to be found in the path. ++if test "x$as_myself" = x; then ++ as_myself=$0 ++fi ++if test ! -f "$as_myself"; then ++ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 ++ { (exit 1); exit 1; } ++fi ++ ++# Work around bugs in pre-3.0 UWIN ksh. ++for as_var in ENV MAIL MAILPATH ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var ++done ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++LC_ALL=C ++export LC_ALL ++LANGUAGE=C ++export LANGUAGE ++ ++# Required to use basename. ++if expr a : '\(a\)' >/dev/null 2>&1 && ++ test "X`expr 00001 : '.*\(...\)'`" = X001; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++ ++# Name of the executable. ++as_me=`$as_basename -- "$0" || ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X/"$0" | ++ sed '/^.*\/\([^/][^/]*\)\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ ++# CDPATH. ++$as_unset CDPATH ++ ++ ++if test "x$CONFIG_SHELL" = x; then ++ if (eval ":") 2>/dev/null; then ++ as_have_required=yes ++else ++ as_have_required=no ++fi ++ ++ if test $as_have_required = yes && (eval ": ++(as_func_return () { ++ (exit \$1) ++} ++as_func_success () { ++ as_func_return 0 ++} ++as_func_failure () { ++ as_func_return 1 ++} ++as_func_ret_success () { ++ return 0 ++} ++as_func_ret_failure () { ++ return 1 ++} ++ ++exitcode=0 ++if as_func_success; then ++ : ++else ++ exitcode=1 ++ echo as_func_success failed. ++fi ++ ++if as_func_failure; then ++ exitcode=1 ++ echo as_func_failure succeeded. ++fi ++ ++if as_func_ret_success; then ++ : ++else ++ exitcode=1 ++ echo as_func_ret_success failed. ++fi ++ ++if as_func_ret_failure; then ++ exitcode=1 ++ echo as_func_ret_failure succeeded. ++fi ++ ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then ++ : ++else ++ exitcode=1 ++ echo positional parameters were not saved. ++fi ++ ++test \$exitcode = 0) || { (exit 1); exit 1; } ++ ++( ++ as_lineno_1=\$LINENO ++ as_lineno_2=\$LINENO ++ test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && ++ test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ++") 2> /dev/null; then ++ : ++else ++ as_candidate_shells= ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ case $as_dir in ++ /*) ++ for as_base in sh bash ksh sh5; do ++ as_candidate_shells="$as_candidate_shells $as_dir/$as_base" ++ done;; ++ esac ++done ++IFS=$as_save_IFS ++ ++ ++ for as_shell in $as_candidate_shells $SHELL; do ++ # Try only shells that exist, to save several forks. ++ if { test -f "$as_shell" || test -f "$as_shell.exe"; } && ++ { ("$as_shell") 2> /dev/null <<\_ASEOF ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in ++ *posix*) set -o posix ;; ++esac ++ ++fi ++ ++ ++: ++_ASEOF ++}; then ++ CONFIG_SHELL=$as_shell ++ as_have_required=yes ++ if { "$as_shell" 2> /dev/null <<\_ASEOF ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in ++ *posix*) set -o posix ;; ++esac ++ ++fi ++ ++ ++: ++(as_func_return () { ++ (exit $1) ++} ++as_func_success () { ++ as_func_return 0 ++} ++as_func_failure () { ++ as_func_return 1 ++} ++as_func_ret_success () { ++ return 0 ++} ++as_func_ret_failure () { ++ return 1 ++} ++ ++exitcode=0 ++if as_func_success; then ++ : ++else ++ exitcode=1 ++ echo as_func_success failed. ++fi ++ ++if as_func_failure; then ++ exitcode=1 ++ echo as_func_failure succeeded. ++fi ++ ++if as_func_ret_success; then ++ : ++else ++ exitcode=1 ++ echo as_func_ret_success failed. ++fi ++ ++if as_func_ret_failure; then ++ exitcode=1 ++ echo as_func_ret_failure succeeded. ++fi ++ ++if ( set x; as_func_ret_success y && test x = "$1" ); then ++ : ++else ++ exitcode=1 ++ echo positional parameters were not saved. ++fi ++ ++test $exitcode = 0) || { (exit 1); exit 1; } ++ ++( ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } ++ ++_ASEOF ++}; then ++ break ++fi ++ ++fi ++ ++ done ++ ++ if test "x$CONFIG_SHELL" != x; then ++ for as_var in BASH_ENV ENV ++ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var ++ done ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} ++fi ++ ++ ++ if test $as_have_required = no; then ++ echo This script requires a shell more modern than all the ++ echo shells that I found on your system. Please install a ++ echo modern shell, or manually run the script under such a ++ echo shell if you do have one. ++ { (exit 1); exit 1; } ++fi ++ ++ ++fi ++ ++fi ++ ++ ++ ++(eval "as_func_return () { ++ (exit \$1) ++} ++as_func_success () { ++ as_func_return 0 ++} ++as_func_failure () { ++ as_func_return 1 ++} ++as_func_ret_success () { ++ return 0 ++} ++as_func_ret_failure () { ++ return 1 ++} ++ ++exitcode=0 ++if as_func_success; then ++ : ++else ++ exitcode=1 ++ echo as_func_success failed. ++fi ++ ++if as_func_failure; then ++ exitcode=1 ++ echo as_func_failure succeeded. ++fi ++ ++if as_func_ret_success; then ++ : ++else ++ exitcode=1 ++ echo as_func_ret_success failed. ++fi ++ ++if as_func_ret_failure; then ++ exitcode=1 ++ echo as_func_ret_failure succeeded. ++fi ++ ++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then ++ : ++else ++ exitcode=1 ++ echo positional parameters were not saved. ++fi ++ ++test \$exitcode = 0") || { ++ echo No shell found that supports shell functions. ++ echo Please tell bug-autoconf@gnu.org about your system, ++ echo including any error possibly output before this message. ++ echo This can help us improve future autoconf versions. ++ echo Configuration will now proceed without shell functions. ++} ++ ++ ++ ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { ++ ++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ++ # uniformly replaced by the line number. The first 'sed' inserts a ++ # line-number line after each line using $LINENO; the second 'sed' ++ # does the real work. The second script uses 'N' to pair each ++ # line-number line with the line containing $LINENO, and appends ++ # trailing '-' during substitution so that $LINENO is not a special ++ # case at line end. ++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ++ # scripts with optimization help from Paolo Bonzini. Blame Lee ++ # E. McMahon (1931-1989) for sed's syntax. :-) ++ sed -n ' ++ p ++ /[$]LINENO/= ++ ' <$as_myself | ++ sed ' ++ s/[$]LINENO.*/&-/ ++ t lineno ++ b ++ :lineno ++ N ++ :loop ++ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ ++ t loop ++ s/-\n.*// ++ ' >$as_me.lineno && ++ chmod +x "$as_me.lineno" || ++ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 ++ { (exit 1); exit 1; }; } ++ ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensitive to this). ++ . "./$as_me.lineno" ++ # Exit status is that of the last command. ++ exit ++} ++ ++ ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then ++ as_dirname=dirname ++else ++ as_dirname=false ++fi ++ ++ECHO_C= ECHO_N= ECHO_T= ++case `echo -n x` in ++-n*) ++ case `echo 'x\c'` in ++ *c*) ECHO_T=' ';; # ECHO_T is single tab character. ++ *) ECHO_C='\c';; ++ esac;; ++*) ++ ECHO_N='-n';; ++esac ++if expr a : '\(a\)' >/dev/null 2>&1 && ++ test "X`expr 00001 : '.*\(...\)'`" = X001; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++rm -f conf$$ conf$$.exe conf$$.file ++if test -d conf$$.dir; then ++ rm -f conf$$.dir/conf$$.file ++else ++ rm -f conf$$.dir ++ mkdir conf$$.dir 2>/dev/null ++fi ++if (echo >conf$$.file) 2>/dev/null; then ++ if ln -s conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s='ln -s' ++ # ... but there are two gotchas: ++ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. ++ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. ++ # In both cases, we have to default to `cp -p'. ++ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || ++ as_ln_s='cp -p' ++ elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++ else ++ as_ln_s='cp -p' ++ fi ++else ++ as_ln_s='cp -p' ++fi ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file ++rmdir conf$$.dir 2>/dev/null ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p=: ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++if test -x / >/dev/null 2>&1; then ++ as_test_x='test -x' ++else ++ if ls -dL / >/dev/null 2>&1; then ++ as_ls_L_option=L ++ else ++ as_ls_L_option= ++ fi ++ as_test_x=' ++ eval sh -c '\'' ++ if test -d "$1"; then ++ test -d "$1/."; ++ else ++ case $1 in ++ -*)set "./$1";; ++ esac; ++ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ++ ???[sx]*):;;*)false;;esac;fi ++ '\'' sh ++ ' ++fi ++as_executable_p=$as_test_x ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++ ++ ++# Check that we are running under the correct shell. ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++case X$lt_ECHO in ++X*--fallback-echo) ++ # Remove one level of quotation (which was required for Make). ++ ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ++ ;; ++esac ++ ++ECHO=${lt_ECHO-echo} ++if test "X$1" = X--no-reexec; then ++ # Discard the --no-reexec flag, and continue. ++ shift ++elif test "X$1" = X--fallback-echo; then ++ # Avoid inline document here, it may be left over ++ : ++elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then ++ # Yippee, $ECHO works! ++ : ++else ++ # Restart under the correct shell. ++ exec $SHELL "$0" --no-reexec ${1+"$@"} ++fi ++ ++if test "X$1" = X--fallback-echo; then ++ # used as fallback echo ++ shift ++ cat <<_LT_EOF ++$* ++_LT_EOF ++ exit 0 ++fi ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++if test -z "$lt_ECHO"; then ++ if test "X${echo_test_string+set}" != Xset; then ++ # find a string as large as possible, as long as the shell can cope with it ++ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do ++ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ++ if { echo_test_string=`eval $cmd`; } 2>/dev/null && ++ { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null ++ then ++ break ++ fi ++ done ++ fi ++ ++ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ : ++ else ++ # The Solaris, AIX, and Digital Unix default echo programs unquote ++ # backslashes. This makes it impossible to quote backslashes using ++ # echo "$something" | sed 's/\\/\\\\/g' ++ # ++ # So, first we look for a working echo in the user's PATH. ++ ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for dir in $PATH /usr/ucb; do ++ IFS="$lt_save_ifs" ++ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && ++ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ ECHO="$dir/echo" ++ break ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ++ if test "X$ECHO" = Xecho; then ++ # We didn't find a better echo, so look for alternatives. ++ if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # This shell has a builtin print -r that does the trick. ++ ECHO='print -r' ++ elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && ++ test "X$CONFIG_SHELL" != X/bin/ksh; then ++ # If we have ksh, try running configure again with it. ++ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} ++ export ORIGINAL_CONFIG_SHELL ++ CONFIG_SHELL=/bin/ksh ++ export CONFIG_SHELL ++ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} ++ else ++ # Try using printf. ++ ECHO='printf %s\n' ++ if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && ++ echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ # Cool, printf works ++ : ++ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL ++ export CONFIG_SHELL ++ SHELL="$CONFIG_SHELL" ++ export SHELL ++ ECHO="$CONFIG_SHELL $0 --fallback-echo" ++ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && ++ test "X$echo_testing_string" = 'X\t' && ++ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && ++ test "X$echo_testing_string" = "X$echo_test_string"; then ++ ECHO="$CONFIG_SHELL $0 --fallback-echo" ++ else ++ # maybe with a smaller string... ++ prev=: ++ ++ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do ++ if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null ++ then ++ break ++ fi ++ prev="$cmd" ++ done ++ ++ if test "$prev" != 'sed 50q "$0"'; then ++ echo_test_string=`eval $prev` ++ export echo_test_string ++ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} ++ else ++ # Oops. We lost completely, so just stick with echo. ++ ECHO=echo ++ fi ++ fi ++ fi ++ fi ++ fi ++fi ++ ++# Copy echo and quote the copy suitably for passing to libtool from ++# the Makefile, instead of quoting the original, which is used later. ++lt_ECHO=$ECHO ++if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ++ lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" ++fi ++ ++ ++ ++ ++exec 7<&0 &1 ++ ++# Name of the host. ++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, ++# so uname gets run too. ++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` ++ ++# ++# Initializations. ++# ++ac_default_prefix=/usr/local ++ac_clean_files= ++ac_config_libobj_dir=. ++LIBOBJS= ++cross_compiling=no ++subdirs= ++MFLAGS= ++MAKEFLAGS= ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++# Identity of this package. ++PACKAGE_NAME='XZ Utils' ++PACKAGE_TARNAME='xz' ++PACKAGE_VERSION='4.999.9beta' ++PACKAGE_STRING='XZ Utils 4.999.9beta' ++PACKAGE_BUGREPORT='lasse.collin@tukaani.org' ++ ++ac_unique_file="src/liblzma/common/common.h" ++# Factoring default headers for most tests. ++ac_includes_default="\ ++#include ++#ifdef HAVE_SYS_TYPES_H ++# include ++#endif ++#ifdef HAVE_SYS_STAT_H ++# include ++#endif ++#ifdef STDC_HEADERS ++# include ++# include ++#else ++# ifdef HAVE_STDLIB_H ++# include ++# endif ++#endif ++#ifdef HAVE_STRING_H ++# if !defined STDC_HEADERS && defined HAVE_MEMORY_H ++# include ++# endif ++# include ++#endif ++#ifdef HAVE_STRINGS_H ++# include ++#endif ++#ifdef HAVE_INTTYPES_H ++# include ++#endif ++#ifdef HAVE_STDINT_H ++# include ++#endif ++#ifdef HAVE_UNISTD_H ++# include ++#endif" ++ ++gt_needs= ++ac_subst_vars='am__EXEEXT_FALSE ++am__EXEEXT_TRUE ++LTLIBOBJS ++xz ++DYNAMIC_LDFLAGS ++DYNAMIC_CPPFLAGS ++STATIC_LDFLAGS ++STATIC_CPPFLAGS ++AM_CFLAGS ++COND_GNULIB_FALSE ++COND_GNULIB_TRUE ++HAVE_VISIBILITY ++CFLAG_VISIBILITY ++GETOPT_H ++LIBOBJS ++POSUB ++LTLIBINTL ++LIBINTL ++INTLLIBS ++LTLIBICONV ++LIBICONV ++INTL_MACOSX_LIBS ++MSGMERGE ++XGETTEXT_015 ++XGETTEXT ++GMSGFMT_015 ++MSGFMT_015 ++GMSGFMT ++MSGFMT ++USE_NLS ++COND_SHARED_FALSE ++COND_SHARED_TRUE ++RC ++OTOOL64 ++OTOOL ++LIPO ++NMEDIT ++DSYMUTIL ++lt_ECHO ++RANLIB ++AR ++NM ++ac_ct_DUMPBIN ++DUMPBIN ++LD ++FGREP ++SED ++LIBTOOL ++OBJDUMP ++DLLTOOL ++AS ++PTHREAD_CFLAGS ++PTHREAD_LIBS ++PTHREAD_CC ++acx_pthread_config ++EGREP ++GREP ++CPP ++am__fastdepCCAS_FALSE ++am__fastdepCCAS_TRUE ++CCASDEPMODE ++CCASFLAGS ++CCAS ++am__fastdepCC_FALSE ++am__fastdepCC_TRUE ++CCDEPMODE ++AMDEPBACKSLASH ++AMDEP_FALSE ++AMDEP_TRUE ++am__quote ++am__include ++DEPDIR ++OBJEXT ++EXEEXT ++ac_ct_CC ++CPPFLAGS ++LDFLAGS ++CFLAGS ++CC ++LN_S ++am__untar ++am__tar ++AMTAR ++am__leading_dot ++SET_MAKE ++AWK ++mkdir_p ++MKDIR_P ++INSTALL_STRIP_PROGRAM ++STRIP ++install_sh ++MAKEINFO ++AUTOHEADER ++AUTOMAKE ++AUTOCONF ++ACLOCAL ++VERSION ++PACKAGE ++CYGPATH_W ++am__isrc ++INSTALL_DATA ++INSTALL_SCRIPT ++INSTALL_PROGRAM ++PREFERABLY_POSIX_SHELL ++POSIX_SHELL ++COND_SMALL_FALSE ++COND_SMALL_TRUE ++COND_ASM_X86_64_FALSE ++COND_ASM_X86_64_TRUE ++COND_ASM_X86_FALSE ++COND_ASM_X86_TRUE ++COND_CHECK_SHA256_FALSE ++COND_CHECK_SHA256_TRUE ++COND_CHECK_CRC64_FALSE ++COND_CHECK_CRC64_TRUE ++COND_CHECK_CRC32_FALSE ++COND_CHECK_CRC32_TRUE ++COND_DECODER_LZ_FALSE ++COND_DECODER_LZ_TRUE ++COND_ENCODER_LZ_FALSE ++COND_ENCODER_LZ_TRUE ++COND_FILTER_LZ_FALSE ++COND_FILTER_LZ_TRUE ++COND_DECODER_SIMPLE_FALSE ++COND_DECODER_SIMPLE_TRUE ++COND_ENCODER_SIMPLE_FALSE ++COND_ENCODER_SIMPLE_TRUE ++COND_FILTER_SIMPLE_FALSE ++COND_FILTER_SIMPLE_TRUE ++COND_DECODER_SPARC_FALSE ++COND_DECODER_SPARC_TRUE ++COND_ENCODER_SPARC_FALSE ++COND_ENCODER_SPARC_TRUE ++COND_FILTER_SPARC_FALSE ++COND_FILTER_SPARC_TRUE ++COND_DECODER_ARMTHUMB_FALSE ++COND_DECODER_ARMTHUMB_TRUE ++COND_ENCODER_ARMTHUMB_FALSE ++COND_ENCODER_ARMTHUMB_TRUE ++COND_FILTER_ARMTHUMB_FALSE ++COND_FILTER_ARMTHUMB_TRUE ++COND_DECODER_ARM_FALSE ++COND_DECODER_ARM_TRUE ++COND_ENCODER_ARM_FALSE ++COND_ENCODER_ARM_TRUE ++COND_FILTER_ARM_FALSE ++COND_FILTER_ARM_TRUE ++COND_DECODER_IA64_FALSE ++COND_DECODER_IA64_TRUE ++COND_ENCODER_IA64_FALSE ++COND_ENCODER_IA64_TRUE ++COND_FILTER_IA64_FALSE ++COND_FILTER_IA64_TRUE ++COND_DECODER_POWERPC_FALSE ++COND_DECODER_POWERPC_TRUE ++COND_ENCODER_POWERPC_FALSE ++COND_ENCODER_POWERPC_TRUE ++COND_FILTER_POWERPC_FALSE ++COND_FILTER_POWERPC_TRUE ++COND_DECODER_X86_FALSE ++COND_DECODER_X86_TRUE ++COND_ENCODER_X86_FALSE ++COND_ENCODER_X86_TRUE ++COND_FILTER_X86_FALSE ++COND_FILTER_X86_TRUE ++COND_DECODER_DELTA_FALSE ++COND_DECODER_DELTA_TRUE ++COND_ENCODER_DELTA_FALSE ++COND_ENCODER_DELTA_TRUE ++COND_FILTER_DELTA_FALSE ++COND_FILTER_DELTA_TRUE ++COND_DECODER_SUBBLOCK_FALSE ++COND_DECODER_SUBBLOCK_TRUE ++COND_ENCODER_SUBBLOCK_FALSE ++COND_ENCODER_SUBBLOCK_TRUE ++COND_FILTER_SUBBLOCK_FALSE ++COND_FILTER_SUBBLOCK_TRUE ++COND_DECODER_LZMA2_FALSE ++COND_DECODER_LZMA2_TRUE ++COND_ENCODER_LZMA2_FALSE ++COND_ENCODER_LZMA2_TRUE ++COND_FILTER_LZMA2_FALSE ++COND_FILTER_LZMA2_TRUE ++COND_DECODER_LZMA1_FALSE ++COND_DECODER_LZMA1_TRUE ++COND_ENCODER_LZMA1_FALSE ++COND_ENCODER_LZMA1_TRUE ++COND_FILTER_LZMA1_FALSE ++COND_FILTER_LZMA1_TRUE ++COND_MAIN_DECODER_FALSE ++COND_MAIN_DECODER_TRUE ++COND_MAIN_ENCODER_FALSE ++COND_MAIN_ENCODER_TRUE ++COND_W32_FALSE ++COND_W32_TRUE ++host_os ++host_vendor ++host_cpu ++host ++build_os ++build_vendor ++build_cpu ++build ++PACKAGE_HOMEPAGE ++target_alias ++host_alias ++build_alias ++LIBS ++ECHO_T ++ECHO_N ++ECHO_C ++DEFS ++mandir ++localedir ++libdir ++psdir ++pdfdir ++dvidir ++htmldir ++infodir ++docdir ++oldincludedir ++includedir ++localstatedir ++sharedstatedir ++sysconfdir ++datadir ++datarootdir ++libexecdir ++sbindir ++bindir ++program_transform_name ++prefix ++exec_prefix ++PACKAGE_BUGREPORT ++PACKAGE_STRING ++PACKAGE_VERSION ++PACKAGE_TARNAME ++PACKAGE_NAME ++PATH_SEPARATOR ++SHELL' ++ac_subst_files='' ++ac_user_opts=' ++enable_option_checking ++enable_debug ++enable_encoders ++enable_decoders ++enable_match_finders ++enable_checks ++enable_assembler ++enable_unaligned_access ++enable_small ++enable_threads ++enable_dynamic ++enable_dependency_tracking ++enable_shared ++enable_static ++with_pic ++enable_fast_install ++with_gnu_ld ++enable_libtool_lock ++enable_nls ++enable_rpath ++with_libiconv_prefix ++with_libintl_prefix ++enable_largefile ++enable_werror ++' ++ ac_precious_vars='build_alias ++host_alias ++target_alias ++CC ++CFLAGS ++LDFLAGS ++LIBS ++CPPFLAGS ++CCAS ++CCASFLAGS ++CPP' ++ ++ ++# Initialize some variables set by options. ++ac_init_help= ++ac_init_version=false ++ac_unrecognized_opts= ++ac_unrecognized_sep= ++# The variables have the same names as the options, with ++# dashes changed to underlines. ++cache_file=/dev/null ++exec_prefix=NONE ++no_create= ++no_recursion= ++prefix=NONE ++program_prefix=NONE ++program_suffix=NONE ++program_transform_name=s,x,x, ++silent= ++site= ++srcdir= ++verbose= ++x_includes=NONE ++x_libraries=NONE ++ ++# Installation directory options. ++# These are left unexpanded so users can "make install exec_prefix=/foo" ++# and all the variables that are supposed to be based on exec_prefix ++# by default will actually change. ++# Use braces instead of parens because sh, perl, etc. also accept them. ++# (The list follows the same order as the GNU Coding Standards.) ++bindir='${exec_prefix}/bin' ++sbindir='${exec_prefix}/sbin' ++libexecdir='${exec_prefix}/libexec' ++datarootdir='${prefix}/share' ++datadir='${datarootdir}' ++sysconfdir='${prefix}/etc' ++sharedstatedir='${prefix}/com' ++localstatedir='${prefix}/var' ++includedir='${prefix}/include' ++oldincludedir='/usr/include' ++docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' ++infodir='${datarootdir}/info' ++htmldir='${docdir}' ++dvidir='${docdir}' ++pdfdir='${docdir}' ++psdir='${docdir}' ++libdir='${exec_prefix}/lib' ++localedir='${datarootdir}/locale' ++mandir='${datarootdir}/man' ++ ++ac_prev= ++ac_dashdash= ++for ac_option ++do ++ # If the previous option needs an argument, assign it. ++ if test -n "$ac_prev"; then ++ eval $ac_prev=\$ac_option ++ ac_prev= ++ continue ++ fi ++ ++ case $ac_option in ++ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; ++ *) ac_optarg=yes ;; ++ esac ++ ++ # Accept the important Cygnus configure options, so we can diagnose typos. ++ ++ case $ac_dashdash$ac_option in ++ --) ++ ac_dashdash=yes ;; ++ ++ -bindir | --bindir | --bindi | --bind | --bin | --bi) ++ ac_prev=bindir ;; ++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) ++ bindir=$ac_optarg ;; ++ ++ -build | --build | --buil | --bui | --bu) ++ ac_prev=build_alias ;; ++ -build=* | --build=* | --buil=* | --bui=* | --bu=*) ++ build_alias=$ac_optarg ;; ++ ++ -cache-file | --cache-file | --cache-fil | --cache-fi \ ++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ++ ac_prev=cache_file ;; ++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ ++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) ++ cache_file=$ac_optarg ;; ++ ++ --config-cache | -C) ++ cache_file=config.cache ;; ++ ++ -datadir | --datadir | --datadi | --datad) ++ ac_prev=datadir ;; ++ -datadir=* | --datadir=* | --datadi=* | --datad=*) ++ datadir=$ac_optarg ;; ++ ++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ ++ | --dataroo | --dataro | --datar) ++ ac_prev=datarootdir ;; ++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ ++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) ++ datarootdir=$ac_optarg ;; ++ ++ -disable-* | --disable-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 ++ { (exit 1); exit 1; }; } ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"enable_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval enable_$ac_useropt=no ;; ++ ++ -docdir | --docdir | --docdi | --doc | --do) ++ ac_prev=docdir ;; ++ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) ++ docdir=$ac_optarg ;; ++ ++ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ++ ac_prev=dvidir ;; ++ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) ++ dvidir=$ac_optarg ;; ++ ++ -enable-* | --enable-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 ++ { (exit 1); exit 1; }; } ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"enable_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval enable_$ac_useropt=\$ac_optarg ;; ++ ++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ ++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ ++ | --exec | --exe | --ex) ++ ac_prev=exec_prefix ;; ++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ ++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ ++ | --exec=* | --exe=* | --ex=*) ++ exec_prefix=$ac_optarg ;; ++ ++ -gas | --gas | --ga | --g) ++ # Obsolete; use --with-gas. ++ with_gas=yes ;; ++ ++ -help | --help | --hel | --he | -h) ++ ac_init_help=long ;; ++ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ++ ac_init_help=recursive ;; ++ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ++ ac_init_help=short ;; ++ ++ -host | --host | --hos | --ho) ++ ac_prev=host_alias ;; ++ -host=* | --host=* | --hos=* | --ho=*) ++ host_alias=$ac_optarg ;; ++ ++ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ++ ac_prev=htmldir ;; ++ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ ++ | --ht=*) ++ htmldir=$ac_optarg ;; ++ ++ -includedir | --includedir | --includedi | --included | --include \ ++ | --includ | --inclu | --incl | --inc) ++ ac_prev=includedir ;; ++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ ++ | --includ=* | --inclu=* | --incl=* | --inc=*) ++ includedir=$ac_optarg ;; ++ ++ -infodir | --infodir | --infodi | --infod | --info | --inf) ++ ac_prev=infodir ;; ++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) ++ infodir=$ac_optarg ;; ++ ++ -libdir | --libdir | --libdi | --libd) ++ ac_prev=libdir ;; ++ -libdir=* | --libdir=* | --libdi=* | --libd=*) ++ libdir=$ac_optarg ;; ++ ++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ ++ | --libexe | --libex | --libe) ++ ac_prev=libexecdir ;; ++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ ++ | --libexe=* | --libex=* | --libe=*) ++ libexecdir=$ac_optarg ;; ++ ++ -localedir | --localedir | --localedi | --localed | --locale) ++ ac_prev=localedir ;; ++ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) ++ localedir=$ac_optarg ;; ++ ++ -localstatedir | --localstatedir | --localstatedi | --localstated \ ++ | --localstate | --localstat | --localsta | --localst | --locals) ++ ac_prev=localstatedir ;; ++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ ++ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) ++ localstatedir=$ac_optarg ;; ++ ++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ++ ac_prev=mandir ;; ++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) ++ mandir=$ac_optarg ;; ++ ++ -nfp | --nfp | --nf) ++ # Obsolete; use --without-fp. ++ with_fp=no ;; ++ ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c | -n) ++ no_create=yes ;; ++ ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ++ no_recursion=yes ;; ++ ++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ ++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ ++ | --oldin | --oldi | --old | --ol | --o) ++ ac_prev=oldincludedir ;; ++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ ++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ ++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) ++ oldincludedir=$ac_optarg ;; ++ ++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ++ ac_prev=prefix ;; ++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ++ prefix=$ac_optarg ;; ++ ++ -program-prefix | --program-prefix | --program-prefi | --program-pref \ ++ | --program-pre | --program-pr | --program-p) ++ ac_prev=program_prefix ;; ++ -program-prefix=* | --program-prefix=* | --program-prefi=* \ ++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) ++ program_prefix=$ac_optarg ;; ++ ++ -program-suffix | --program-suffix | --program-suffi | --program-suff \ ++ | --program-suf | --program-su | --program-s) ++ ac_prev=program_suffix ;; ++ -program-suffix=* | --program-suffix=* | --program-suffi=* \ ++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) ++ program_suffix=$ac_optarg ;; ++ ++ -program-transform-name | --program-transform-name \ ++ | --program-transform-nam | --program-transform-na \ ++ | --program-transform-n | --program-transform- \ ++ | --program-transform | --program-transfor \ ++ | --program-transfo | --program-transf \ ++ | --program-trans | --program-tran \ ++ | --progr-tra | --program-tr | --program-t) ++ ac_prev=program_transform_name ;; ++ -program-transform-name=* | --program-transform-name=* \ ++ | --program-transform-nam=* | --program-transform-na=* \ ++ | --program-transform-n=* | --program-transform-=* \ ++ | --program-transform=* | --program-transfor=* \ ++ | --program-transfo=* | --program-transf=* \ ++ | --program-trans=* | --program-tran=* \ ++ | --progr-tra=* | --program-tr=* | --program-t=*) ++ program_transform_name=$ac_optarg ;; ++ ++ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ++ ac_prev=pdfdir ;; ++ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) ++ pdfdir=$ac_optarg ;; ++ ++ -psdir | --psdir | --psdi | --psd | --ps) ++ ac_prev=psdir ;; ++ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) ++ psdir=$ac_optarg ;; ++ ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ silent=yes ;; ++ ++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ++ ac_prev=sbindir ;; ++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ ++ | --sbi=* | --sb=*) ++ sbindir=$ac_optarg ;; ++ ++ -sharedstatedir | --sharedstatedir | --sharedstatedi \ ++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ ++ | --sharedst | --shareds | --shared | --share | --shar \ ++ | --sha | --sh) ++ ac_prev=sharedstatedir ;; ++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ ++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ ++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ ++ | --sha=* | --sh=*) ++ sharedstatedir=$ac_optarg ;; ++ ++ -site | --site | --sit) ++ ac_prev=site ;; ++ -site=* | --site=* | --sit=*) ++ site=$ac_optarg ;; ++ ++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ++ ac_prev=srcdir ;; ++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ++ srcdir=$ac_optarg ;; ++ ++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ ++ | --syscon | --sysco | --sysc | --sys | --sy) ++ ac_prev=sysconfdir ;; ++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ ++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) ++ sysconfdir=$ac_optarg ;; ++ ++ -target | --target | --targe | --targ | --tar | --ta | --t) ++ ac_prev=target_alias ;; ++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) ++ target_alias=$ac_optarg ;; ++ ++ -v | -verbose | --verbose | --verbos | --verbo | --verb) ++ verbose=yes ;; ++ ++ -version | --version | --versio | --versi | --vers | -V) ++ ac_init_version=: ;; ++ ++ -with-* | --with-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 ++ { (exit 1); exit 1; }; } ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"with_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval with_$ac_useropt=\$ac_optarg ;; ++ ++ -without-* | --without-*) ++ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && ++ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 ++ { (exit 1); exit 1; }; } ++ ac_useropt_orig=$ac_useropt ++ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` ++ case $ac_user_opts in ++ *" ++"with_$ac_useropt" ++"*) ;; ++ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ++ ac_unrecognized_sep=', ';; ++ esac ++ eval with_$ac_useropt=no ;; ++ ++ --x) ++ # Obsolete; use --with-x. ++ with_x=yes ;; ++ ++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ ++ | --x-incl | --x-inc | --x-in | --x-i) ++ ac_prev=x_includes ;; ++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ ++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) ++ x_includes=$ac_optarg ;; ++ ++ -x-libraries | --x-libraries | --x-librarie | --x-librari \ ++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ++ ac_prev=x_libraries ;; ++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ ++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) ++ x_libraries=$ac_optarg ;; ++ ++ -*) { $as_echo "$as_me: error: unrecognized option: $ac_option ++Try \`$0 --help' for more information." >&2 ++ { (exit 1); exit 1; }; } ++ ;; ++ ++ *=*) ++ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && ++ { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 ++ { (exit 1); exit 1; }; } ++ eval $ac_envvar=\$ac_optarg ++ export $ac_envvar ;; ++ ++ *) ++ # FIXME: should be removed in autoconf 3.0. ++ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 ++ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && ++ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 ++ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ++ ;; ++ ++ esac ++done ++ ++if test -n "$ac_prev"; then ++ ac_option=--`echo $ac_prev | sed 's/_/-/g'` ++ { $as_echo "$as_me: error: missing argument to $ac_option" >&2 ++ { (exit 1); exit 1; }; } ++fi ++ ++if test -n "$ac_unrecognized_opts"; then ++ case $enable_option_checking in ++ no) ;; ++ fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 ++ { (exit 1); exit 1; }; } ;; ++ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; ++ esac ++fi ++ ++# Check all directory arguments for consistency. ++for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ ++ datadir sysconfdir sharedstatedir localstatedir includedir \ ++ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ ++ libdir localedir mandir ++do ++ eval ac_val=\$$ac_var ++ # Remove trailing slashes. ++ case $ac_val in ++ */ ) ++ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` ++ eval $ac_var=\$ac_val;; ++ esac ++ # Be sure to have absolute directory names. ++ case $ac_val in ++ [\\/$]* | ?:[\\/]* ) continue;; ++ NONE | '' ) case $ac_var in *prefix ) continue;; esac;; ++ esac ++ { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 ++ { (exit 1); exit 1; }; } ++done ++ ++# There might be people who depend on the old broken behavior: `$host' ++# used to hold the argument of --host etc. ++# FIXME: To remove some day. ++build=$build_alias ++host=$host_alias ++target=$target_alias ++ ++# FIXME: To remove some day. ++if test "x$host_alias" != x; then ++ if test "x$build_alias" = x; then ++ cross_compiling=maybe ++ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. ++ If a cross compiler is detected then cross compile mode will be used." >&2 ++ elif test "x$build_alias" != "x$host_alias"; then ++ cross_compiling=yes ++ fi ++fi ++ ++ac_tool_prefix= ++test -n "$host_alias" && ac_tool_prefix=$host_alias- ++ ++test "$silent" = yes && exec 6>/dev/null ++ ++ ++ac_pwd=`pwd` && test -n "$ac_pwd" && ++ac_ls_di=`ls -di .` && ++ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || ++ { $as_echo "$as_me: error: working directory cannot be determined" >&2 ++ { (exit 1); exit 1; }; } ++test "X$ac_ls_di" = "X$ac_pwd_ls_di" || ++ { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 ++ { (exit 1); exit 1; }; } ++ ++ ++# Find the source files, if location was not specified. ++if test -z "$srcdir"; then ++ ac_srcdir_defaulted=yes ++ # Try the directory containing this script, then the parent directory. ++ ac_confdir=`$as_dirname -- "$as_myself" || ++$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_myself" : 'X\(//\)[^/]' \| \ ++ X"$as_myself" : 'X\(//\)$' \| \ ++ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$as_myself" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ srcdir=$ac_confdir ++ if test ! -r "$srcdir/$ac_unique_file"; then ++ srcdir=.. ++ fi ++else ++ ac_srcdir_defaulted=no ++fi ++if test ! -r "$srcdir/$ac_unique_file"; then ++ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." ++ { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 ++ { (exit 1); exit 1; }; } ++fi ++ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ++ac_abs_confdir=`( ++ cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 ++ { (exit 1); exit 1; }; } ++ pwd)` ++# When building in place, set srcdir=. ++if test "$ac_abs_confdir" = "$ac_pwd"; then ++ srcdir=. ++fi ++# Remove unnecessary trailing slashes from srcdir. ++# Double slashes in file names in object file debugging info ++# mess up M-x gdb in Emacs. ++case $srcdir in ++*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; ++esac ++for ac_var in $ac_precious_vars; do ++ eval ac_env_${ac_var}_set=\${${ac_var}+set} ++ eval ac_env_${ac_var}_value=\$${ac_var} ++ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} ++ eval ac_cv_env_${ac_var}_value=\$${ac_var} ++done ++ ++# ++# Report the --help message. ++# ++if test "$ac_init_help" = "long"; then ++ # Omit some internal or obsolete options to make the list less imposing. ++ # This message is too long to be a string in the A/UX 3.1 sh. ++ cat <<_ACEOF ++\`configure' configures XZ Utils 4.999.9beta to adapt to many kinds of systems. ++ ++Usage: $0 [OPTION]... [VAR=VALUE]... ++ ++To assign environment variables (e.g., CC, CFLAGS...), specify them as ++VAR=VALUE. See below for descriptions of some of the useful variables. ++ ++Defaults for the options are specified in brackets. ++ ++Configuration: ++ -h, --help display this help and exit ++ --help=short display options specific to this package ++ --help=recursive display the short help of all the included packages ++ -V, --version display version information and exit ++ -q, --quiet, --silent do not print \`checking...' messages ++ --cache-file=FILE cache test results in FILE [disabled] ++ -C, --config-cache alias for \`--cache-file=config.cache' ++ -n, --no-create do not create output files ++ --srcdir=DIR find the sources in DIR [configure dir or \`..'] ++ ++Installation directories: ++ --prefix=PREFIX install architecture-independent files in PREFIX ++ [$ac_default_prefix] ++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ++ [PREFIX] ++ ++By default, \`make install' will install all the files in ++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify ++an installation prefix other than \`$ac_default_prefix' using \`--prefix', ++for instance \`--prefix=\$HOME'. ++ ++For better control, use the options below. ++ ++Fine tuning of the installation directories: ++ --bindir=DIR user executables [EPREFIX/bin] ++ --sbindir=DIR system admin executables [EPREFIX/sbin] ++ --libexecdir=DIR program executables [EPREFIX/libexec] ++ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] ++ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] ++ --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --libdir=DIR object code libraries [EPREFIX/lib] ++ --includedir=DIR C header files [PREFIX/include] ++ --oldincludedir=DIR C header files for non-gcc [/usr/include] ++ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] ++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR] ++ --infodir=DIR info documentation [DATAROOTDIR/info] ++ --localedir=DIR locale-dependent data [DATAROOTDIR/locale] ++ --mandir=DIR man documentation [DATAROOTDIR/man] ++ --docdir=DIR documentation root [DATAROOTDIR/doc/xz] ++ --htmldir=DIR html documentation [DOCDIR] ++ --dvidir=DIR dvi documentation [DOCDIR] ++ --pdfdir=DIR pdf documentation [DOCDIR] ++ --psdir=DIR ps documentation [DOCDIR] ++_ACEOF ++ ++ cat <<\_ACEOF ++ ++Program names: ++ --program-prefix=PREFIX prepend PREFIX to installed program names ++ --program-suffix=SUFFIX append SUFFIX to installed program names ++ --program-transform-name=PROGRAM run sed PROGRAM on installed program names ++ ++System types: ++ --build=BUILD configure for building on BUILD [guessed] ++ --host=HOST cross-compile to build programs to run on HOST [BUILD] ++_ACEOF ++fi ++ ++if test -n "$ac_init_help"; then ++ case $ac_init_help in ++ short | recursive ) echo "Configuration of XZ Utils 4.999.9beta:";; ++ esac ++ cat <<\_ACEOF ++ ++Optional Features: ++ --disable-option-checking ignore unrecognized --enable/--with options ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --enable-debug Enable debugging code. ++ --enable-encoders=LIST Comma-separated list of encoders to build. ++ Default=all. Available encoders: lzma1 lzma2 ++ subblock delta x86 powerpc ia64 arm armthumb sparc ++ --enable-decoders=LIST Comma-separated list of decoders to build. ++ Default=all. Available decoders are the same as ++ available encoders. ++ --enable-match-finders=LIST ++ Comma-separated list of match finders to build. ++ Default=all. At least one match finder is required ++ for encoding with the LZMA1 and LZMA2 filters. ++ Available match finders: hc3 hc4 bt2 bt3 bt4 ++ --enable-checks=LIST Comma-separated list of integrity checks to build. ++ Default=all. Available integrity checks: crc32 crc64 ++ sha256 ++ --disable-assembler Do not use assembler optimizations even if such ++ exist for the architecture. ++ --enable-unaligned-access ++ Enable if the system supports *fast* unaligned ++ memory access with 16-bit and 32-bit integers. By ++ default, this is enabled only on x86, x86_64, and ++ big endian PowerPC. ++ --enable-small Make liblzma smaller and a little slower. This is ++ disabled by default to optimize for speed. ++ --disable-threads Disable threading support. This makes some things ++ thread-unsafe. ++ --enable-dynamic=TYPE Set how command line tools are linked against ++ liblzma. TYPE can be mixed, yes, or no. The default ++ is mixed. ++ --disable-dependency-tracking speeds up one-time build ++ --enable-dependency-tracking do not reject slow dependency extractors ++ --enable-shared[=PKGS] build shared libraries [default=yes] ++ --enable-static[=PKGS] build static libraries [default=yes] ++ --enable-fast-install[=PKGS] ++ optimize for fast installation [default=yes] ++ --disable-libtool-lock avoid locking (might break parallel builds) ++ --disable-nls do not use Native Language Support ++ --disable-rpath do not hardcode runtime library paths ++ --disable-largefile omit support for large files ++ --enable-werror Enable -Werror to abort compilation on all compiler ++ warnings. ++ ++Optional Packages: ++ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] ++ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ++ --with-pic try to use only PIC/non-PIC objects [default=use ++ both] ++ --with-gnu-ld assume the C compiler uses GNU ld [default=no] ++ --with-gnu-ld assume the C compiler uses GNU ld default=no ++ --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib ++ --without-libiconv-prefix don't search for libiconv in includedir and libdir ++ --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib ++ --without-libintl-prefix don't search for libintl in includedir and libdir ++ ++Some influential environment variables: ++ CC C compiler command ++ CFLAGS C compiler flags ++ LDFLAGS linker flags, e.g. -L if you have libraries in a ++ nonstandard directory ++ LIBS libraries to pass to the linker, e.g. -l ++ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if ++ you have headers in a nonstandard directory ++ CCAS assembler compiler command (defaults to CC) ++ CCASFLAGS assembler compiler flags (defaults to CFLAGS) ++ CPP C preprocessor ++ ++Use these variables to override the choices made by `configure' or to help ++it to find libraries and programs with nonstandard names/locations. ++ ++Report bugs to . ++_ACEOF ++ac_status=$? ++fi ++ ++if test "$ac_init_help" = "recursive"; then ++ # If there are subdirs, report their specific --help. ++ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue ++ test -d "$ac_dir" || ++ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || ++ continue ++ ac_builddir=. ++ ++case "$ac_dir" in ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; ++*) ++ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` ++ # A ".." for each directory in $ac_dir_suffix. ++ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` ++ case $ac_top_builddir_sub in ++ "") ac_top_builddir_sub=. ac_top_build_prefix= ;; ++ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; ++ esac ;; ++esac ++ac_abs_top_builddir=$ac_pwd ++ac_abs_builddir=$ac_pwd$ac_dir_suffix ++# for backward compatibility: ++ac_top_builddir=$ac_top_build_prefix ++ ++case $srcdir in ++ .) # We are building in place. ++ ac_srcdir=. ++ ac_top_srcdir=$ac_top_builddir_sub ++ ac_abs_top_srcdir=$ac_pwd ;; ++ [\\/]* | ?:[\\/]* ) # Absolute name. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ++ ac_abs_top_srcdir=$srcdir ;; ++ *) # Relative name. ++ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_build_prefix$srcdir ++ ac_abs_top_srcdir=$ac_pwd/$srcdir ;; ++esac ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix ++ ++ cd "$ac_dir" || { ac_status=$?; continue; } ++ # Check for guested configure. ++ if test -f "$ac_srcdir/configure.gnu"; then ++ echo && ++ $SHELL "$ac_srcdir/configure.gnu" --help=recursive ++ elif test -f "$ac_srcdir/configure"; then ++ echo && ++ $SHELL "$ac_srcdir/configure" --help=recursive ++ else ++ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 ++ fi || ac_status=$? ++ cd "$ac_pwd" || { ac_status=$?; break; } ++ done ++fi ++ ++test -n "$ac_init_help" && exit $ac_status ++if $ac_init_version; then ++ cat <<\_ACEOF ++XZ Utils configure 4.999.9beta ++generated by GNU Autoconf 2.63 ++ ++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, ++2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ++This configure script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it. ++_ACEOF ++ exit ++fi ++cat >config.log <<_ACEOF ++This file contains any messages produced by compilers while ++running configure, to aid debugging if configure makes a mistake. ++ ++It was created by XZ Utils $as_me 4.999.9beta, which was ++generated by GNU Autoconf 2.63. Invocation command line was ++ ++ $ $0 $@ ++ ++_ACEOF ++exec 5>>config.log ++{ ++cat <<_ASUNAME ++## --------- ## ++## Platform. ## ++## --------- ## ++ ++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` ++ ++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` ++/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` ++/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` ++/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` ++ ++_ASUNAME ++ ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ $as_echo "PATH: $as_dir" ++done ++IFS=$as_save_IFS ++ ++} >&5 ++ ++cat >&5 <<_ACEOF ++ ++ ++## ----------- ## ++## Core tests. ## ++## ----------- ## ++ ++_ACEOF ++ ++ ++# Keep a trace of the command line. ++# Strip out --no-create and --no-recursion so they do not pile up. ++# Strip out --silent because we don't want to record it for future runs. ++# Also quote any args containing shell meta-characters. ++# Make two passes to allow for proper duplicate-argument suppression. ++ac_configure_args= ++ac_configure_args0= ++ac_configure_args1= ++ac_must_keep_next=false ++for ac_pass in 1 2 ++do ++ for ac_arg ++ do ++ case $ac_arg in ++ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ continue ;; ++ *\'*) ++ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ case $ac_pass in ++ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; ++ 2) ++ ac_configure_args1="$ac_configure_args1 '$ac_arg'" ++ if test $ac_must_keep_next = true; then ++ ac_must_keep_next=false # Got value, back to normal. ++ else ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac ++ fi ++ ac_configure_args="$ac_configure_args '$ac_arg'" ++ ;; ++ esac ++ done ++done ++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } ++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } ++ ++# When interrupted or exit'd, cleanup temporary files, and complete ++# config.log. We remove comments because anyway the quotes in there ++# would cause problems or look ugly. ++# WARNING: Use '\'' to represent an apostrophe within the trap. ++# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. ++trap 'exit_status=$? ++ # Save into config.log some information that might help in debugging. ++ { ++ echo ++ ++ cat <<\_ASBOX ++## ---------------- ## ++## Cache variables. ## ++## ---------------- ## ++_ASBOX ++ echo ++ # The following way of writing the cache mishandles newlines in values, ++( ++ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do ++ eval ac_val=\$$ac_var ++ case $ac_val in #( ++ *${as_nl}*) ++ case $ac_var in #( ++ *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 ++$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ++ esac ++ case $ac_var in #( ++ _ | IFS | as_nl) ;; #( ++ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( ++ *) $as_unset $ac_var ;; ++ esac ;; ++ esac ++ done ++ (set) 2>&1 | ++ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( ++ *${as_nl}ac_space=\ *) ++ sed -n \ ++ "s/'\''/'\''\\\\'\'''\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ++ ;; #( ++ *) ++ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ++ ;; ++ esac | ++ sort ++) ++ echo ++ ++ cat <<\_ASBOX ++## ----------------- ## ++## Output variables. ## ++## ----------------- ## ++_ASBOX ++ echo ++ for ac_var in $ac_subst_vars ++ do ++ eval ac_val=\$$ac_var ++ case $ac_val in ++ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; ++ esac ++ $as_echo "$ac_var='\''$ac_val'\''" ++ done | sort ++ echo ++ ++ if test -n "$ac_subst_files"; then ++ cat <<\_ASBOX ++## ------------------- ## ++## File substitutions. ## ++## ------------------- ## ++_ASBOX ++ echo ++ for ac_var in $ac_subst_files ++ do ++ eval ac_val=\$$ac_var ++ case $ac_val in ++ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; ++ esac ++ $as_echo "$ac_var='\''$ac_val'\''" ++ done | sort ++ echo ++ fi ++ ++ if test -s confdefs.h; then ++ cat <<\_ASBOX ++## ----------- ## ++## confdefs.h. ## ++## ----------- ## ++_ASBOX ++ echo ++ cat confdefs.h ++ echo ++ fi ++ test "$ac_signal" != 0 && ++ $as_echo "$as_me: caught signal $ac_signal" ++ $as_echo "$as_me: exit $exit_status" ++ } >&5 ++ rm -f core *.core core.conftest.* && ++ rm -f -r conftest* confdefs* conf$$* $ac_clean_files && ++ exit $exit_status ++' 0 ++for ac_signal in 1 2 13 15; do ++ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal ++done ++ac_signal=0 ++ ++# confdefs.h avoids OS command line length limits that DEFS can exceed. ++rm -f -r conftest* confdefs.h ++ ++# Predefined preprocessor variables. ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_NAME "$PACKAGE_NAME" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_TARNAME "$PACKAGE_TARNAME" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_VERSION "$PACKAGE_VERSION" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_STRING "$PACKAGE_STRING" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" ++_ACEOF ++ ++ ++# Let the site file select an alternate cache file if it wants to. ++# Prefer an explicitly selected file to automatically selected ones. ++ac_site_file1=NONE ++ac_site_file2=NONE ++if test -n "$CONFIG_SITE"; then ++ ac_site_file1=$CONFIG_SITE ++elif test "x$prefix" != xNONE; then ++ ac_site_file1=$prefix/share/config.site ++ ac_site_file2=$prefix/etc/config.site ++else ++ ac_site_file1=$ac_default_prefix/share/config.site ++ ac_site_file2=$ac_default_prefix/etc/config.site ++fi ++for ac_site_file in "$ac_site_file1" "$ac_site_file2" ++do ++ test "x$ac_site_file" = xNONE && continue ++ if test -r "$ac_site_file"; then ++ { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 ++$as_echo "$as_me: loading site script $ac_site_file" >&6;} ++ sed 's/^/| /' "$ac_site_file" >&5 ++ . "$ac_site_file" ++ fi ++done ++ ++if test -r "$cache_file"; then ++ # Some versions of bash will fail to source /dev/null (special ++ # files actually), so we avoid doing that. ++ if test -f "$cache_file"; then ++ { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 ++$as_echo "$as_me: loading cache $cache_file" >&6;} ++ case $cache_file in ++ [\\/]* | ?:[\\/]* ) . "$cache_file";; ++ *) . "./$cache_file";; ++ esac ++ fi ++else ++ { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 ++$as_echo "$as_me: creating cache $cache_file" >&6;} ++ >$cache_file ++fi ++ ++gt_needs="$gt_needs " ++# Check that the precious variables saved in the cache have kept the same ++# value. ++ac_cache_corrupted=false ++for ac_var in $ac_precious_vars; do ++ eval ac_old_set=\$ac_cv_env_${ac_var}_set ++ eval ac_new_set=\$ac_env_${ac_var}_set ++ eval ac_old_val=\$ac_cv_env_${ac_var}_value ++ eval ac_new_val=\$ac_env_${ac_var}_value ++ case $ac_old_set,$ac_new_set in ++ set,) ++ { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,set) ++ { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 ++$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,);; ++ *) ++ if test "x$ac_old_val" != "x$ac_new_val"; then ++ # differences in whitespace do not lead to failure. ++ ac_old_val_w=`echo x $ac_old_val` ++ ac_new_val_w=`echo x $ac_new_val` ++ if test "$ac_old_val_w" != "$ac_new_val_w"; then ++ { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 ++$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ++ ac_cache_corrupted=: ++ else ++ { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 ++$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} ++ eval $ac_var=\$ac_old_val ++ fi ++ { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 ++$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} ++ { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 ++$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} ++ fi;; ++ esac ++ # Pass precious variables to config.status. ++ if test "$ac_new_set" = set; then ++ case $ac_new_val in ++ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *) ac_arg=$ac_var=$ac_new_val ;; ++ esac ++ case " $ac_configure_args " in ++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. ++ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; ++ esac ++ fi ++done ++if $ac_cache_corrupted; then ++ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++ { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 ++$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} ++ { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 ++$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++ ++ac_aux_dir= ++for ac_dir in build-aux "$srcdir"/build-aux; do ++ if test -f "$ac_dir/install-sh"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install-sh -c" ++ break ++ elif test -f "$ac_dir/install.sh"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install.sh -c" ++ break ++ elif test -f "$ac_dir/shtool"; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/shtool install -c" ++ break ++ fi ++done ++if test -z "$ac_aux_dir"; then ++ { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5 ++$as_echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++# These three variables are undocumented and unsupported, ++# and are intended to be withdrawn in a future Autoconf release. ++# They can cause serious problems if a builder's source tree is in a directory ++# whose full name contains unusual characters. ++ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ++ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ++ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ++ ++ ++ ++ac_config_headers="$ac_config_headers config.h" ++ ++ ++PACKAGE_HOMEPAGE=http://tukaani.org/xz/ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_HOMEPAGE "$PACKAGE_HOMEPAGE" ++_ACEOF ++ ++ ++ ++echo ++echo "$PACKAGE_STRING" ++ ++echo ++echo "System type:" ++# This is needed to know if assembler optimizations can be used. ++# Make sure we can run config.sub. ++$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || ++ { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 ++$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} ++ { (exit 1); exit 1; }; } ++ ++{ $as_echo "$as_me:$LINENO: checking build system type" >&5 ++$as_echo_n "checking build system type... " >&6; } ++if test "${ac_cv_build+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_build_alias=$build_alias ++test "x$ac_build_alias" = x && ++ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` ++test "x$ac_build_alias" = x && ++ { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 ++$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} ++ { (exit 1); exit 1; }; } ++ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || ++ { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 ++$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} ++ { (exit 1); exit 1; }; } ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 ++$as_echo "$ac_cv_build" >&6; } ++case $ac_cv_build in ++*-*-*) ;; ++*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 ++$as_echo "$as_me: error: invalid value of canonical build" >&2;} ++ { (exit 1); exit 1; }; };; ++esac ++build=$ac_cv_build ++ac_save_IFS=$IFS; IFS='-' ++set x $ac_cv_build ++shift ++build_cpu=$1 ++build_vendor=$2 ++shift; shift ++# Remember, the first character of IFS is used to create $*, ++# except with old shells: ++build_os=$* ++IFS=$ac_save_IFS ++case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac ++ ++ ++{ $as_echo "$as_me:$LINENO: checking host system type" >&5 ++$as_echo_n "checking host system type... " >&6; } ++if test "${ac_cv_host+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test "x$host_alias" = x; then ++ ac_cv_host=$ac_cv_build ++else ++ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || ++ { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 ++$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 ++$as_echo "$ac_cv_host" >&6; } ++case $ac_cv_host in ++*-*-*) ;; ++*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 ++$as_echo "$as_me: error: invalid value of canonical host" >&2;} ++ { (exit 1); exit 1; }; };; ++esac ++host=$ac_cv_host ++ac_save_IFS=$IFS; IFS='-' ++set x $ac_cv_host ++shift ++host_cpu=$1 ++host_vendor=$2 ++shift; shift ++# Remember, the first character of IFS is used to create $*, ++# except with old shells: ++host_os=$* ++IFS=$ac_save_IFS ++case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac ++ ++ ++ ++# We do some special things on Windows (32-bit or 64-bit) builds. ++case $host_os in ++ mingw* | cygwin*) is_w32=yes ;; ++ *) is_w32=no ;; ++esac ++ if test "$is_w32" = yes; then ++ COND_W32_TRUE= ++ COND_W32_FALSE='#' ++else ++ COND_W32_TRUE='#' ++ COND_W32_FALSE= ++fi ++ ++ ++ ++echo ++echo "Configure options:" ++AM_CFLAGS= ++ ++ ++############# ++# Debugging # ++############# ++ ++{ $as_echo "$as_me:$LINENO: checking if debugging code should be compiled" >&5 ++$as_echo_n "checking if debugging code should be compiled... " >&6; } ++# Check whether --enable-debug was given. ++if test "${enable_debug+set}" = set; then ++ enableval=$enable_debug; ++else ++ enable_debug=no ++fi ++ ++if test "x$enable_debug" = xyes; then ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++ ++cat >>confdefs.h <<\_ACEOF ++#define NDEBUG 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++########### ++# Filters # ++########### ++ ++ ++ ++ ++enable_filter_lzma1=no ++enable_encoder_lzma1=no ++enable_decoder_lzma1=no ++enable_filter_lzma2=no ++enable_encoder_lzma2=no ++enable_decoder_lzma2=no ++enable_filter_subblock=no ++enable_encoder_subblock=no ++enable_decoder_subblock=no ++enable_filter_delta=no ++enable_encoder_delta=no ++enable_decoder_delta=no ++enable_filter_x86=no ++enable_encoder_x86=no ++enable_decoder_x86=no ++enable_filter_powerpc=no ++enable_encoder_powerpc=no ++enable_decoder_powerpc=no ++enable_filter_ia64=no ++enable_encoder_ia64=no ++enable_decoder_ia64=no ++enable_filter_arm=no ++enable_encoder_arm=no ++enable_decoder_arm=no ++enable_filter_armthumb=no ++enable_encoder_armthumb=no ++enable_decoder_armthumb=no ++enable_filter_sparc=no ++enable_encoder_sparc=no ++enable_decoder_sparc=no ++ ++{ $as_echo "$as_me:$LINENO: checking which encoders to build" >&5 ++$as_echo_n "checking which encoders to build... " >&6; } ++# Check whether --enable-encoders was given. ++if test "${enable_encoders+set}" = set; then ++ enableval=$enable_encoders; ++else ++ enable_encoders=lzma1,lzma2,subblock,delta,x86,powerpc,ia64,arm,armthumb,sparc ++fi ++ ++enable_encoders=`echo "$enable_encoders" | sed 's/,subblock//; s/,/ /g'` ++if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then ++ { $as_echo "$as_me:$LINENO: result: (none)" >&5 ++$as_echo "(none)" >&6; } ++else ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER 1 ++_ACEOF ++ ++ for arg in $enable_encoders ++ do ++ case $arg in ++ lzma1) ++ enable_filter_lzma1=yes ++ enable_encoder_lzma1=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_LZMA1 1 ++_ACEOF ++ ++ ;; ++ lzma2) ++ enable_filter_lzma2=yes ++ enable_encoder_lzma2=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_LZMA2 1 ++_ACEOF ++ ++ ;; ++ subblock) ++ enable_filter_subblock=yes ++ enable_encoder_subblock=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_SUBBLOCK 1 ++_ACEOF ++ ++ ;; ++ delta) ++ enable_filter_delta=yes ++ enable_encoder_delta=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_DELTA 1 ++_ACEOF ++ ++ ;; ++ x86) ++ enable_filter_x86=yes ++ enable_encoder_x86=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_X86 1 ++_ACEOF ++ ++ ;; ++ powerpc) ++ enable_filter_powerpc=yes ++ enable_encoder_powerpc=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_POWERPC 1 ++_ACEOF ++ ++ ;; ++ ia64) ++ enable_filter_ia64=yes ++ enable_encoder_ia64=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_IA64 1 ++_ACEOF ++ ++ ;; ++ arm) ++ enable_filter_arm=yes ++ enable_encoder_arm=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_ARM 1 ++_ACEOF ++ ++ ;; ++ armthumb) ++ enable_filter_armthumb=yes ++ enable_encoder_armthumb=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_ARMTHUMB 1 ++_ACEOF ++ ++ ;; ++ sparc) ++ enable_filter_sparc=yes ++ enable_encoder_sparc=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ENCODER_SPARC 1 ++_ACEOF ++ ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: unknown filter: $arg" >&5 ++$as_echo "$as_me: error: unknown filter: $arg" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++ esac ++ done ++ { $as_echo "$as_me:$LINENO: result: $enable_encoders" >&5 ++$as_echo "$enable_encoders" >&6; } ++fi ++ ++{ $as_echo "$as_me:$LINENO: checking which decoders to build" >&5 ++$as_echo_n "checking which decoders to build... " >&6; } ++# Check whether --enable-decoders was given. ++if test "${enable_decoders+set}" = set; then ++ enableval=$enable_decoders; ++else ++ enable_decoders=lzma1,lzma2,subblock,delta,x86,powerpc,ia64,arm,armthumb,sparc ++fi ++ ++enable_decoders=`echo "$enable_decoders" | sed 's/,subblock//; s/,/ /g'` ++if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then ++ { $as_echo "$as_me:$LINENO: result: (none)" >&5 ++$as_echo "(none)" >&6; } ++else ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER 1 ++_ACEOF ++ ++ for arg in $enable_decoders ++ do ++ case $arg in ++ lzma1) ++ enable_filter_lzma1=yes ++ enable_decoder_lzma1=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_LZMA1 1 ++_ACEOF ++ ++ ;; ++ lzma2) ++ enable_filter_lzma2=yes ++ enable_decoder_lzma2=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_LZMA2 1 ++_ACEOF ++ ++ ;; ++ subblock) ++ enable_filter_subblock=yes ++ enable_decoder_subblock=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_SUBBLOCK 1 ++_ACEOF ++ ++ ;; ++ delta) ++ enable_filter_delta=yes ++ enable_decoder_delta=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_DELTA 1 ++_ACEOF ++ ++ ;; ++ x86) ++ enable_filter_x86=yes ++ enable_decoder_x86=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_X86 1 ++_ACEOF ++ ++ ;; ++ powerpc) ++ enable_filter_powerpc=yes ++ enable_decoder_powerpc=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_POWERPC 1 ++_ACEOF ++ ++ ;; ++ ia64) ++ enable_filter_ia64=yes ++ enable_decoder_ia64=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_IA64 1 ++_ACEOF ++ ++ ;; ++ arm) ++ enable_filter_arm=yes ++ enable_decoder_arm=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_ARM 1 ++_ACEOF ++ ++ ;; ++ armthumb) ++ enable_filter_armthumb=yes ++ enable_decoder_armthumb=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_ARMTHUMB 1 ++_ACEOF ++ ++ ;; ++ sparc) ++ enable_filter_sparc=yes ++ enable_decoder_sparc=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DECODER_SPARC 1 ++_ACEOF ++ ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: unknown filter: $arg" >&5 ++$as_echo "$as_me: error: unknown filter: $arg" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++ esac ++ done ++ ++ # LZMA2 requires that LZMA1 is enabled. ++ test "x$enable_encoder_lzma2" = xyes && enable_encoder_lzma1=yes ++ test "x$enable_decoder_lzma2" = xyes && enable_decoder_lzma1=yes ++ ++ { $as_echo "$as_me:$LINENO: result: $enable_decoders" >&5 ++$as_echo "$enable_decoders" >&6; } ++fi ++ ++if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \ ++ || test "x$enable_decoder_lzma2$enable_decoder_lzma1" = xyesno; then ++ { { $as_echo "$as_me:$LINENO: error: LZMA2 requires that LZMA1 is also enabled." >&5 ++$as_echo "$as_me: error: LZMA2 requires that LZMA1 is also enabled." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ if test "x$enable_encoders" != xno && test "x$enable_encoders" != x; then ++ COND_MAIN_ENCODER_TRUE= ++ COND_MAIN_ENCODER_FALSE='#' ++else ++ COND_MAIN_ENCODER_TRUE='#' ++ COND_MAIN_ENCODER_FALSE= ++fi ++ ++ if test "x$enable_decoders" != xno && test "x$enable_decoders" != x; then ++ COND_MAIN_DECODER_TRUE= ++ COND_MAIN_DECODER_FALSE='#' ++else ++ COND_MAIN_DECODER_TRUE='#' ++ COND_MAIN_DECODER_FALSE= ++fi ++ ++ ++ if test "x$enable_filter_lzma1" = xyes; then ++ COND_FILTER_LZMA1_TRUE= ++ COND_FILTER_LZMA1_FALSE='#' ++else ++ COND_FILTER_LZMA1_TRUE='#' ++ COND_FILTER_LZMA1_FALSE= ++fi ++ ++ if test "x$enable_encoder_lzma1" = xyes; then ++ COND_ENCODER_LZMA1_TRUE= ++ COND_ENCODER_LZMA1_FALSE='#' ++else ++ COND_ENCODER_LZMA1_TRUE='#' ++ COND_ENCODER_LZMA1_FALSE= ++fi ++ ++ if test "x$enable_decoder_lzma1" = xyes; then ++ COND_DECODER_LZMA1_TRUE= ++ COND_DECODER_LZMA1_FALSE='#' ++else ++ COND_DECODER_LZMA1_TRUE='#' ++ COND_DECODER_LZMA1_FALSE= ++fi ++ ++ if test "x$enable_filter_lzma2" = xyes; then ++ COND_FILTER_LZMA2_TRUE= ++ COND_FILTER_LZMA2_FALSE='#' ++else ++ COND_FILTER_LZMA2_TRUE='#' ++ COND_FILTER_LZMA2_FALSE= ++fi ++ ++ if test "x$enable_encoder_lzma2" = xyes; then ++ COND_ENCODER_LZMA2_TRUE= ++ COND_ENCODER_LZMA2_FALSE='#' ++else ++ COND_ENCODER_LZMA2_TRUE='#' ++ COND_ENCODER_LZMA2_FALSE= ++fi ++ ++ if test "x$enable_decoder_lzma2" = xyes; then ++ COND_DECODER_LZMA2_TRUE= ++ COND_DECODER_LZMA2_FALSE='#' ++else ++ COND_DECODER_LZMA2_TRUE='#' ++ COND_DECODER_LZMA2_FALSE= ++fi ++ ++ if test "x$enable_filter_subblock" = xyes; then ++ COND_FILTER_SUBBLOCK_TRUE= ++ COND_FILTER_SUBBLOCK_FALSE='#' ++else ++ COND_FILTER_SUBBLOCK_TRUE='#' ++ COND_FILTER_SUBBLOCK_FALSE= ++fi ++ ++ if test "x$enable_encoder_subblock" = xyes; then ++ COND_ENCODER_SUBBLOCK_TRUE= ++ COND_ENCODER_SUBBLOCK_FALSE='#' ++else ++ COND_ENCODER_SUBBLOCK_TRUE='#' ++ COND_ENCODER_SUBBLOCK_FALSE= ++fi ++ ++ if test "x$enable_decoder_subblock" = xyes; then ++ COND_DECODER_SUBBLOCK_TRUE= ++ COND_DECODER_SUBBLOCK_FALSE='#' ++else ++ COND_DECODER_SUBBLOCK_TRUE='#' ++ COND_DECODER_SUBBLOCK_FALSE= ++fi ++ ++ if test "x$enable_filter_delta" = xyes; then ++ COND_FILTER_DELTA_TRUE= ++ COND_FILTER_DELTA_FALSE='#' ++else ++ COND_FILTER_DELTA_TRUE='#' ++ COND_FILTER_DELTA_FALSE= ++fi ++ ++ if test "x$enable_encoder_delta" = xyes; then ++ COND_ENCODER_DELTA_TRUE= ++ COND_ENCODER_DELTA_FALSE='#' ++else ++ COND_ENCODER_DELTA_TRUE='#' ++ COND_ENCODER_DELTA_FALSE= ++fi ++ ++ if test "x$enable_decoder_delta" = xyes; then ++ COND_DECODER_DELTA_TRUE= ++ COND_DECODER_DELTA_FALSE='#' ++else ++ COND_DECODER_DELTA_TRUE='#' ++ COND_DECODER_DELTA_FALSE= ++fi ++ ++ if test "x$enable_filter_x86" = xyes; then ++ COND_FILTER_X86_TRUE= ++ COND_FILTER_X86_FALSE='#' ++else ++ COND_FILTER_X86_TRUE='#' ++ COND_FILTER_X86_FALSE= ++fi ++ ++ if test "x$enable_encoder_x86" = xyes; then ++ COND_ENCODER_X86_TRUE= ++ COND_ENCODER_X86_FALSE='#' ++else ++ COND_ENCODER_X86_TRUE='#' ++ COND_ENCODER_X86_FALSE= ++fi ++ ++ if test "x$enable_decoder_x86" = xyes; then ++ COND_DECODER_X86_TRUE= ++ COND_DECODER_X86_FALSE='#' ++else ++ COND_DECODER_X86_TRUE='#' ++ COND_DECODER_X86_FALSE= ++fi ++ ++ if test "x$enable_filter_powerpc" = xyes; then ++ COND_FILTER_POWERPC_TRUE= ++ COND_FILTER_POWERPC_FALSE='#' ++else ++ COND_FILTER_POWERPC_TRUE='#' ++ COND_FILTER_POWERPC_FALSE= ++fi ++ ++ if test "x$enable_encoder_powerpc" = xyes; then ++ COND_ENCODER_POWERPC_TRUE= ++ COND_ENCODER_POWERPC_FALSE='#' ++else ++ COND_ENCODER_POWERPC_TRUE='#' ++ COND_ENCODER_POWERPC_FALSE= ++fi ++ ++ if test "x$enable_decoder_powerpc" = xyes; then ++ COND_DECODER_POWERPC_TRUE= ++ COND_DECODER_POWERPC_FALSE='#' ++else ++ COND_DECODER_POWERPC_TRUE='#' ++ COND_DECODER_POWERPC_FALSE= ++fi ++ ++ if test "x$enable_filter_ia64" = xyes; then ++ COND_FILTER_IA64_TRUE= ++ COND_FILTER_IA64_FALSE='#' ++else ++ COND_FILTER_IA64_TRUE='#' ++ COND_FILTER_IA64_FALSE= ++fi ++ ++ if test "x$enable_encoder_ia64" = xyes; then ++ COND_ENCODER_IA64_TRUE= ++ COND_ENCODER_IA64_FALSE='#' ++else ++ COND_ENCODER_IA64_TRUE='#' ++ COND_ENCODER_IA64_FALSE= ++fi ++ ++ if test "x$enable_decoder_ia64" = xyes; then ++ COND_DECODER_IA64_TRUE= ++ COND_DECODER_IA64_FALSE='#' ++else ++ COND_DECODER_IA64_TRUE='#' ++ COND_DECODER_IA64_FALSE= ++fi ++ ++ if test "x$enable_filter_arm" = xyes; then ++ COND_FILTER_ARM_TRUE= ++ COND_FILTER_ARM_FALSE='#' ++else ++ COND_FILTER_ARM_TRUE='#' ++ COND_FILTER_ARM_FALSE= ++fi ++ ++ if test "x$enable_encoder_arm" = xyes; then ++ COND_ENCODER_ARM_TRUE= ++ COND_ENCODER_ARM_FALSE='#' ++else ++ COND_ENCODER_ARM_TRUE='#' ++ COND_ENCODER_ARM_FALSE= ++fi ++ ++ if test "x$enable_decoder_arm" = xyes; then ++ COND_DECODER_ARM_TRUE= ++ COND_DECODER_ARM_FALSE='#' ++else ++ COND_DECODER_ARM_TRUE='#' ++ COND_DECODER_ARM_FALSE= ++fi ++ ++ if test "x$enable_filter_armthumb" = xyes; then ++ COND_FILTER_ARMTHUMB_TRUE= ++ COND_FILTER_ARMTHUMB_FALSE='#' ++else ++ COND_FILTER_ARMTHUMB_TRUE='#' ++ COND_FILTER_ARMTHUMB_FALSE= ++fi ++ ++ if test "x$enable_encoder_armthumb" = xyes; then ++ COND_ENCODER_ARMTHUMB_TRUE= ++ COND_ENCODER_ARMTHUMB_FALSE='#' ++else ++ COND_ENCODER_ARMTHUMB_TRUE='#' ++ COND_ENCODER_ARMTHUMB_FALSE= ++fi ++ ++ if test "x$enable_decoder_armthumb" = xyes; then ++ COND_DECODER_ARMTHUMB_TRUE= ++ COND_DECODER_ARMTHUMB_FALSE='#' ++else ++ COND_DECODER_ARMTHUMB_TRUE='#' ++ COND_DECODER_ARMTHUMB_FALSE= ++fi ++ ++ if test "x$enable_filter_sparc" = xyes; then ++ COND_FILTER_SPARC_TRUE= ++ COND_FILTER_SPARC_FALSE='#' ++else ++ COND_FILTER_SPARC_TRUE='#' ++ COND_FILTER_SPARC_FALSE= ++fi ++ ++ if test "x$enable_encoder_sparc" = xyes; then ++ COND_ENCODER_SPARC_TRUE= ++ COND_ENCODER_SPARC_FALSE='#' ++else ++ COND_ENCODER_SPARC_TRUE='#' ++ COND_ENCODER_SPARC_FALSE= ++fi ++ ++ if test "x$enable_decoder_sparc" = xyes; then ++ COND_DECODER_SPARC_TRUE= ++ COND_DECODER_SPARC_FALSE='#' ++else ++ COND_DECODER_SPARC_TRUE='#' ++ COND_DECODER_SPARC_FALSE= ++fi ++ ++ ++# The so called "simple filters" share common code. ++enable_filter_simple=no ++enable_encoder_simple=no ++enable_decoder_simple=no ++test "x$enable_filter_x86" = xyes && enable_filter_simple=yes ++test "x$enable_encoder_x86" = xyes && enable_encoder_simple=yes ++test "x$enable_decoder_x86" = xyes && enable_decoder_simple=yes ++test "x$enable_filter_powerpc" = xyes && enable_filter_simple=yes ++test "x$enable_encoder_powerpc" = xyes && enable_encoder_simple=yes ++test "x$enable_decoder_powerpc" = xyes && enable_decoder_simple=yes ++test "x$enable_filter_ia64" = xyes && enable_filter_simple=yes ++test "x$enable_encoder_ia64" = xyes && enable_encoder_simple=yes ++test "x$enable_decoder_ia64" = xyes && enable_decoder_simple=yes ++test "x$enable_filter_arm" = xyes && enable_filter_simple=yes ++test "x$enable_encoder_arm" = xyes && enable_encoder_simple=yes ++test "x$enable_decoder_arm" = xyes && enable_decoder_simple=yes ++test "x$enable_filter_armthumb" = xyes && enable_filter_simple=yes ++test "x$enable_encoder_armthumb" = xyes && enable_encoder_simple=yes ++test "x$enable_decoder_armthumb" = xyes && enable_decoder_simple=yes ++test "x$enable_filter_sparc" = xyes && enable_filter_simple=yes ++test "x$enable_encoder_sparc" = xyes && enable_encoder_simple=yes ++test "x$enable_decoder_sparc" = xyes && enable_decoder_simple=yes ++ if test "x$enable_filter_simple" = xyes; then ++ COND_FILTER_SIMPLE_TRUE= ++ COND_FILTER_SIMPLE_FALSE='#' ++else ++ COND_FILTER_SIMPLE_TRUE='#' ++ COND_FILTER_SIMPLE_FALSE= ++fi ++ ++ if test "x$enable_encoder_simple" = xyes; then ++ COND_ENCODER_SIMPLE_TRUE= ++ COND_ENCODER_SIMPLE_FALSE='#' ++else ++ COND_ENCODER_SIMPLE_TRUE='#' ++ COND_ENCODER_SIMPLE_FALSE= ++fi ++ ++ if test "x$enable_decoder_simple" = xyes; then ++ COND_DECODER_SIMPLE_TRUE= ++ COND_DECODER_SIMPLE_FALSE='#' ++else ++ COND_DECODER_SIMPLE_TRUE='#' ++ COND_DECODER_SIMPLE_FALSE= ++fi ++ ++ ++# LZ-based filters share common code. ++enable_filter_lz=no ++enable_encoder_lz=no ++enable_decoder_lz=no ++test "x$enable_filter_lzma1" = xyes && enable_filter_lz=yes ++test "x$enable_encoder_lzma1" = xyes && enable_encoder_lz=yes ++test "x$enable_decoder_lzma1" = xyes && enable_decoder_lz=yes ++test "x$enable_filter_lzma2" = xyes && enable_filter_lz=yes ++test "x$enable_encoder_lzma2" = xyes && enable_encoder_lz=yes ++test "x$enable_decoder_lzma2" = xyes && enable_decoder_lz=yes ++ if test "x$enable_filter_lz" = xyes; then ++ COND_FILTER_LZ_TRUE= ++ COND_FILTER_LZ_FALSE='#' ++else ++ COND_FILTER_LZ_TRUE='#' ++ COND_FILTER_LZ_FALSE= ++fi ++ ++ if test "x$enable_encoder_lz" = xyes; then ++ COND_ENCODER_LZ_TRUE= ++ COND_ENCODER_LZ_FALSE='#' ++else ++ COND_ENCODER_LZ_TRUE='#' ++ COND_ENCODER_LZ_FALSE= ++fi ++ ++ if test "x$enable_decoder_lz" = xyes; then ++ COND_DECODER_LZ_TRUE= ++ COND_DECODER_LZ_FALSE='#' ++else ++ COND_DECODER_LZ_TRUE='#' ++ COND_DECODER_LZ_FALSE= ++fi ++ ++ ++ ++################# ++# Match finders # ++################# ++ ++ ++ ++enable_match_finder_hc3=no ++enable_match_finder_hc4=no ++enable_match_finder_bt2=no ++enable_match_finder_bt3=no ++enable_match_finder_bt4=no ++ ++ ++{ $as_echo "$as_me:$LINENO: checking which match finders to build" >&5 ++$as_echo_n "checking which match finders to build... " >&6; } ++# Check whether --enable-match-finders was given. ++if test "${enable_match_finders+set}" = set; then ++ enableval=$enable_match_finders; ++else ++ enable_match_finders=hc3,hc4,bt2,bt3,bt4 ++fi ++ ++enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'` ++if test "x$enable_encoder_lz" = xyes ; then ++ for arg in $enable_match_finders ++ do ++ case $arg in ++ hc3) ++ enable_match_finder_hc3=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_MF_HC3 1 ++_ACEOF ++ ++ ;; ++ hc4) ++ enable_match_finder_hc4=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_MF_HC4 1 ++_ACEOF ++ ++ ;; ++ bt2) ++ enable_match_finder_bt2=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_MF_BT2 1 ++_ACEOF ++ ++ ;; ++ bt3) ++ enable_match_finder_bt3=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_MF_BT3 1 ++_ACEOF ++ ++ ;; ++ bt4) ++ enable_match_finder_bt4=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_MF_BT4 1 ++_ACEOF ++ ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: unknown match finder: $arg" >&5 ++$as_echo "$as_me: error: unknown match finder: $arg" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++ esac ++ done ++ { $as_echo "$as_me:$LINENO: result: $enable_match_finders" >&5 ++$as_echo "$enable_match_finders" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: (none because not building any LZ-based encoder)" >&5 ++$as_echo "(none because not building any LZ-based encoder)" >&6; } ++fi ++ ++ ++#################### ++# Integrity checks # ++#################### ++ ++ ++ ++enable_check_lzma1=no ++enable_check_lzma2=no ++enable_check_subblock=no ++enable_check_delta=no ++enable_check_x86=no ++enable_check_powerpc=no ++enable_check_ia64=no ++enable_check_arm=no ++enable_check_armthumb=no ++enable_check_sparc=no ++ ++{ $as_echo "$as_me:$LINENO: checking which integrity checks to build" >&5 ++$as_echo_n "checking which integrity checks to build... " >&6; } ++# Check whether --enable-checks was given. ++if test "${enable_checks+set}" = set; then ++ enableval=$enable_checks; ++else ++ enable_checks=crc32,crc64,sha256 ++fi ++ ++enable_checks=`echo "$enable_checks" | sed 's/,/ /g'` ++if test "x$enable_checks" = xno || test "x$enable_checks" = x; then ++ { $as_echo "$as_me:$LINENO: result: (none)" >&5 ++$as_echo "(none)" >&6; } ++else ++ for arg in $enable_checks ++ do ++ case $arg in ++ crc32) ++ enable_check_crc32=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CHECK_CRC32 1 ++_ACEOF ++ ++ ;; ++ crc64) ++ enable_check_crc64=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CHECK_CRC64 1 ++_ACEOF ++ ++ ;; ++ sha256) ++ enable_check_sha256=yes ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CHECK_SHA256 1 ++_ACEOF ++ ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: unknown integrity check: $arg" >&5 ++$as_echo "$as_me: error: unknown integrity check: $arg" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++ esac ++ done ++ { $as_echo "$as_me:$LINENO: result: $enable_checks" >&5 ++$as_echo "$enable_checks" >&6; } ++fi ++if test "x$enable_checks_crc32" = xno ; then ++ { { $as_echo "$as_me:$LINENO: error: For now, the CRC32 check must always be enabled." >&5 ++$as_echo "$as_me: error: For now, the CRC32 check must always be enabled." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ if test "x$enable_check_crc32" = xyes; then ++ COND_CHECK_CRC32_TRUE= ++ COND_CHECK_CRC32_FALSE='#' ++else ++ COND_CHECK_CRC32_TRUE='#' ++ COND_CHECK_CRC32_FALSE= ++fi ++ ++ if test "x$enable_check_crc64" = xyes; then ++ COND_CHECK_CRC64_TRUE= ++ COND_CHECK_CRC64_FALSE='#' ++else ++ COND_CHECK_CRC64_TRUE='#' ++ COND_CHECK_CRC64_FALSE= ++fi ++ ++ if test "x$enable_check_sha256" = xyes; then ++ COND_CHECK_SHA256_TRUE= ++ COND_CHECK_SHA256_FALSE='#' ++else ++ COND_CHECK_SHA256_TRUE='#' ++ COND_CHECK_SHA256_FALSE= ++fi ++ ++ ++ ++########################### ++# Assembler optimizations # ++########################### ++ ++{ $as_echo "$as_me:$LINENO: checking if assembler optimizations should be used" >&5 ++$as_echo_n "checking if assembler optimizations should be used... " >&6; } ++# Check whether --enable-assembler was given. ++if test "${enable_assembler+set}" = set; then ++ enableval=$enable_assembler; ++else ++ enable_assembler=yes ++fi ++ ++if test "x$enable_assembler" = xyes; then ++ case $host_cpu in ++ i?86) enable_assembler=x86 ;; ++ x86_64) enable_assembler=x86_64 ;; ++ *) enable_assembler=no ;; ++ esac ++fi ++case $enable_assembler in ++ x86) ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ASM_X86 1 ++_ACEOF ++ ++ ;; ++ x86_64) ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ASM_X86_64 1 ++_ACEOF ++ ++ ;; ++ no) ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: --enable-assembler accepts only \`yes', \`no', \`x86', or \`x86_64'." >&5 ++$as_echo "$as_me: error: --enable-assembler accepts only \`yes', \`no', \`x86', or \`x86_64'." >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: result: $enable_assembler" >&5 ++$as_echo "$enable_assembler" >&6; } ++ if test "x$enable_assembler" = xx86; then ++ COND_ASM_X86_TRUE= ++ COND_ASM_X86_FALSE='#' ++else ++ COND_ASM_X86_TRUE='#' ++ COND_ASM_X86_FALSE= ++fi ++ ++ if test "x$enable_assembler" = xx86_64; then ++ COND_ASM_X86_64_TRUE= ++ COND_ASM_X86_64_FALSE='#' ++else ++ COND_ASM_X86_64_TRUE='#' ++ COND_ASM_X86_64_FALSE= ++fi ++ ++ ++ ++################################ ++# Fast unaligned memory access # ++################################ ++ ++{ $as_echo "$as_me:$LINENO: checking if unaligned memory access should be used" >&5 ++$as_echo_n "checking if unaligned memory access should be used... " >&6; } ++# Check whether --enable-unaligned-access was given. ++if test "${enable_unaligned_access+set}" = set; then ++ enableval=$enable_unaligned_access; ++else ++ enable_unaligned_access=auto ++fi ++ ++if test "x$enable_unaligned_access" = xauto ; then ++ case $host_cpu in ++ i?86|x86_64|powerpc|powerpc64) ++ enable_unaligned_access=yes ++ ;; ++ *) ++ enable_unaligned_access=no ++ ;; ++ esac ++fi ++if test "x$enable_unaligned_access" = xyes ; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_FAST_UNALIGNED_ACCESS 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++##################### ++# Size optimization # ++##################### ++ ++{ $as_echo "$as_me:$LINENO: checking if small size is preferred over speed" >&5 ++$as_echo_n "checking if small size is preferred over speed... " >&6; } ++# Check whether --enable-small was given. ++if test "${enable_small+set}" = set; then ++ enableval=$enable_small; ++else ++ enable_small=no ++fi ++ ++if test "x$enable_small" = xyes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_SMALL 1 ++_ACEOF ++ ++elif test "x$enable_small" != xno; then ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: --enable-small accepts only \`yes' or \`no'" >&5 ++$as_echo "$as_me: error: --enable-small accepts only \`yes' or \`no'" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++{ $as_echo "$as_me:$LINENO: result: $enable_small" >&5 ++$as_echo "$enable_small" >&6; } ++ if test "x$enable_small" = xyes; then ++ COND_SMALL_TRUE= ++ COND_SMALL_FALSE='#' ++else ++ COND_SMALL_TRUE='#' ++ COND_SMALL_FALSE= ++fi ++ ++ ++ ++############# ++# Threading # ++############# ++ ++{ $as_echo "$as_me:$LINENO: checking if threading support is wanted" >&5 ++$as_echo_n "checking if threading support is wanted... " >&6; } ++# Check whether --enable-threads was given. ++if test "${enable_threads+set}" = set; then ++ enableval=$enable_threads; ++else ++ enable_threads=yes ++fi ++ ++if test "x$enable_threads" != xyes && test "x$enable_threads" != xno; then ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: --enable-threads accepts only \`yes' or \`no'" >&5 ++$as_echo "$as_me: error: --enable-threads accepts only \`yes' or \`no'" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++{ $as_echo "$as_me:$LINENO: result: $enable_threads" >&5 ++$as_echo "$enable_threads" >&6; } ++# We use the actual result a little later. ++ ++ ++############################################ ++# xz/xzdec/lzmadec linkage against liblzma # ++############################################ ++ ++# Link the xz, xzdec, and lzmadec command line tools against static liblzma ++# unless using --enable-dynamic. Using static liblzma gives a little bit ++# faster executable on x86, because no register is wasted for PIC. We also ++# have one dependency less, which allows users to more freely copy the xz ++# binary to other boxes. However, I wouldn't be surprised if distro ++# maintainers still prefer dynamic linking, so let's make it easy for them. ++ ++{ $as_echo "$as_me:$LINENO: checking how programs should be linked against liblzma" >&5 ++$as_echo_n "checking how programs should be linked against liblzma... " >&6; } ++# Check whether --enable-dynamic was given. ++if test "${enable_dynamic+set}" = set; then ++ enableval=$enable_dynamic; ++else ++ enable_dynamic=mixed ++fi ++ ++case $enable_dynamic in ++ mixed) ++ { $as_echo "$as_me:$LINENO: result: mixed (some dynamically, some statically)" >&5 ++$as_echo "mixed (some dynamically, some statically)" >&6; } ++ ;; ++ yes) ++ { $as_echo "$as_me:$LINENO: result: dynamically" >&5 ++$as_echo "dynamically" >&6; } ++ ;; ++ no) ++ { $as_echo "$as_me:$LINENO: result: statically" >&5 ++$as_echo "statically" >&6; } ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: " >&5 ++$as_echo "" >&6; } ++ { { $as_echo "$as_me:$LINENO: error: --enable-dynamic accepts only \`mixed', \`yes', or \`no'" >&5 ++$as_echo "$as_me: error: --enable-dynamic accepts only \`mixed', \`yes', or \`no'" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++esac ++# We use the actual results later, because we don't know yet ++# if --disable-shared or --disable-static was used. ++ ++ ++############################################################################### ++# Checks for programs. ++############################################################################### ++ ++echo ++ ++ { $as_echo "$as_me:$LINENO: checking for a shell that conforms to POSIX" >&5 ++$as_echo_n "checking for a shell that conforms to POSIX... " >&6; } ++if test "${gl_cv_posix_shell+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ gl_test_posix_shell_script=' ++ func_return () { ++ (exit $1) ++ } ++ func_success () { ++ func_return 0 ++ } ++ func_failure () { ++ func_return 1 ++ } ++ func_ret_success () { ++ return 0 ++ } ++ func_ret_failure () { ++ return 1 ++ } ++ subshell_umask_sanity () { ++ (umask 22; (umask 0); test $(umask) -eq 22) ++ } ++ test "$(echo foo)" = foo && ++ func_success && ++ ! func_failure && ++ func_ret_success && ++ ! func_ret_failure && ++ (set x && func_ret_success y && test x = "$1") && ++ subshell_umask_sanity ++ ' ++ for gl_cv_posix_shell in \ ++ "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do ++ case $gl_cv_posix_shell in ++ /*) ++ "$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \ ++ && break;; ++ esac ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $gl_cv_posix_shell" >&5 ++$as_echo "$gl_cv_posix_shell" >&6; } ++ ++ if test "$gl_cv_posix_shell" != no; then ++ POSIX_SHELL=$gl_cv_posix_shell ++ PREFERABLY_POSIX_SHELL=$POSIX_SHELL ++ else ++ POSIX_SHELL= ++ PREFERABLY_POSIX_SHELL=/bin/sh ++ fi ++ ++ ++ ++if test -z "$POSIX_SHELL" ; then ++ { { $as_echo "$as_me:$LINENO: error: No POSIX conforming shell (sh) was found." >&5 ++$as_echo "$as_me: error: No POSIX conforming shell (sh) was found." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++echo ++echo "Initializing Automake:" ++ ++am__api_version='1.11' ++ ++# Find a good install program. We prefer a C program (faster), ++# so one script is as good as another. But avoid the broken or ++# incompatible versions: ++# SysV /etc/install, /usr/sbin/install ++# SunOS /usr/etc/install ++# IRIX /sbin/install ++# AIX /bin/install ++# AmigaOS /C/install, which installs bootblocks on floppy discs ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic ++# ./install, which can be erroneously created by make from ./install.sh. ++# Reject install programs that cannot install multiple files. ++{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 ++$as_echo_n "checking for a BSD-compatible install... " >&6; } ++if test -z "$INSTALL"; then ++if test "${ac_cv_path_install+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ # Account for people who put trailing slashes in PATH elements. ++case $as_dir/ in ++ ./ | .// | /cC/* | \ ++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ ++ /usr/ucb/* ) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ rm -rf conftest.one conftest.two conftest.dir ++ echo one > conftest.one ++ echo two > conftest.two ++ mkdir conftest.dir ++ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && ++ test -s conftest.one && test -s conftest.two && ++ test -s conftest.dir/conftest.one && ++ test -s conftest.dir/conftest.two ++ then ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi ++ fi ++ done ++ done ++ ;; ++esac ++ ++done ++IFS=$as_save_IFS ++ ++rm -rf conftest.one conftest.two conftest.dir ++ ++fi ++ if test "${ac_cv_path_install+set}" = set; then ++ INSTALL=$ac_cv_path_install ++ else ++ # As a last resort, use the slow shell script. Don't cache a ++ # value for INSTALL within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the value is a relative name. ++ INSTALL=$ac_install_sh ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 ++$as_echo "$INSTALL" >&6; } ++ ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}. ++# It thinks the first close brace ends the variable substitution. ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' ++ ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' ++ ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ++ ++{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 ++$as_echo_n "checking whether build environment is sane... " >&6; } ++# Just in case ++sleep 1 ++echo timestamp > conftest.file ++# Reject unsafe characters in $srcdir or the absolute working directory ++# name. Accept space and tab only in the latter. ++am_lf=' ++' ++case `pwd` in ++ *[\\\"\#\$\&\'\`$am_lf]*) ++ { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 ++$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} ++ { (exit 1); exit 1; }; };; ++esac ++case $srcdir in ++ *[\\\"\#\$\&\'\`$am_lf\ \ ]*) ++ { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 ++$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} ++ { (exit 1); exit 1; }; };; ++esac ++ ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` ++ if test "$*" = "X"; then ++ # -L didn't work. ++ set X `ls -t "$srcdir/configure" conftest.file` ++ fi ++ rm -f conftest.file ++ if test "$*" != "X $srcdir/configure conftest.file" \ ++ && test "$*" != "X conftest.file $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" >&5 ++$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ ++ test "$2" = conftest.file ++ ) ++then ++ # Ok. ++ : ++else ++ { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! ++Check your system clock" >&5 ++$as_echo "$as_me: error: newly created file is older than distributed files! ++Check your system clock" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++{ $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++test "$program_prefix" != NONE && ++ program_transform_name="s&^&$program_prefix&;$program_transform_name" ++# Use a double $ so make ignores it. ++test "$program_suffix" != NONE && ++ program_transform_name="s&\$&$program_suffix&;$program_transform_name" ++# Double any \ or $. ++# By default was `s,x,x', remove it if useless. ++ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' ++program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` ++ ++# expand $ac_aux_dir to an absolute path ++am_aux_dir=`cd $ac_aux_dir && pwd` ++ ++if test x"${MISSING+set}" != xset; then ++ case $am_aux_dir in ++ *\ * | *\ *) ++ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; ++ *) ++ MISSING="\${SHELL} $am_aux_dir/missing" ;; ++ esac ++fi ++# Use eval to expand $SHELL ++if eval "$MISSING --run true"; then ++ am_missing_run="$MISSING --run " ++else ++ am_missing_run= ++ { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 ++$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} ++fi ++ ++if test x"${install_sh}" != xset; then ++ case $am_aux_dir in ++ *\ * | *\ *) ++ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; ++ *) ++ install_sh="\${SHELL} $am_aux_dir/install-sh" ++ esac ++fi ++ ++# Installed binaries are usually stripped using `strip' when the user ++# run `make install-strip'. However `strip' might not be the right ++# tool to use in cross-compilation environments, therefore Automake ++# will honor the `STRIP' environment variable to overrule this program. ++if test "$cross_compiling" != no; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_STRIP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++STRIP=$ac_cv_prog_STRIP ++if test -n "$STRIP"; then ++ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 ++$as_echo "$STRIP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_STRIP"; then ++ ac_ct_STRIP=$STRIP ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_STRIP"; then ++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_STRIP="strip" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ++if test -n "$ac_ct_STRIP"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 ++$as_echo "$ac_ct_STRIP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_STRIP" = x; then ++ STRIP=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ STRIP=$ac_ct_STRIP ++ fi ++else ++ STRIP="$ac_cv_prog_STRIP" ++fi ++ ++fi ++INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" ++ ++{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 ++$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } ++if test -z "$MKDIR_P"; then ++ if test "${ac_cv_path_mkdir+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in mkdir gmkdir; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue ++ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( ++ 'mkdir (GNU coreutils) '* | \ ++ 'mkdir (coreutils) '* | \ ++ 'mkdir (fileutils) '4.1*) ++ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext ++ break 3;; ++ esac ++ done ++ done ++done ++IFS=$as_save_IFS ++ ++fi ++ ++ if test "${ac_cv_path_mkdir+set}" = set; then ++ MKDIR_P="$ac_cv_path_mkdir -p" ++ else ++ # As a last resort, use the slow shell script. Don't cache a ++ # value for MKDIR_P within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the value is a relative name. ++ test -d ./--version && rmdir ./--version ++ MKDIR_P="$ac_install_sh -d" ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 ++$as_echo "$MKDIR_P" >&6; } ++ ++mkdir_p="$MKDIR_P" ++case $mkdir_p in ++ [\\/$]* | ?:[\\/]*) ;; ++ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; ++esac ++ ++for ac_prog in gawk mawk nawk awk ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_AWK+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$AWK"; then ++ ac_cv_prog_AWK="$AWK" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_AWK="$ac_prog" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++AWK=$ac_cv_prog_AWK ++if test -n "$AWK"; then ++ { $as_echo "$as_me:$LINENO: result: $AWK" >&5 ++$as_echo "$AWK" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$AWK" && break ++done ++ ++{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ++$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } ++set x ${MAKE-make} ++ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` ++if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.make <<\_ACEOF ++SHELL = /bin/sh ++all: ++ @echo '@@@%%%=$(MAKE)=@@@%%%' ++_ACEOF ++# GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++case `${MAKE-make} -f conftest.make 2>/dev/null` in ++ *@@@%%%=?*=@@@%%%*) ++ eval ac_cv_prog_make_${ac_make}_set=yes;; ++ *) ++ eval ac_cv_prog_make_${ac_make}_set=no;; ++esac ++rm -f conftest.make ++fi ++if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ SET_MAKE= ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ SET_MAKE="MAKE=${MAKE-make}" ++fi ++ ++rm -rf .tst 2>/dev/null ++mkdir .tst 2>/dev/null ++if test -d .tst; then ++ am__leading_dot=. ++else ++ am__leading_dot=_ ++fi ++rmdir .tst 2>/dev/null ++ ++if test "`cd $srcdir && pwd`" != "`pwd`"; then ++ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output ++ # is not polluted with repeated "-I." ++ am__isrc=' -I$(srcdir)' ++ # test to see if srcdir already configured ++ if test -f $srcdir/config.status; then ++ { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 ++$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++fi ++ ++# test whether we have cygpath ++if test -z "$CYGPATH_W"; then ++ if (cygpath --version) >/dev/null 2>/dev/null; then ++ CYGPATH_W='cygpath -w' ++ else ++ CYGPATH_W=echo ++ fi ++fi ++ ++ ++# Define the identity of the package. ++ PACKAGE='xz' ++ VERSION='4.999.9beta' ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE "$PACKAGE" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define VERSION "$VERSION" ++_ACEOF ++ ++# Some tools Automake needs. ++ ++ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} ++ ++ ++AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} ++ ++ ++AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} ++ ++ ++AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} ++ ++ ++MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} ++ ++# We need awk for the "check" target. The system "awk" is bad on ++# some platforms. ++# Always define AMTAR for backward compatibility. ++ ++AMTAR=${AMTAR-"${am_missing_run}tar"} ++ ++am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 ++$as_echo_n "checking whether ln -s works... " >&6; } ++LN_S=$as_ln_s ++if test "$LN_S" = "ln -s"; then ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 ++$as_echo "no, using $LN_S" >&6; } ++fi ++ ++ ++DEPDIR="${am__leading_dot}deps" ++ ++ac_config_commands="$ac_config_commands depfiles" ++ ++ ++am_make=${MAKE-make} ++cat > confinc << 'END' ++am__doit: ++ @echo this is the am__doit target ++.PHONY: am__doit ++END ++# If we don't find an include directive, just comment out the code. ++{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 ++$as_echo_n "checking for style of include used by $am_make... " >&6; } ++am__include="#" ++am__quote= ++_am_result=none ++# First try GNU make style include. ++echo "include confinc" > confmf ++# Ignore all kinds of additional output from `make'. ++case `$am_make -s -f confmf 2> /dev/null` in #( ++*the\ am__doit\ target*) ++ am__include=include ++ am__quote= ++ _am_result=GNU ++ ;; ++esac ++# Now try BSD make style include. ++if test "$am__include" = "#"; then ++ echo '.include "confinc"' > confmf ++ case `$am_make -s -f confmf 2> /dev/null` in #( ++ *the\ am__doit\ target*) ++ am__include=.include ++ am__quote="\"" ++ _am_result=BSD ++ ;; ++ esac ++fi ++ ++ ++{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 ++$as_echo "$_am_result" >&6; } ++rm -f confinc confmf ++ ++# Check whether --enable-dependency-tracking was given. ++if test "${enable_dependency_tracking+set}" = set; then ++ enableval=$enable_dependency_tracking; ++fi ++ ++if test "x$enable_dependency_tracking" != xno; then ++ am_depcomp="$ac_aux_dir/depcomp" ++ AMDEPBACKSLASH='\' ++fi ++ if test "x$enable_dependency_tracking" != xno; then ++ AMDEP_TRUE= ++ AMDEP_FALSE='#' ++else ++ AMDEP_TRUE='#' ++ AMDEP_FALSE= ++fi ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}gcc; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_CC="${ac_tool_prefix}gcc" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:$LINENO: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_CC"; then ++ ac_ct_CC=$CC ++ # Extract the first word of "gcc", so it can be a program name with args. ++set dummy gcc; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_CC="gcc" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++$as_echo "$ac_ct_CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_CC" = x; then ++ CC="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ CC=$ac_ct_CC ++ fi ++else ++ CC="$ac_cv_prog_CC" ++fi ++ ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}cc; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_CC="${ac_tool_prefix}cc" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:$LINENO: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ fi ++fi ++if test -z "$CC"; then ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ ac_prog_rejected=no ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ++ ac_prog_rejected=yes ++ continue ++ fi ++ ac_cv_prog_CC="cc" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++if test $ac_prog_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $ac_cv_prog_CC ++ shift ++ if test $# != 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same basename, so the bogon will be chosen ++ # first if we set CC to just the basename; use the full file name. ++ shift ++ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" ++ fi ++fi ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:$LINENO: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in cl.exe ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_CC="$ac_tool_prefix$ac_prog" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ { $as_echo "$as_me:$LINENO: result: $CC" >&5 ++$as_echo "$CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$CC" && break ++ done ++fi ++if test -z "$CC"; then ++ ac_ct_CC=$CC ++ for ac_prog in cl.exe ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_CC="$ac_prog" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++$as_echo "$ac_ct_CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$ac_ct_CC" && break ++done ++ ++ if test "x$ac_ct_CC" = x; then ++ CC="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ CC=$ac_ct_CC ++ fi ++fi ++ ++fi ++ ++ ++test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: no acceptable C compiler found in \$PATH ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++ ++# Provide some information about the compiler. ++$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 ++set X $ac_compile ++ac_compiler=$2 ++{ (ac_try="$ac_compiler --version >&5" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compiler --version >&5") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (ac_try="$ac_compiler -v >&5" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compiler -v >&5") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (ac_try="$ac_compiler -V >&5" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compiler -V >&5") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" ++# Try to create an executable without -o first, disregard a.out. ++# It will help us diagnose broken compilers, and finding out an intuition ++# of exeext. ++{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ++$as_echo_n "checking for C compiler default output file name... " >&6; } ++ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ++ ++# The possible output files: ++ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ++ ++ac_rmfiles= ++for ac_file in $ac_files ++do ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; ++ * ) ac_rmfiles="$ac_rmfiles $ac_file";; ++ esac ++done ++rm -f $ac_rmfiles ++ ++if { (ac_try="$ac_link_default" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link_default") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. ++# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' ++# in a Makefile. We should not override ac_cv_exeext if it was cached, ++# so that the user can short-circuit this test for compilers unknown to ++# Autoconf. ++for ac_file in $ac_files '' ++do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ++ ;; ++ [ab].out ) ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; ++ *.* ) ++ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; ++ then :; else ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ fi ++ # We set ac_cv_exeext here because the later test for it is not ++ # safe: cross compilers may not add the suffix if given an `-o' ++ # argument, so we may need to know it at that point already. ++ # Even if this section looks crufty: it has the advantage of ++ # actually working. ++ break;; ++ * ) ++ break;; ++ esac ++done ++test "$ac_cv_exeext" = no && ac_cv_exeext= ++ ++else ++ ac_file='' ++fi ++ ++{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 ++$as_echo "$ac_file" >&6; } ++if test -z "$ac_file"; then ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: C compiler cannot create executables ++See \`config.log' for more details." >&2;} ++ { (exit 77); exit 77; }; }; } ++fi ++ ++ac_exeext=$ac_cv_exeext ++ ++# Check that the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 ++$as_echo_n "checking whether the C compiler works... " >&6; } ++# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 ++# If not cross compiling, check that we can run a simple program. ++if test "$cross_compiling" != yes; then ++ if { ac_try='./$ac_file' ++ { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cross_compiling=no ++ else ++ if test "$cross_compiling" = maybe; then ++ cross_compiling=yes ++ else ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: cannot run C compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++ fi ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ++ac_clean_files=$ac_clean_files_save ++# Check that the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 ++$as_echo_n "checking whether we are cross compiling... " >&6; } ++{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 ++$as_echo "$cross_compiling" >&6; } ++ ++{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 ++$as_echo_n "checking for suffix of executables... " >&6; } ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # If both `conftest.exe' and `conftest' are `present' (well, observable) ++# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will ++# work properly (i.e., refer to `conftest.exe'), while it won't with ++# `rm'. ++for ac_file in conftest.exe conftest conftest.*; do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; ++ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ break;; ++ * ) break;; ++ esac ++done ++else ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++fi ++ ++rm -f conftest$ac_cv_exeext ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 ++$as_echo "$ac_cv_exeext" >&6; } ++ ++rm -f conftest.$ac_ext ++EXEEXT=$ac_cv_exeext ++ac_exeext=$EXEEXT ++{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 ++$as_echo_n "checking for suffix of object files... " >&6; } ++if test "${ac_cv_objext+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.o conftest.obj ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ for ac_file in conftest.o conftest.obj conftest.*; do ++ test -f "$ac_file" || continue; ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; ++ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` ++ break;; ++ esac ++done ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++fi ++ ++rm -f conftest.$ac_cv_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 ++$as_echo "$ac_cv_objext" >&6; } ++OBJEXT=$ac_cv_objext ++ac_objext=$OBJEXT ++{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 ++$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ++if test "${ac_cv_c_compiler_gnu+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++#ifndef __GNUC__ ++ choke me ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_compiler_gnu=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_compiler_gnu=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_cv_c_compiler_gnu=$ac_compiler_gnu ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 ++$as_echo "$ac_cv_c_compiler_gnu" >&6; } ++if test $ac_compiler_gnu = yes; then ++ GCC=yes ++else ++ GCC= ++fi ++ac_test_CFLAGS=${CFLAGS+set} ++ac_save_CFLAGS=$CFLAGS ++{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 ++$as_echo_n "checking whether $CC accepts -g... " >&6; } ++if test "${ac_cv_prog_cc_g+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_save_c_werror_flag=$ac_c_werror_flag ++ ac_c_werror_flag=yes ++ ac_cv_prog_cc_g=no ++ CFLAGS="-g" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_prog_cc_g=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ CFLAGS="" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_c_werror_flag=$ac_save_c_werror_flag ++ CFLAGS="-g" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_prog_cc_g=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_c_werror_flag=$ac_save_c_werror_flag ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 ++$as_echo "$ac_cv_prog_cc_g" >&6; } ++if test "$ac_test_CFLAGS" = set; then ++ CFLAGS=$ac_save_CFLAGS ++elif test $ac_cv_prog_cc_g = yes; then ++ if test "$GCC" = yes; then ++ CFLAGS="-g -O2" ++ else ++ CFLAGS="-g" ++ fi ++else ++ if test "$GCC" = yes; then ++ CFLAGS="-O2" ++ else ++ CFLAGS= ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 ++$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ++if test "${ac_cv_prog_cc_c89+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_prog_cc_c89=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ ++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters ++ inside strings and character constants. */ ++#define FOO(x) 'x' ++int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; ++ ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} ++_ACEOF ++for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ ++ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_prog_cc_c89=$ac_arg ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext ++ test "x$ac_cv_prog_cc_c89" != "xno" && break ++done ++rm -f conftest.$ac_ext ++CC=$ac_save_CC ++ ++fi ++# AC_CACHE_VAL ++case "x$ac_cv_prog_cc_c89" in ++ x) ++ { $as_echo "$as_me:$LINENO: result: none needed" >&5 ++$as_echo "none needed" >&6; } ;; ++ xno) ++ { $as_echo "$as_me:$LINENO: result: unsupported" >&5 ++$as_echo "unsupported" >&6; } ;; ++ *) ++ CC="$CC $ac_cv_prog_cc_c89" ++ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 ++$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; ++esac ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++depcc="$CC" am_compiler_list= ++ ++{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 ++$as_echo_n "checking dependency style of $depcc... " >&6; } ++if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named `D' -- because `-MD' means `put the output ++ # in D'. ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_CC_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` ++ fi ++ am__universal=false ++ case " $depcc " in #( ++ *\ -arch\ *\ -arch\ *) am__universal=true ;; ++ esac ++ ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with ++ # Solaris 8's {/usr,}/bin/sh. ++ touch sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ # We check with `-c' and `-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle `-M -o', and we need to detect this. Also, some Intel ++ # versions had trouble with output in subdirs ++ am__obj=sub/conftest.${OBJEXT-o} ++ am__minus_obj="-o $am__obj" ++ case $depmode in ++ gcc) ++ # This depmode causes a compiler race in universal mode. ++ test "$am__universal" = false || continue ++ ;; ++ nosideeffect) ++ # after this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ msvisualcpp | msvcmsys) ++ # This compiler won't grok `-c -o', but also, the minuso test has ++ # not run yet. These depmodes are late enough in the game, and ++ # so weak that their functioning should not be impacted. ++ am__obj=conftest.${OBJEXT-o} ++ am__minus_obj= ++ ;; ++ none) break ;; ++ esac ++ if depmode=$depmode \ ++ source=sub/conftest.c object=$am__obj \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_CC_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_CC_dependencies_compiler_type=none ++fi ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 ++$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } ++CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type ++ ++ if ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then ++ am__fastdepCC_TRUE= ++ am__fastdepCC_FALSE='#' ++else ++ am__fastdepCC_TRUE='#' ++ am__fastdepCC_FALSE= ++fi ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 ++$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } ++if test "${ac_cv_prog_cc_c99+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_prog_cc_c99=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++#include ++ ++// Check varargs macros. These examples are taken from C99 6.10.3.5. ++#define debug(...) fprintf (stderr, __VA_ARGS__) ++#define showlist(...) puts (#__VA_ARGS__) ++#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) ++static void ++test_varargs_macros (void) ++{ ++ int x = 1234; ++ int y = 5678; ++ debug ("Flag"); ++ debug ("X = %d\n", x); ++ showlist (The first, second, and third items.); ++ report (x>y, "x is %d but y is %d", x, y); ++} ++ ++// Check long long types. ++#define BIG64 18446744073709551615ull ++#define BIG32 4294967295ul ++#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) ++#if !BIG_OK ++ your preprocessor is broken; ++#endif ++#if BIG_OK ++#else ++ your preprocessor is broken; ++#endif ++static long long int bignum = -9223372036854775807LL; ++static unsigned long long int ubignum = BIG64; ++ ++struct incomplete_array ++{ ++ int datasize; ++ double data[]; ++}; ++ ++struct named_init { ++ int number; ++ const wchar_t *name; ++ double average; ++}; ++ ++typedef const char *ccp; ++ ++static inline int ++test_restrict (ccp restrict text) ++{ ++ // See if C++-style comments work. ++ // Iterate through items via the restricted pointer. ++ // Also check for declarations in for loops. ++ for (unsigned int i = 0; *(text+i) != '\0'; ++i) ++ continue; ++ return 0; ++} ++ ++// Check varargs and va_copy. ++static void ++test_varargs (const char *format, ...) ++{ ++ va_list args; ++ va_start (args, format); ++ va_list args_copy; ++ va_copy (args_copy, args); ++ ++ const char *str; ++ int number; ++ float fnumber; ++ ++ while (*format) ++ { ++ switch (*format++) ++ { ++ case 's': // string ++ str = va_arg (args_copy, const char *); ++ break; ++ case 'd': // int ++ number = va_arg (args_copy, int); ++ break; ++ case 'f': // float ++ fnumber = va_arg (args_copy, double); ++ break; ++ default: ++ break; ++ } ++ } ++ va_end (args_copy); ++ va_end (args); ++} ++ ++int ++main () ++{ ++ ++ // Check bool. ++ _Bool success = false; ++ ++ // Check restrict. ++ if (test_restrict ("String literal") == 0) ++ success = true; ++ char *restrict newvar = "Another string"; ++ ++ // Check varargs. ++ test_varargs ("s, d' f .", "string", 65, 34.234); ++ test_varargs_macros (); ++ ++ // Check flexible array members. ++ struct incomplete_array *ia = ++ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ++ ia->datasize = 10; ++ for (int i = 0; i < ia->datasize; ++i) ++ ia->data[i] = i * 1.234; ++ ++ // Check named initializers. ++ struct named_init ni = { ++ .number = 34, ++ .name = L"Test wide string", ++ .average = 543.34343, ++ }; ++ ++ ni.number = 58; ++ ++ int dynamic_array[ni.number]; ++ dynamic_array[ni.number - 1] = 543; ++ ++ // work around unused variable warnings ++ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' ++ || dynamic_array[ni.number - 1] != 543); ++ ++ ; ++ return 0; ++} ++_ACEOF ++for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_prog_cc_c99=$ac_arg ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext ++ test "x$ac_cv_prog_cc_c99" != "xno" && break ++done ++rm -f conftest.$ac_ext ++CC=$ac_save_CC ++ ++fi ++# AC_CACHE_VAL ++case "x$ac_cv_prog_cc_c99" in ++ x) ++ { $as_echo "$as_me:$LINENO: result: none needed" >&5 ++$as_echo "none needed" >&6; } ;; ++ xno) ++ { $as_echo "$as_me:$LINENO: result: unsupported" >&5 ++$as_echo "unsupported" >&6; } ;; ++ *) ++ CC="$CC $ac_cv_prog_cc_c99" ++ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 ++$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; ++esac ++ ++ ++ ++if test x$ac_cv_prog_cc_c99 = xno ; then ++ { { $as_echo "$as_me:$LINENO: error: No C99 compiler was found." >&5 ++$as_echo "$as_me: error: No C99 compiler was found." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++if test "x$CC" != xcc; then ++ { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 ++$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } ++else ++ { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 ++$as_echo_n "checking whether cc understands -c and -o together... " >&6; } ++fi ++set dummy $CC; ac_cc=`$as_echo "$2" | ++ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` ++if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++# Make sure it works both with $CC and with simple cc. ++# We do the test twice because some compilers refuse to overwrite an ++# existing .o file with -o, though they will create one. ++ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' ++rm -f conftest2.* ++if { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ test -f conftest2.$ac_objext && { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; ++then ++ eval ac_cv_prog_cc_${ac_cc}_c_o=yes ++ if test "x$CC" != xcc; then ++ # Test first that cc exists at all. ++ if { ac_try='cc -c conftest.$ac_ext >&5' ++ { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' ++ rm -f conftest2.* ++ if { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ test -f conftest2.$ac_objext && { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; ++ then ++ # cc works too. ++ : ++ else ++ # cc exists but doesn't like -o. ++ eval ac_cv_prog_cc_${ac_cc}_c_o=no ++ fi ++ fi ++ fi ++else ++ eval ac_cv_prog_cc_${ac_cc}_c_o=no ++fi ++rm -f core conftest* ++ ++fi ++if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ ++cat >>confdefs.h <<\_ACEOF ++#define NO_MINUS_C_MINUS_O 1 ++_ACEOF ++ ++fi ++ ++# FIXME: we rely on the cache variable name because ++# there is no other way. ++set dummy $CC ++am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` ++eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o ++if test "$am_t" != yes; then ++ # Losing compiler, so override with the script. ++ # FIXME: It is wrong to rewrite CC. ++ # But if we don't then we get into trouble of one sort or another. ++ # A longer-term fix would be to have automake use am__CC in this case, ++ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" ++ CC="$am_aux_dir/compile $CC" ++fi ++ ++ ++# By default we simply use the C compiler to build assembly code. ++ ++test "${CCAS+set}" = set || CCAS=$CC ++test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS ++ ++ ++ ++depcc="$CCAS" am_compiler_list= ++ ++{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 ++$as_echo_n "checking dependency style of $depcc... " >&6; } ++if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named `D' -- because `-MD' means `put the output ++ # in D'. ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_CCAS_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` ++ fi ++ am__universal=false ++ ++ ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with ++ # Solaris 8's {/usr,}/bin/sh. ++ touch sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ # We check with `-c' and `-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle `-M -o', and we need to detect this. Also, some Intel ++ # versions had trouble with output in subdirs ++ am__obj=sub/conftest.${OBJEXT-o} ++ am__minus_obj="-o $am__obj" ++ case $depmode in ++ gcc) ++ # This depmode causes a compiler race in universal mode. ++ test "$am__universal" = false || continue ++ ;; ++ nosideeffect) ++ # after this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ msvisualcpp | msvcmsys) ++ # This compiler won't grok `-c -o', but also, the minuso test has ++ # not run yet. These depmodes are late enough in the game, and ++ # so weak that their functioning should not be impacted. ++ am__obj=conftest.${OBJEXT-o} ++ am__minus_obj= ++ ;; ++ none) break ;; ++ esac ++ if depmode=$depmode \ ++ source=sub/conftest.c object=$am__obj \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_CCAS_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_CCAS_dependencies_compiler_type=none ++fi ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $am_cv_CCAS_dependencies_compiler_type" >&5 ++$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } ++CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type ++ ++ if ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then ++ am__fastdepCCAS_TRUE= ++ am__fastdepCCAS_FALSE='#' ++else ++ am__fastdepCCAS_TRUE='#' ++ am__fastdepCCAS_FALSE= ++fi ++ ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 ++$as_echo_n "checking how to run the C preprocessor... " >&6; } ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++ if test "${ac_cv_prog_CPP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ # Double quotes because CPP needs to be expanded ++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Broken: fails on valid input. ++continue ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether nonexistent headers ++ # can be detected and how. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ # Broken: success on invalid input. ++continue ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then ++ break ++fi ++ ++ done ++ ac_cv_prog_CPP=$CPP ++ ++fi ++ CPP=$ac_cv_prog_CPP ++else ++ ac_cv_prog_CPP=$CPP ++fi ++{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 ++$as_echo "$CPP" >&6; } ++ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Broken: fails on valid input. ++continue ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether nonexistent headers ++ # can be detected and how. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ # Broken: success on invalid input. ++continue ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then ++ : ++else ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 ++$as_echo_n "checking for grep that handles long lines and -e... " >&6; } ++if test "${ac_cv_path_GREP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$GREP"; then ++ ac_path_GREP_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in grep ggrep; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" ++ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue ++# Check for GNU ac_path_GREP and select it if it is found. ++ # Check for GNU $ac_path_GREP ++case `"$ac_path_GREP" --version 2>&1` in ++*GNU*) ++ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo 'GREP' >> "conftest.nl" ++ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ ac_count=`expr $ac_count + 1` ++ if test $ac_count -gt ${ac_path_GREP_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_GREP="$ac_path_GREP" ++ ac_path_GREP_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_GREP_found && break 3 ++ done ++ done ++done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_GREP"; then ++ { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 ++$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++else ++ ac_cv_path_GREP=$GREP ++fi ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 ++$as_echo "$ac_cv_path_GREP" >&6; } ++ GREP="$ac_cv_path_GREP" ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 ++$as_echo_n "checking for egrep... " >&6; } ++if test "${ac_cv_path_EGREP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 ++ then ac_cv_path_EGREP="$GREP -E" ++ else ++ if test -z "$EGREP"; then ++ ac_path_EGREP_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in egrep; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" ++ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue ++# Check for GNU ac_path_EGREP and select it if it is found. ++ # Check for GNU $ac_path_EGREP ++case `"$ac_path_EGREP" --version 2>&1` in ++*GNU*) ++ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo 'EGREP' >> "conftest.nl" ++ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ ac_count=`expr $ac_count + 1` ++ if test $ac_count -gt ${ac_path_EGREP_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_EGREP="$ac_path_EGREP" ++ ac_path_EGREP_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_EGREP_found && break 3 ++ done ++ done ++done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_EGREP"; then ++ { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 ++$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++else ++ ac_cv_path_EGREP=$EGREP ++fi ++ ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 ++$as_echo "$ac_cv_path_EGREP" >&6; } ++ EGREP="$ac_cv_path_EGREP" ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 ++$as_echo_n "checking for ANSI C header files... " >&6; } ++if test "${ac_cv_header_stdc+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_header_stdc=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_header_stdc=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "memchr" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "free" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++ if test "$cross_compiling" = yes; then ++ : ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#if ((' ' & 0x0FF) == 0x020) ++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#else ++# define ISLOWER(c) \ ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) ++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ++#endif ++ ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int ++main () ++{ ++ int i; ++ for (i = 0; i < 256; i++) ++ if (XOR (islower (i), ISLOWER (i)) ++ || toupper (i) != TOUPPER (i)) ++ return 2; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ $as_echo "$as_me: program exited with status $ac_status" >&5 ++$as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++ac_cv_header_stdc=no ++fi ++rm -rf conftest.dSYM ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ ++ ++fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 ++$as_echo "$ac_cv_header_stdc" >&6; } ++if test $ac_cv_header_stdc = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define STDC_HEADERS 1 ++_ACEOF ++ ++fi ++ ++# On IRIX 5.3, sys/types and inttypes.h are conflicting. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ++ inttypes.h stdint.h unistd.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++ ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ eval "$as_ac_Header=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$as_ac_Header=no" ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++ if test "${ac_cv_header_minix_config_h+set}" = set; then ++ { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 ++$as_echo_n "checking for minix/config.h... " >&6; } ++if test "${ac_cv_header_minix_config_h+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 ++$as_echo "$ac_cv_header_minix_config_h" >&6; } ++else ++ # Is the header compilable? ++{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5 ++$as_echo_n "checking minix/config.h usability... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_header_compiler=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_compiler=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5 ++$as_echo_n "checking minix/config.h presence... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ ac_header_preproc=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 ++$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## --------------------------------------- ## ++## Report this to lasse.collin@tukaani.org ## ++## --------------------------------------- ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5 ++$as_echo_n "checking for minix/config.h... " >&6; } ++if test "${ac_cv_header_minix_config_h+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_header_minix_config_h=$ac_header_preproc ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 ++$as_echo "$ac_cv_header_minix_config_h" >&6; } ++ ++fi ++if test "x$ac_cv_header_minix_config_h" = x""yes; then ++ MINIX=yes ++else ++ MINIX= ++fi ++ ++ ++ if test "$MINIX" = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define _POSIX_SOURCE 1 ++_ACEOF ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define _POSIX_1_SOURCE 2 ++_ACEOF ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define _MINIX 1 ++_ACEOF ++ ++ fi ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 ++$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } ++if test "${ac_cv_safe_to_define___extensions__+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++# define __EXTENSIONS__ 1 ++ $ac_includes_default ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_safe_to_define___extensions__=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_safe_to_define___extensions__=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 ++$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } ++ test $ac_cv_safe_to_define___extensions__ = yes && ++ cat >>confdefs.h <<\_ACEOF ++#define __EXTENSIONS__ 1 ++_ACEOF ++ ++ cat >>confdefs.h <<\_ACEOF ++#define _ALL_SOURCE 1 ++_ACEOF ++ ++ cat >>confdefs.h <<\_ACEOF ++#define _GNU_SOURCE 1 ++_ACEOF ++ ++ cat >>confdefs.h <<\_ACEOF ++#define _POSIX_PTHREAD_SEMANTICS 1 ++_ACEOF ++ ++ cat >>confdefs.h <<\_ACEOF ++#define _TANDEM_SOURCE 1 ++_ACEOF ++ ++ ++ ++if test "x$enable_threads" = xyes; then ++ echo ++ echo "Threading support:" ++ ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++acx_pthread_ok=no ++ ++# We used to check for pthread.h first, but this fails if pthread.h ++# requires special compiler flags (e.g. on True64 or Sequent). ++# It gets checked for in the link test anyway. ++ ++# First of all, check if the user has set any of the PTHREAD_LIBS, ++# etcetera environment variables, and if threads linking works using ++# them: ++if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ save_LIBS="$LIBS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ { $as_echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 ++$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char pthread_join (); ++int ++main () ++{ ++return pthread_join (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ acx_pthread_ok=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 ++$as_echo "$acx_pthread_ok" >&6; } ++ if test x"$acx_pthread_ok" = xno; then ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++ fi ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++fi ++ ++# We must check for the threads library under a number of different ++# names; the ordering is very important because some systems ++# (e.g. DEC) have both -lpthread and -lpthreads, where one of the ++# libraries is broken (non-POSIX). ++ ++# Create a list of thread flags to try. Items starting with a "-" are ++# C compiler flags, and other items are library names, except for "none" ++# which indicates that we try without any flags at all, and "pthread-config" ++# which is a program returning the flags for the Pth emulation library. ++ ++acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" ++ ++# The ordering *is* (sometimes) important. Some notes on the ++# individual items follow: ++ ++# pthreads: AIX (must check this before -lpthread) ++# none: in case threads are in libc; should be tried before -Kthread and ++# other compiler flags to prevent continual compiler warnings ++# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) ++# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) ++# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) ++# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) ++# -pthreads: Solaris/gcc ++# -mthreads: Mingw32/gcc, Lynx/gcc ++# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it ++# doesn't hurt to check since this sometimes defines pthreads too; ++# also defines -D_REENTRANT) ++# ... -mt is also the pthreads flag for HP/aCC ++# pthread: Linux, etcetera ++# --thread-safe: KAI C++ ++# pthread-config: use pthread-config program (for GNU Pth library) ++ ++case "${host_cpu}-${host_os}" in ++ *solaris*) ++ ++ # On Solaris (at least, for some versions), libc contains stubbed ++ # (non-functional) versions of the pthreads routines, so link-based ++ # tests will erroneously succeed. (We need to link with -pthreads/-mt/ ++ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather ++ # a function called by this macro, so we could check for that, but ++ # who knows whether they'll stub that too in a future libc.) So, ++ # we'll just look for -pthreads and -lpthread first: ++ ++ acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ++ ;; ++esac ++ ++if test x"$acx_pthread_ok" = xno; then ++for flag in $acx_pthread_flags; do ++ ++ case $flag in ++ none) ++ { $as_echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5 ++$as_echo_n "checking whether pthreads work without any flags... " >&6; } ++ ;; ++ ++ -*) ++ { $as_echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5 ++$as_echo_n "checking whether pthreads work with $flag... " >&6; } ++ PTHREAD_CFLAGS="$flag" ++ ;; ++ ++ pthread-config) ++ # Extract the first word of "pthread-config", so it can be a program name with args. ++set dummy pthread-config; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_acx_pthread_config+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$acx_pthread_config"; then ++ ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_acx_pthread_config="yes" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++ test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" ++fi ++fi ++acx_pthread_config=$ac_cv_prog_acx_pthread_config ++if test -n "$acx_pthread_config"; then ++ { $as_echo "$as_me:$LINENO: result: $acx_pthread_config" >&5 ++$as_echo "$acx_pthread_config" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ if test x"$acx_pthread_config" = xno; then continue; fi ++ PTHREAD_CFLAGS="`pthread-config --cflags`" ++ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ++ ;; ++ ++ *) ++ { $as_echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5 ++$as_echo_n "checking for the pthreads library -l$flag... " >&6; } ++ PTHREAD_LIBS="-l$flag" ++ ;; ++ esac ++ ++ save_LIBS="$LIBS" ++ save_CFLAGS="$CFLAGS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ ++ # Check for various functions. We must include pthread.h, ++ # since some functions may be macros. (On the Sequent, we ++ # need a special flag -Kthread to make this header compile.) ++ # We check for pthread_join because it is in -lpthread on IRIX ++ # while pthread_create is in libc. We check for pthread_attr_init ++ # due to DEC craziness with -lpthreads. We check for ++ # pthread_cleanup_push because it is one of the few pthread ++ # functions on Solaris that doesn't have a non-functional libc stub. ++ # We try pthread_create on general principles. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++pthread_t th; pthread_join(th, 0); ++ pthread_attr_init(0); pthread_cleanup_push(0, 0); ++ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ acx_pthread_ok=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ ++ { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 ++$as_echo "$acx_pthread_ok" >&6; } ++ if test "x$acx_pthread_ok" = xyes; then ++ break; ++ fi ++ ++ PTHREAD_LIBS="" ++ PTHREAD_CFLAGS="" ++done ++fi ++ ++# Various other checks: ++if test "x$acx_pthread_ok" = xyes; then ++ save_LIBS="$LIBS" ++ LIBS="$PTHREAD_LIBS $LIBS" ++ save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS" ++ ++ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. ++ { $as_echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5 ++$as_echo_n "checking for joinable pthread attribute... " >&6; } ++ attr_name=unknown ++ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++int attr=$attr; return attr; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ attr_name=$attr; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ done ++ { $as_echo "$as_me:$LINENO: result: $attr_name" >&5 ++$as_echo "$attr_name" >&6; } ++ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then ++ ++cat >>confdefs.h <<_ACEOF ++#define PTHREAD_CREATE_JOINABLE $attr_name ++_ACEOF ++ ++ fi ++ ++ { $as_echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5 ++$as_echo_n "checking if more special flags are required for pthreads... " >&6; } ++ flag=no ++ case "${host_cpu}-${host_os}" in ++ *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; ++ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; ++ esac ++ { $as_echo "$as_me:$LINENO: result: ${flag}" >&5 ++$as_echo "${flag}" >&6; } ++ if test "x$flag" != xno; then ++ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" ++ fi ++ ++ LIBS="$save_LIBS" ++ CFLAGS="$save_CFLAGS" ++ ++ # More AIX lossage: must compile with xlc_r or cc_r ++ if test x"$GCC" != xyes; then ++ for ac_prog in xlc_r cc_r ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$PTHREAD_CC"; then ++ ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_PTHREAD_CC="$ac_prog" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++PTHREAD_CC=$ac_cv_prog_PTHREAD_CC ++if test -n "$PTHREAD_CC"; then ++ { $as_echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5 ++$as_echo "$PTHREAD_CC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$PTHREAD_CC" && break ++done ++test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" ++ ++ else ++ PTHREAD_CC=$CC ++ fi ++else ++ PTHREAD_CC="$CC" ++fi ++ ++ ++ ++ ++ ++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ++if test x"$acx_pthread_ok" = xyes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_PTHREAD 1 ++_ACEOF ++ ++ : ++else ++ acx_pthread_ok=no ++ ++fi ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++ LIBS="$LIBS $PTHREAD_LIBS" ++ AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" ++ CC="$PTHREAD_CC" ++fi ++ ++echo ++echo "Initializing Libtool:" ++ ++case `pwd` in ++ *\ * | *\ *) ++ { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 ++$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; ++esac ++ ++ ++ ++macro_version='2.2.6' ++macro_revision='1.3012' ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ltmain="$ac_aux_dir/ltmain.sh" ++ ++{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 ++$as_echo_n "checking for a sed that does not truncate output... " >&6; } ++if test "${ac_cv_path_SED+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ ++ for ac_i in 1 2 3 4 5 6 7; do ++ ac_script="$ac_script$as_nl$ac_script" ++ done ++ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed ++ $as_unset ac_script || ac_script= ++ if test -z "$SED"; then ++ ac_path_SED_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in sed gsed; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" ++ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue ++# Check for GNU ac_path_SED and select it if it is found. ++ # Check for GNU $ac_path_SED ++case `"$ac_path_SED" --version 2>&1` in ++*GNU*) ++ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo '' >> "conftest.nl" ++ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ ac_count=`expr $ac_count + 1` ++ if test $ac_count -gt ${ac_path_SED_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_SED="$ac_path_SED" ++ ac_path_SED_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_SED_found && break 3 ++ done ++ done ++done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_SED"; then ++ { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 ++$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++else ++ ac_cv_path_SED=$SED ++fi ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 ++$as_echo "$ac_cv_path_SED" >&6; } ++ SED="$ac_cv_path_SED" ++ rm -f conftest.sed ++ ++test -z "$SED" && SED=sed ++Xsed="$SED -e 1s/^X//" ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 ++$as_echo_n "checking for fgrep... " >&6; } ++if test "${ac_cv_path_FGREP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 ++ then ac_cv_path_FGREP="$GREP -F" ++ else ++ if test -z "$FGREP"; then ++ ac_path_FGREP_found=false ++ # Loop through the user's path and test for each of PROGNAME-LIST ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_prog in fgrep; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" ++ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue ++# Check for GNU ac_path_FGREP and select it if it is found. ++ # Check for GNU $ac_path_FGREP ++case `"$ac_path_FGREP" --version 2>&1` in ++*GNU*) ++ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; ++*) ++ ac_count=0 ++ $as_echo_n 0123456789 >"conftest.in" ++ while : ++ do ++ cat "conftest.in" "conftest.in" >"conftest.tmp" ++ mv "conftest.tmp" "conftest.in" ++ cp "conftest.in" "conftest.nl" ++ $as_echo 'FGREP' >> "conftest.nl" ++ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break ++ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ++ ac_count=`expr $ac_count + 1` ++ if test $ac_count -gt ${ac_path_FGREP_max-0}; then ++ # Best one so far, save it but keep looking for a better one ++ ac_cv_path_FGREP="$ac_path_FGREP" ++ ac_path_FGREP_max=$ac_count ++ fi ++ # 10*(2^10) chars as input seems more than enough ++ test $ac_count -gt 10 && break ++ done ++ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ++esac ++ ++ $ac_path_FGREP_found && break 3 ++ done ++ done ++done ++IFS=$as_save_IFS ++ if test -z "$ac_cv_path_FGREP"; then ++ { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 ++$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++else ++ ac_cv_path_FGREP=$FGREP ++fi ++ ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 ++$as_echo "$ac_cv_path_FGREP" >&6; } ++ FGREP="$ac_cv_path_FGREP" ++ ++ ++test -z "$GREP" && GREP=grep ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# Check whether --with-gnu-ld was given. ++if test "${with_gnu_ld+set}" = set; then ++ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++ ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 ++$as_echo_n "checking for ld used by $CC... " >&6; } ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [\\/]* | ?:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the pathname of ld ++ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` ++ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 ++$as_echo_n "checking for GNU ld... " >&6; } ++else ++ { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 ++$as_echo_n "checking for non-GNU ld... " >&6; } ++fi ++if test "${lt_cv_path_LD+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$LD"; then ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ lt_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some variants of GNU ld only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ case `"$lt_cv_path_LD" -v 2>&1 &5 ++$as_echo "$LD" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 ++$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} ++ { (exit 1); exit 1; }; } ++{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 ++$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ++if test "${lt_cv_prog_gnu_ld+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ # I'd rather use --version here, but apparently some GNU lds only accept -v. ++case `$LD -v 2>&1 &5 ++$as_echo "$lt_cv_prog_gnu_ld" >&6; } ++with_gnu_ld=$lt_cv_prog_gnu_ld ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 ++$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } ++if test "${lt_cv_path_NM+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$NM"; then ++ # Let the user override the test. ++ lt_cv_path_NM="$NM" ++else ++ lt_nm_to_check="${ac_tool_prefix}nm" ++ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then ++ lt_nm_to_check="$lt_nm_to_check nm" ++ fi ++ for lt_tmp_nm in $lt_nm_to_check; do ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ tmp_nm="$ac_dir/$lt_tmp_nm" ++ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then ++ # Check to see if the nm accepts a BSD-compat flag. ++ # Adding the `sed 1q' prevents false positives on HP-UX, which says: ++ # nm: unknown option "B" ignored ++ # Tru64's nm complains that /dev/null is an invalid object file ++ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in ++ */dev/null* | *'Invalid file or object type'*) ++ lt_cv_path_NM="$tmp_nm -B" ++ break ++ ;; ++ *) ++ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in ++ */dev/null*) ++ lt_cv_path_NM="$tmp_nm -p" ++ break ++ ;; ++ *) ++ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ++ continue # so that we can try to find one that supports BSD flags ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ done ++ IFS="$lt_save_ifs" ++ done ++ : ${lt_cv_path_NM=no} ++fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 ++$as_echo "$lt_cv_path_NM" >&6; } ++if test "$lt_cv_path_NM" != "no"; then ++ NM="$lt_cv_path_NM" ++else ++ # Didn't find any BSD compatible name lister, look for dumpbin. ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in "dumpbin -symbols" "link -dump -symbols" ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_DUMPBIN+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DUMPBIN"; then ++ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++DUMPBIN=$ac_cv_prog_DUMPBIN ++if test -n "$DUMPBIN"; then ++ { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 ++$as_echo "$DUMPBIN" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$DUMPBIN" && break ++ done ++fi ++if test -z "$DUMPBIN"; then ++ ac_ct_DUMPBIN=$DUMPBIN ++ for ac_prog in "dumpbin -symbols" "link -dump -symbols" ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DUMPBIN"; then ++ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN ++if test -n "$ac_ct_DUMPBIN"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 ++$as_echo "$ac_ct_DUMPBIN" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$ac_ct_DUMPBIN" && break ++done ++ ++ if test "x$ac_ct_DUMPBIN" = x; then ++ DUMPBIN=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DUMPBIN=$ac_ct_DUMPBIN ++ fi ++fi ++ ++ ++ if test "$DUMPBIN" != ":"; then ++ NM="$DUMPBIN" ++ fi ++fi ++test -z "$NM" && NM=nm ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 ++$as_echo_n "checking the name lister ($NM) interface... " >&6; } ++if test "${lt_cv_nm_interface+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_nm_interface="BSD nm" ++ echo "int some_variable = 0;" > conftest.$ac_ext ++ (eval echo "\"\$as_me:7392: $ac_compile\"" >&5) ++ (eval "$ac_compile" 2>conftest.err) ++ cat conftest.err >&5 ++ (eval echo "\"\$as_me:7395: $NM \\\"conftest.$ac_objext\\\"\"" >&5) ++ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) ++ cat conftest.err >&5 ++ (eval echo "\"\$as_me:7398: output\"" >&5) ++ cat conftest.out >&5 ++ if $GREP 'External.*some_variable' conftest.out > /dev/null; then ++ lt_cv_nm_interface="MS dumpbin" ++ fi ++ rm -f conftest* ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 ++$as_echo "$lt_cv_nm_interface" >&6; } ++ ++# find the maximum length of command line arguments ++{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 ++$as_echo_n "checking the maximum length of command line arguments... " >&6; } ++if test "${lt_cv_sys_max_cmd_len+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ i=0 ++ teststring="ABCD" ++ ++ case $build_os in ++ msdosdjgpp*) ++ # On DJGPP, this test can blow up pretty badly due to problems in libc ++ # (any single argument exceeding 2000 bytes causes a buffer overrun ++ # during glob expansion). Even if it were fixed, the result of this ++ # check would be larger than it should be. ++ lt_cv_sys_max_cmd_len=12288; # 12K is about right ++ ;; ++ ++ gnu*) ++ # Under GNU Hurd, this test is not required because there is ++ # no limit to the length of command line arguments. ++ # Libtool will interpret -1 as no limit whatsoever ++ lt_cv_sys_max_cmd_len=-1; ++ ;; ++ ++ cygwin* | mingw* | cegcc*) ++ # On Win9x/ME, this test blows up -- it succeeds, but takes ++ # about 5 minutes as the teststring grows exponentially. ++ # Worse, since 9x/ME are not pre-emptively multitasking, ++ # you end up with a "frozen" computer, even though with patience ++ # the test eventually succeeds (with a max line length of 256k). ++ # Instead, let's just punt: use the minimum linelength reported by ++ # all of the supported platforms: 8192 (on NT/2K/XP). ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ amigaos*) ++ # On AmigaOS with pdksh, this test takes hours, literally. ++ # So we just punt and use a minimum line length of 8192. ++ lt_cv_sys_max_cmd_len=8192; ++ ;; ++ ++ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) ++ # This has been around since 386BSD, at least. Likely further. ++ if test -x /sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` ++ elif test -x /usr/sbin/sysctl; then ++ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` ++ else ++ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs ++ fi ++ # And add a safety zone ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ ;; ++ ++ interix*) ++ # We know the value 262144 and hardcode it with a safety zone (like BSD) ++ lt_cv_sys_max_cmd_len=196608 ++ ;; ++ ++ osf*) ++ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure ++ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not ++ # nice to cause kernel panics so lets avoid the loop below. ++ # First set a reasonable default. ++ lt_cv_sys_max_cmd_len=16384 ++ # ++ if test -x /sbin/sysconfig; then ++ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in ++ *1*) lt_cv_sys_max_cmd_len=-1 ;; ++ esac ++ fi ++ ;; ++ sco3.2v5*) ++ lt_cv_sys_max_cmd_len=102400 ++ ;; ++ sysv5* | sco5v6* | sysv4.2uw2*) ++ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` ++ if test -n "$kargmax"; then ++ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` ++ else ++ lt_cv_sys_max_cmd_len=32768 ++ fi ++ ;; ++ *) ++ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` ++ if test -n "$lt_cv_sys_max_cmd_len"; then ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ++ else ++ # Make teststring a little bigger before we do anything with it. ++ # a 1K string should be a reasonable start. ++ for i in 1 2 3 4 5 6 7 8 ; do ++ teststring=$teststring$teststring ++ done ++ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} ++ # If test is not a shell built-in, we'll probably end up computing a ++ # maximum length that is only half of the actual maximum length, but ++ # we can't tell. ++ while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ ++ = "XX$teststring$teststring"; } >/dev/null 2>&1 && ++ test $i != 17 # 1/2 MB should be enough ++ do ++ i=`expr $i + 1` ++ teststring=$teststring$teststring ++ done ++ # Only check the string length outside the loop. ++ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` ++ teststring= ++ # Add a significant safety factor because C++ compilers can tack on ++ # massive amounts of additional arguments before passing them to the ++ # linker. It appears as though 1/2 is a usable value. ++ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ++ fi ++ ;; ++ esac ++ ++fi ++ ++if test -n $lt_cv_sys_max_cmd_len ; then ++ { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 ++$as_echo "$lt_cv_sys_max_cmd_len" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: none" >&5 ++$as_echo "none" >&6; } ++fi ++max_cmd_len=$lt_cv_sys_max_cmd_len ++ ++ ++ ++ ++ ++ ++: ${CP="cp -f"} ++: ${MV="mv -f"} ++: ${RM="rm -f"} ++ ++{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 ++$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } ++# Try some XSI features ++xsi_shell=no ++( _lt_dummy="a/b/c" ++ test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ ++ = c,a/b,, \ ++ && eval 'test $(( 1 + 1 )) -eq 2 \ ++ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ ++ && xsi_shell=yes ++{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 ++$as_echo "$xsi_shell" >&6; } ++ ++ ++{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 ++$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } ++lt_shell_append=no ++( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ ++ >/dev/null 2>&1 \ ++ && lt_shell_append=yes ++{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 ++$as_echo "$lt_shell_append" >&6; } ++ ++ ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ lt_unset=unset ++else ++ lt_unset=false ++fi ++ ++ ++ ++ ++ ++# test EBCDIC or ASCII ++case `echo X|tr X '\101'` in ++ A) # ASCII based system ++ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr ++ lt_SP2NL='tr \040 \012' ++ lt_NL2SP='tr \015\012 \040\040' ++ ;; ++ *) # EBCDIC based system ++ lt_SP2NL='tr \100 \n' ++ lt_NL2SP='tr \r\n \100\100' ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 ++$as_echo_n "checking for $LD option to reload object files... " >&6; } ++if test "${lt_cv_ld_reload_flag+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ld_reload_flag='-r' ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 ++$as_echo "$lt_cv_ld_reload_flag" >&6; } ++reload_flag=$lt_cv_ld_reload_flag ++case $reload_flag in ++"" | " "*) ;; ++*) reload_flag=" $reload_flag" ;; ++esac ++reload_cmds='$LD$reload_flag -o $output$reload_objs' ++case $host_os in ++ darwin*) ++ if test "$GCC" = yes; then ++ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' ++ else ++ reload_cmds='$LD$reload_flag -o $output$reload_objs' ++ fi ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ++set dummy ${ac_tool_prefix}objdump; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_OBJDUMP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OBJDUMP"; then ++ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++OBJDUMP=$ac_cv_prog_OBJDUMP ++if test -n "$OBJDUMP"; then ++ { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 ++$as_echo "$OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OBJDUMP"; then ++ ac_ct_OBJDUMP=$OBJDUMP ++ # Extract the first word of "objdump", so it can be a program name with args. ++set dummy objdump; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OBJDUMP"; then ++ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_OBJDUMP="objdump" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ++if test -n "$ac_ct_OBJDUMP"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 ++$as_echo "$ac_ct_OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OBJDUMP" = x; then ++ OBJDUMP="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OBJDUMP=$ac_ct_OBJDUMP ++ fi ++else ++ OBJDUMP="$ac_cv_prog_OBJDUMP" ++fi ++ ++test -z "$OBJDUMP" && OBJDUMP=objdump ++ ++ ++ ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 ++$as_echo_n "checking how to recognize dependent libraries... " >&6; } ++if test "${lt_cv_deplibs_check_method+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_file_magic_cmd='$MAGIC_CMD' ++lt_cv_file_magic_test_file= ++lt_cv_deplibs_check_method='unknown' ++# Need to set the preceding variable on all platforms that support ++# interlibrary dependencies. ++# 'none' -- dependencies not supported. ++# `unknown' -- same as none, but documents that we really don't know. ++# 'pass_all' -- all dependencies passed with no checks. ++# 'test_compile' -- check by making test program. ++# 'file_magic [[regex]]' -- check by looking for files in library path ++# which responds to the $file_magic_cmd with a given extended regex. ++# If you have `file' or equivalent on your system and you're not sure ++# whether `pass_all' will *always* work, you probably want this one. ++ ++case $host_os in ++aix[4-9]*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++beos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++bsdi[45]*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' ++ lt_cv_file_magic_cmd='/usr/bin/file -L' ++ lt_cv_file_magic_test_file=/shlib/libc.so ++ ;; ++ ++cygwin*) ++ # func_win32_libid is a shell function defined in ltmain.sh ++ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' ++ lt_cv_file_magic_cmd='func_win32_libid' ++ ;; ++ ++mingw* | pw32*) ++ # Base MSYS/MinGW do not provide the 'file' command needed by ++ # func_win32_libid shell function, so use a weaker test based on 'objdump', ++ # unless we find 'file', for example because we are cross-compiling. ++ if ( file / ) >/dev/null 2>&1; then ++ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' ++ lt_cv_file_magic_cmd='func_win32_libid' ++ else ++ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ fi ++ ;; ++ ++cegcc) ++ # use the weaker test based on 'objdump'. See mingw*. ++ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' ++ lt_cv_file_magic_cmd='$OBJDUMP -f' ++ ;; ++ ++darwin* | rhapsody*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++freebsd* | dragonfly*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ case $host_cpu in ++ i*86 ) ++ # Not sure whether the presence of OpenBSD here was a mistake. ++ # Let's accept both of them until this is cleared up. ++ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ++ ;; ++ esac ++ else ++ lt_cv_deplibs_check_method=pass_all ++ fi ++ ;; ++ ++gnu*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++hpux10.20* | hpux11*) ++ lt_cv_file_magic_cmd=/usr/bin/file ++ case $host_cpu in ++ ia64*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' ++ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ++ ;; ++ hppa*64*) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' ++ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ++ ;; ++ *) ++ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ++ lt_cv_file_magic_test_file=/usr/lib/libc.sl ++ ;; ++ esac ++ ;; ++ ++interix[3-9]*) ++ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $LD in ++ *-32|*"-32 ") libmagic=32-bit;; ++ *-n32|*"-n32 ") libmagic=N32;; ++ *-64|*"-64 ") libmagic=64-bit;; ++ *) libmagic=never-match;; ++ esac ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++# This must be Linux ELF. ++linux* | k*bsd*-gnu) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' ++ fi ++ ;; ++ ++newos6*) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' ++ lt_cv_file_magic_cmd=/usr/bin/file ++ lt_cv_file_magic_test_file=/usr/lib/libnls.so ++ ;; ++ ++*nto* | *qnx*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++openbsd*) ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' ++ else ++ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' ++ fi ++ ;; ++ ++osf3* | osf4* | osf5*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++rdos*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++solaris*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ ++sysv4 | sysv4.3*) ++ case $host_vendor in ++ motorola) ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' ++ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ++ ;; ++ ncr) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ sequent) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ++ ;; ++ sni) ++ lt_cv_file_magic_cmd='/bin/file' ++ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" ++ lt_cv_file_magic_test_file=/lib/libc.so ++ ;; ++ siemens) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ pc) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++ esac ++ ;; ++ ++tpf*) ++ lt_cv_deplibs_check_method=pass_all ++ ;; ++esac ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 ++$as_echo "$lt_cv_deplibs_check_method" >&6; } ++file_magic_cmd=$lt_cv_file_magic_cmd ++deplibs_check_method=$lt_cv_deplibs_check_method ++test -z "$deplibs_check_method" && deplibs_check_method=unknown ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ar; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_AR+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$AR"; then ++ ac_cv_prog_AR="$AR" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_AR="${ac_tool_prefix}ar" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++AR=$ac_cv_prog_AR ++if test -n "$AR"; then ++ { $as_echo "$as_me:$LINENO: result: $AR" >&5 ++$as_echo "$AR" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_AR"; then ++ ac_ct_AR=$AR ++ # Extract the first word of "ar", so it can be a program name with args. ++set dummy ar; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_AR+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_AR"; then ++ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_AR="ar" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_AR=$ac_cv_prog_ac_ct_AR ++if test -n "$ac_ct_AR"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 ++$as_echo "$ac_ct_AR" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_AR" = x; then ++ AR="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ AR=$ac_ct_AR ++ fi ++else ++ AR="$ac_cv_prog_AR" ++fi ++ ++test -z "$AR" && AR=ar ++test -z "$AR_FLAGS" && AR_FLAGS=cru ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_STRIP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++STRIP=$ac_cv_prog_STRIP ++if test -n "$STRIP"; then ++ { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 ++$as_echo "$STRIP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_STRIP"; then ++ ac_ct_STRIP=$STRIP ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_STRIP"; then ++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_STRIP="strip" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ++if test -n "$ac_ct_STRIP"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 ++$as_echo "$ac_ct_STRIP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_STRIP" = x; then ++ STRIP=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ STRIP=$ac_ct_STRIP ++ fi ++else ++ STRIP="$ac_cv_prog_STRIP" ++fi ++ ++test -z "$STRIP" && STRIP=: ++ ++ ++ ++ ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_RANLIB+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++RANLIB=$ac_cv_prog_RANLIB ++if test -n "$RANLIB"; then ++ { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 ++$as_echo "$RANLIB" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_RANLIB"; then ++ ac_ct_RANLIB=$RANLIB ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_RANLIB"; then ++ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_RANLIB="ranlib" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB ++if test -n "$ac_ct_RANLIB"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 ++$as_echo "$ac_ct_RANLIB" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_RANLIB" = x; then ++ RANLIB=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ RANLIB=$ac_ct_RANLIB ++ fi ++else ++ RANLIB="$ac_cv_prog_RANLIB" ++fi ++ ++test -z "$RANLIB" && RANLIB=: ++ ++ ++ ++ ++ ++ ++# Determine commands to create old-style static archives. ++old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' ++old_postinstall_cmds='chmod 644 $oldlib' ++old_postuninstall_cmds= ++ ++if test -n "$RANLIB"; then ++ case $host_os in ++ openbsd*) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ++ ;; ++ *) ++ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ++ ;; ++ esac ++ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++ ++ ++# Check for command to grab the raw symbol name followed by C symbol from nm. ++{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 ++$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } ++if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ++# These are sane defaults that work on at least a few old systems. ++# [They come from Ultrix. What could be older than Ultrix?!! ;)] ++ ++# Character class describing NM global symbol codes. ++symcode='[BCDEGRST]' ++ ++# Regexp to match symbols that can be accessed directly from C. ++sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ++ ++# Define system-specific variables. ++case $host_os in ++aix*) ++ symcode='[BCDT]' ++ ;; ++cygwin* | mingw* | pw32* | cegcc*) ++ symcode='[ABCDGISTW]' ++ ;; ++hpux*) ++ if test "$host_cpu" = ia64; then ++ symcode='[ABCDEGRST]' ++ fi ++ ;; ++irix* | nonstopux*) ++ symcode='[BCDEGRST]' ++ ;; ++osf*) ++ symcode='[BCDEGQRST]' ++ ;; ++solaris*) ++ symcode='[BDRT]' ++ ;; ++sco3.2v5*) ++ symcode='[DT]' ++ ;; ++sysv4.2uw2*) ++ symcode='[DT]' ++ ;; ++sysv5* | sco5v6* | unixware* | OpenUNIX*) ++ symcode='[ABDT]' ++ ;; ++sysv4) ++ symcode='[DFNSTU]' ++ ;; ++esac ++ ++# If we're using GNU nm, then use its standard symbol codes. ++case `$NM -V 2>&1` in ++*GNU* | *'with BFD'*) ++ symcode='[ABCDGIRSTW]' ;; ++esac ++ ++# Transform an extracted symbol line into a proper C declaration. ++# Some systems (esp. on ia64) link data and code symbols differently, ++# so use this general approach. ++lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ++ ++# Transform an extracted symbol line into symbol name and symbol address ++lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" ++ ++# Handle CRLF in mingw tool chain ++opt_cr= ++case $build_os in ++mingw*) ++ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ++ ;; ++esac ++ ++# Try without a prefix underscore, then with it. ++for ac_symprfx in "" "_"; do ++ ++ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. ++ symxfrm="\\1 $ac_symprfx\\2 \\2" ++ ++ # Write the raw and C identifiers. ++ if test "$lt_cv_nm_interface" = "MS dumpbin"; then ++ # Fake it for dumpbin and say T for any non-static function ++ # and D for any global variable. ++ # Also find C++ and __fastcall symbols from MSVC++, ++ # which start with @ or ?. ++ lt_cv_sys_global_symbol_pipe="$AWK '"\ ++" {last_section=section; section=\$ 3};"\ ++" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ ++" \$ 0!~/External *\|/{next};"\ ++" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ ++" {if(hide[section]) next};"\ ++" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ ++" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ ++" s[1]~/^[@?]/{print s[1], s[1]; next};"\ ++" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ ++" ' prfx=^$ac_symprfx" ++ else ++ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" ++ fi ++ ++ # Check to see that the pipe works correctly. ++ pipe_works=no ++ ++ rm -f conftest* ++ cat > conftest.$ac_ext <<_LT_EOF ++#ifdef __cplusplus ++extern "C" { ++#endif ++char nm_test_var; ++void nm_test_func(void); ++void nm_test_func(void){} ++#ifdef __cplusplus ++} ++#endif ++int main(){nm_test_var='a';nm_test_func();return(0);} ++_LT_EOF ++ ++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # Now try to grab the symbols. ++ nlist=conftest.nm ++ if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 ++ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && test -s "$nlist"; then ++ # Try sorting and uniquifying the output. ++ if sort "$nlist" | uniq > "$nlist"T; then ++ mv -f "$nlist"T "$nlist" ++ else ++ rm -f "$nlist"T ++ fi ++ ++ # Make sure that we snagged all the symbols we need. ++ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then ++ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then ++ cat <<_LT_EOF > conftest.$ac_ext ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++_LT_EOF ++ # Now generate the symbol file. ++ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' ++ ++ cat <<_LT_EOF >> conftest.$ac_ext ++ ++/* The mapping between symbol names and symbols. */ ++const struct { ++ const char *name; ++ void *address; ++} ++lt__PROGRAM__LTX_preloaded_symbols[] = ++{ ++ { "@PROGRAM@", (void *) 0 }, ++_LT_EOF ++ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext ++ cat <<\_LT_EOF >> conftest.$ac_ext ++ {0, (void *) 0} ++}; ++ ++/* This works around a problem in FreeBSD linker */ ++#ifdef FREEBSD_WORKAROUND ++static const void *lt_preloaded_setup() { ++ return lt__PROGRAM__LTX_preloaded_symbols; ++} ++#endif ++ ++#ifdef __cplusplus ++} ++#endif ++_LT_EOF ++ # Now try linking the two files. ++ mv conftest.$ac_objext conftstm.$ac_objext ++ lt_save_LIBS="$LIBS" ++ lt_save_CFLAGS="$CFLAGS" ++ LIBS="conftstm.$ac_objext" ++ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" ++ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && test -s conftest${ac_exeext}; then ++ pipe_works=yes ++ fi ++ LIBS="$lt_save_LIBS" ++ CFLAGS="$lt_save_CFLAGS" ++ else ++ echo "cannot find nm_test_func in $nlist" >&5 ++ fi ++ else ++ echo "cannot find nm_test_var in $nlist" >&5 ++ fi ++ else ++ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ++ fi ++ else ++ echo "$progname: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ fi ++ rm -rf conftest* conftst* ++ ++ # Do not use the global_symbol_pipe unless it works. ++ if test "$pipe_works" = yes; then ++ break ++ else ++ lt_cv_sys_global_symbol_pipe= ++ fi ++done ++ ++fi ++ ++if test -z "$lt_cv_sys_global_symbol_pipe"; then ++ lt_cv_sys_global_symbol_to_cdecl= ++fi ++if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then ++ { $as_echo "$as_me:$LINENO: result: failed" >&5 ++$as_echo "failed" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: ok" >&5 ++$as_echo "ok" >&6; } ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# Check whether --enable-libtool-lock was given. ++if test "${enable_libtool_lock+set}" = set; then ++ enableval=$enable_libtool_lock; ++fi ++ ++test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ++ ++# Some flags need to be propagated to the compiler or linker for good ++# libtool support. ++case $host in ++ia64-*-hpux*) ++ # Find out which ABI we are using. ++ echo 'int i;' > conftest.$ac_ext ++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *ELF-32*) ++ HPUX_IA64_MODE="32" ++ ;; ++ *ELF-64*) ++ HPUX_IA64_MODE="64" ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++*-*-irix6*) ++ # Find out which ABI we are using. ++ echo '#line 8589 "configure"' > conftest.$ac_ext ++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ if test "$lt_cv_prog_gnu_ld" = yes; then ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -melf32bsmip" ++ ;; ++ *N32*) ++ LD="${LD-ld} -melf32bmipn32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -melf64bmip" ++ ;; ++ esac ++ else ++ case `/usr/bin/file conftest.$ac_objext` in ++ *32-bit*) ++ LD="${LD-ld} -32" ++ ;; ++ *N32*) ++ LD="${LD-ld} -n32" ++ ;; ++ *64-bit*) ++ LD="${LD-ld} -64" ++ ;; ++ esac ++ fi ++ fi ++ rm -rf conftest* ++ ;; ++ ++x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ ++s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ++ # Find out which ABI we are using. ++ echo 'int i;' > conftest.$ac_ext ++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ case `/usr/bin/file conftest.o` in ++ *32-bit*) ++ case $host in ++ x86_64-*kfreebsd*-gnu) ++ LD="${LD-ld} -m elf_i386_fbsd" ++ ;; ++ x86_64-*linux*) ++ LD="${LD-ld} -m elf_i386" ++ ;; ++ ppc64-*linux*|powerpc64-*linux*) ++ LD="${LD-ld} -m elf32ppclinux" ++ ;; ++ s390x-*linux*) ++ LD="${LD-ld} -m elf_s390" ++ ;; ++ sparc64-*linux*) ++ LD="${LD-ld} -m elf32_sparc" ++ ;; ++ esac ++ ;; ++ *64-bit*) ++ case $host in ++ x86_64-*kfreebsd*-gnu) ++ LD="${LD-ld} -m elf_x86_64_fbsd" ++ ;; ++ x86_64-*linux*) ++ LD="${LD-ld} -m elf_x86_64" ++ ;; ++ ppc*-*linux*|powerpc*-*linux*) ++ LD="${LD-ld} -m elf64ppc" ++ ;; ++ s390*-*linux*|s390*-*tpf*) ++ LD="${LD-ld} -m elf64_s390" ++ ;; ++ sparc*-*linux*) ++ LD="${LD-ld} -m elf64_sparc" ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++ ++*-*-sco3.2v5*) ++ # On SCO OpenServer 5, we need -belf to get full-featured binaries. ++ SAVE_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -belf" ++ { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 ++$as_echo_n "checking whether the C compiler needs -belf... " >&6; } ++if test "${lt_cv_cc_needs_belf+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ lt_cv_cc_needs_belf=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ lt_cv_cc_needs_belf=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 ++$as_echo "$lt_cv_cc_needs_belf" >&6; } ++ if test x"$lt_cv_cc_needs_belf" != x"yes"; then ++ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ++ CFLAGS="$SAVE_CFLAGS" ++ fi ++ ;; ++sparc*-*solaris*) ++ # Find out which ABI we are using. ++ echo 'int i;' > conftest.$ac_ext ++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ case `/usr/bin/file conftest.o` in ++ *64-bit*) ++ case $lt_cv_prog_gnu_ld in ++ yes*) LD="${LD-ld} -m elf64_sparc" ;; ++ *) ++ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then ++ LD="${LD-ld} -64" ++ fi ++ ;; ++ esac ++ ;; ++ esac ++ fi ++ rm -rf conftest* ++ ;; ++esac ++ ++need_locks="$enable_libtool_lock" ++ ++ ++ case $host_os in ++ rhapsody* | darwin*) ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_DSYMUTIL+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DSYMUTIL"; then ++ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++DSYMUTIL=$ac_cv_prog_DSYMUTIL ++if test -n "$DSYMUTIL"; then ++ { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 ++$as_echo "$DSYMUTIL" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DSYMUTIL"; then ++ ac_ct_DSYMUTIL=$DSYMUTIL ++ # Extract the first word of "dsymutil", so it can be a program name with args. ++set dummy dsymutil; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DSYMUTIL"; then ++ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL ++if test -n "$ac_ct_DSYMUTIL"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 ++$as_echo "$ac_ct_DSYMUTIL" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DSYMUTIL" = x; then ++ DSYMUTIL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DSYMUTIL=$ac_ct_DSYMUTIL ++ fi ++else ++ DSYMUTIL="$ac_cv_prog_DSYMUTIL" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. ++set dummy ${ac_tool_prefix}nmedit; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_NMEDIT+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$NMEDIT"; then ++ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++NMEDIT=$ac_cv_prog_NMEDIT ++if test -n "$NMEDIT"; then ++ { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 ++$as_echo "$NMEDIT" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_NMEDIT"; then ++ ac_ct_NMEDIT=$NMEDIT ++ # Extract the first word of "nmedit", so it can be a program name with args. ++set dummy nmedit; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_NMEDIT"; then ++ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_NMEDIT="nmedit" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT ++if test -n "$ac_ct_NMEDIT"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 ++$as_echo "$ac_ct_NMEDIT" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_NMEDIT" = x; then ++ NMEDIT=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ NMEDIT=$ac_ct_NMEDIT ++ fi ++else ++ NMEDIT="$ac_cv_prog_NMEDIT" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. ++set dummy ${ac_tool_prefix}lipo; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_LIPO+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$LIPO"; then ++ ac_cv_prog_LIPO="$LIPO" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_LIPO="${ac_tool_prefix}lipo" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++LIPO=$ac_cv_prog_LIPO ++if test -n "$LIPO"; then ++ { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 ++$as_echo "$LIPO" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_LIPO"; then ++ ac_ct_LIPO=$LIPO ++ # Extract the first word of "lipo", so it can be a program name with args. ++set dummy lipo; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_LIPO"; then ++ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_LIPO="lipo" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO ++if test -n "$ac_ct_LIPO"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 ++$as_echo "$ac_ct_LIPO" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_LIPO" = x; then ++ LIPO=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ LIPO=$ac_ct_LIPO ++ fi ++else ++ LIPO="$ac_cv_prog_LIPO" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}otool; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_OTOOL+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OTOOL"; then ++ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_OTOOL="${ac_tool_prefix}otool" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++OTOOL=$ac_cv_prog_OTOOL ++if test -n "$OTOOL"; then ++ { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 ++$as_echo "$OTOOL" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OTOOL"; then ++ ac_ct_OTOOL=$OTOOL ++ # Extract the first word of "otool", so it can be a program name with args. ++set dummy otool; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OTOOL"; then ++ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_OTOOL="otool" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL ++if test -n "$ac_ct_OTOOL"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 ++$as_echo "$ac_ct_OTOOL" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OTOOL" = x; then ++ OTOOL=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OTOOL=$ac_ct_OTOOL ++ fi ++else ++ OTOOL="$ac_cv_prog_OTOOL" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. ++set dummy ${ac_tool_prefix}otool64; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_OTOOL64+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OTOOL64"; then ++ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++OTOOL64=$ac_cv_prog_OTOOL64 ++if test -n "$OTOOL64"; then ++ { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 ++$as_echo "$OTOOL64" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OTOOL64"; then ++ ac_ct_OTOOL64=$OTOOL64 ++ # Extract the first word of "otool64", so it can be a program name with args. ++set dummy otool64; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OTOOL64"; then ++ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_OTOOL64="otool64" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 ++if test -n "$ac_ct_OTOOL64"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 ++$as_echo "$ac_ct_OTOOL64" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OTOOL64" = x; then ++ OTOOL64=":" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OTOOL64=$ac_ct_OTOOL64 ++ fi ++else ++ OTOOL64="$ac_cv_prog_OTOOL64" ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 ++$as_echo_n "checking for -single_module linker flag... " >&6; } ++if test "${lt_cv_apple_cc_single_mod+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_apple_cc_single_mod=no ++ if test -z "${LT_MULTI_MODULE}"; then ++ # By default we will add the -single_module flag. You can override ++ # by either setting the environment variable LT_MULTI_MODULE ++ # non-empty at configure time, or by adding -multi_module to the ++ # link flags. ++ rm -rf libconftest.dylib* ++ echo "int foo(void){return 1;}" > conftest.c ++ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++-dynamiclib -Wl,-single_module conftest.c" >&5 ++ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ ++ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err ++ _lt_result=$? ++ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then ++ lt_cv_apple_cc_single_mod=yes ++ else ++ cat conftest.err >&5 ++ fi ++ rm -rf libconftest.dylib* ++ rm -f conftest.* ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 ++$as_echo "$lt_cv_apple_cc_single_mod" >&6; } ++ { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 ++$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } ++if test "${lt_cv_ld_exported_symbols_list+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_ld_exported_symbols_list=no ++ save_LDFLAGS=$LDFLAGS ++ echo "_main" > conftest.sym ++ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ lt_cv_ld_exported_symbols_list=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ lt_cv_ld_exported_symbols_list=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS="$save_LDFLAGS" ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 ++$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } ++ case $host_os in ++ rhapsody* | darwin1.[012]) ++ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; ++ darwin1.*) ++ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; ++ darwin*) # darwin 5.x on ++ # if running on 10.5 or later, the deployment target defaults ++ # to the OS version, if on x86, and 10.4, the deployment ++ # target defaults to 10.4. Don't you love it? ++ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in ++ 10.0,*86*-darwin8*|10.0,*-darwin[91]*) ++ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; ++ 10.[012]*) ++ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; ++ 10.*) ++ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; ++ esac ++ ;; ++ esac ++ if test "$lt_cv_apple_cc_single_mod" = "yes"; then ++ _lt_dar_single_mod='$single_module' ++ fi ++ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then ++ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' ++ else ++ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' ++ fi ++ if test "$DSYMUTIL" != ":"; then ++ _lt_dsymutil='~$DSYMUTIL $lib || :' ++ else ++ _lt_dsymutil= ++ fi ++ ;; ++ esac ++ ++ ++for ac_header in dlfcn.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++ ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ eval "$as_ac_Header=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$as_ac_Header=no" ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++# Set options ++enable_win32_dll=yes ++ ++case $host in ++*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. ++set dummy ${ac_tool_prefix}as; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_AS+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$AS"; then ++ ac_cv_prog_AS="$AS" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_AS="${ac_tool_prefix}as" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++AS=$ac_cv_prog_AS ++if test -n "$AS"; then ++ { $as_echo "$as_me:$LINENO: result: $AS" >&5 ++$as_echo "$AS" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_AS"; then ++ ac_ct_AS=$AS ++ # Extract the first word of "as", so it can be a program name with args. ++set dummy as; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_AS+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_AS"; then ++ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_AS="as" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_AS=$ac_cv_prog_ac_ct_AS ++if test -n "$ac_ct_AS"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 ++$as_echo "$ac_ct_AS" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_AS" = x; then ++ AS="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ AS=$ac_ct_AS ++ fi ++else ++ AS="$ac_cv_prog_AS" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. ++set dummy ${ac_tool_prefix}dlltool; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_DLLTOOL+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$DLLTOOL"; then ++ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++DLLTOOL=$ac_cv_prog_DLLTOOL ++if test -n "$DLLTOOL"; then ++ { $as_echo "$as_me:$LINENO: result: $DLLTOOL" >&5 ++$as_echo "$DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_DLLTOOL"; then ++ ac_ct_DLLTOOL=$DLLTOOL ++ # Extract the first word of "dlltool", so it can be a program name with args. ++set dummy dlltool; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_DLLTOOL"; then ++ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_DLLTOOL="dlltool" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL ++if test -n "$ac_ct_DLLTOOL"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 ++$as_echo "$ac_ct_DLLTOOL" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_DLLTOOL" = x; then ++ DLLTOOL="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ DLLTOOL=$ac_ct_DLLTOOL ++ fi ++else ++ DLLTOOL="$ac_cv_prog_DLLTOOL" ++fi ++ ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. ++set dummy ${ac_tool_prefix}objdump; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_OBJDUMP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$OBJDUMP"; then ++ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++OBJDUMP=$ac_cv_prog_OBJDUMP ++if test -n "$OBJDUMP"; then ++ { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 ++$as_echo "$OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_OBJDUMP"; then ++ ac_ct_OBJDUMP=$OBJDUMP ++ # Extract the first word of "objdump", so it can be a program name with args. ++set dummy objdump; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_OBJDUMP"; then ++ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_OBJDUMP="objdump" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP ++if test -n "$ac_ct_OBJDUMP"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 ++$as_echo "$ac_ct_OBJDUMP" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_OBJDUMP" = x; then ++ OBJDUMP="false" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ OBJDUMP=$ac_ct_OBJDUMP ++ fi ++else ++ OBJDUMP="$ac_cv_prog_OBJDUMP" ++fi ++ ++ ;; ++esac ++ ++test -z "$AS" && AS=as ++ ++ ++ ++ ++ ++test -z "$DLLTOOL" && DLLTOOL=dlltool ++ ++ ++ ++ ++ ++test -z "$OBJDUMP" && OBJDUMP=objdump ++ ++ ++ ++ ++ ++ ++ ++ enable_dlopen=no ++ ++ ++ ++ # Check whether --enable-shared was given. ++if test "${enable_shared+set}" = set; then ++ enableval=$enable_shared; p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_shared=yes ;; ++ no) enable_shared=no ;; ++ *) ++ enable_shared=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ++ for pkg in $enableval; do ++ IFS="$lt_save_ifs" ++ if test "X$pkg" = "X$p"; then ++ enable_shared=yes ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ;; ++ esac ++else ++ enable_shared=yes ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ # Check whether --enable-static was given. ++if test "${enable_static+set}" = set; then ++ enableval=$enable_static; p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_static=yes ;; ++ no) enable_static=no ;; ++ *) ++ enable_static=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ++ for pkg in $enableval; do ++ IFS="$lt_save_ifs" ++ if test "X$pkg" = "X$p"; then ++ enable_static=yes ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ;; ++ esac ++else ++ enable_static=yes ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# Check whether --with-pic was given. ++if test "${with_pic+set}" = set; then ++ withval=$with_pic; pic_mode="$withval" ++else ++ pic_mode=default ++fi ++ ++ ++test -z "$pic_mode" && pic_mode=default ++ ++ ++ ++ ++ ++ ++ ++ # Check whether --enable-fast-install was given. ++if test "${enable_fast_install+set}" = set; then ++ enableval=$enable_fast_install; p=${PACKAGE-default} ++ case $enableval in ++ yes) enable_fast_install=yes ;; ++ no) enable_fast_install=no ;; ++ *) ++ enable_fast_install=no ++ # Look at the argument we got. We use all the common list separators. ++ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ++ for pkg in $enableval; do ++ IFS="$lt_save_ifs" ++ if test "X$pkg" = "X$p"; then ++ enable_fast_install=yes ++ fi ++ done ++ IFS="$lt_save_ifs" ++ ;; ++ esac ++else ++ enable_fast_install=yes ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# This can be used to rebuild libtool when needed ++LIBTOOL_DEPS="$ltmain" ++ ++# Always use our own libtool. ++LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++test -z "$LN_S" && LN_S="ln -s" ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++if test -n "${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++fi ++ ++{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 ++$as_echo_n "checking for objdir... " >&6; } ++if test "${lt_cv_objdir+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ rm -f .libs 2>/dev/null ++mkdir .libs 2>/dev/null ++if test -d .libs; then ++ lt_cv_objdir=.libs ++else ++ # MS-DOS does not allow filenames that begin with a dot. ++ lt_cv_objdir=_libs ++fi ++rmdir .libs 2>/dev/null ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 ++$as_echo "$lt_cv_objdir" >&6; } ++objdir=$lt_cv_objdir ++ ++ ++ ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define LT_OBJDIR "$lt_cv_objdir/" ++_ACEOF ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++case $host_os in ++aix3*) ++ # AIX sometimes has problems with the GCC collect2 program. For some ++ # reason, if we set the COLLECT_NAMES environment variable, the problems ++ # vanish in a puff of smoke. ++ if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++ fi ++ ;; ++esac ++ ++# Sed substitution that helps us do robust quoting. It backslashifies ++# metacharacters that are still active within double-quoted strings. ++sed_quote_subst='s/\(["`$\\]\)/\\\1/g' ++ ++# Same as above, but do not quote variable references. ++double_quote_subst='s/\(["`\\]\)/\\\1/g' ++ ++# Sed substitution to delay expansion of an escaped shell variable in a ++# double_quote_subst'ed string. ++delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ++ ++# Sed substitution to delay expansion of an escaped single quote. ++delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' ++ ++# Sed substitution to avoid accidental globbing in evaled expressions ++no_glob_subst='s/\*/\\\*/g' ++ ++# Global variables: ++ofile=libtool ++can_build_shared=yes ++ ++# All known linkers require a `.a' archive for static linking (except MSVC, ++# which needs '.lib'). ++libext=a ++ ++with_gnu_ld="$lt_cv_prog_gnu_ld" ++ ++old_CC="$CC" ++old_CFLAGS="$CFLAGS" ++ ++# Set sane defaults for various variables ++test -z "$CC" && CC=cc ++test -z "$LTCC" && LTCC=$CC ++test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS ++test -z "$LD" && LD=ld ++test -z "$ac_objext" && ac_objext=o ++ ++for cc_temp in $compiler""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++done ++cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ++ ++ ++# Only perform the check for file, if the check method requires it ++test -z "$MAGIC_CMD" && MAGIC_CMD=file ++case $deplibs_check_method in ++file_magic*) ++ if test "$file_magic_cmd" = '$MAGIC_CMD'; then ++ { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 ++$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } ++if test "${lt_cv_path_MAGIC_CMD+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ case $MAGIC_CMD in ++[\\/*] | ?:[\\/]*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++*) ++ lt_save_MAGIC_CMD="$MAGIC_CMD" ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" ++ for ac_dir in $ac_dummy; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/${ac_tool_prefix}file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++_LT_EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$lt_save_ifs" ++ MAGIC_CMD="$lt_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 ++$as_echo "$MAGIC_CMD" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ ++ ++ ++if test -z "$lt_cv_path_MAGIC_CMD"; then ++ if test -n "$ac_tool_prefix"; then ++ { $as_echo "$as_me:$LINENO: checking for file" >&5 ++$as_echo_n "checking for file... " >&6; } ++if test "${lt_cv_path_MAGIC_CMD+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ case $MAGIC_CMD in ++[\\/*] | ?:[\\/]*) ++ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ++ ;; ++*) ++ lt_save_MAGIC_CMD="$MAGIC_CMD" ++ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ++ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" ++ for ac_dir in $ac_dummy; do ++ IFS="$lt_save_ifs" ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/file; then ++ lt_cv_path_MAGIC_CMD="$ac_dir/file" ++ if test -n "$file_magic_test_file"; then ++ case $deplibs_check_method in ++ "file_magic "*) ++ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ++ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ++ $EGREP "$file_magic_regex" > /dev/null; then ++ : ++ else ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the command libtool uses to detect shared libraries, ++*** $file_magic_cmd, produces output that libtool cannot recognize. ++*** The result is that libtool may fail to recognize shared libraries ++*** as such. This will affect the creation of libtool libraries that ++*** depend on shared libraries, but programs linked with such libtool ++*** libraries will work regardless of this problem. Nevertheless, you ++*** may want to report the problem to your system manager and/or to ++*** bug-libtool@gnu.org ++ ++_LT_EOF ++ fi ;; ++ esac ++ fi ++ break ++ fi ++ done ++ IFS="$lt_save_ifs" ++ MAGIC_CMD="$lt_save_MAGIC_CMD" ++ ;; ++esac ++fi ++ ++MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ++if test -n "$MAGIC_CMD"; then ++ { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 ++$as_echo "$MAGIC_CMD" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ else ++ MAGIC_CMD=: ++ fi ++fi ++ ++ fi ++ ;; ++esac ++ ++# Use C for the default configuration in the libtool script ++ ++lt_save_CC="$CC" ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++# Source file extension for C test sources. ++ac_ext=c ++ ++# Object file extension for compiled C test sources. ++objext=o ++objext=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code="int some_variable = 0;" ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code='int main(){return(0);}' ++ ++ ++ ++ ++ ++ ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++ ++# Save the default compiler, since it gets overwritten when the other ++# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. ++compiler_DEFAULT=$CC ++ ++# save warnings/boilerplate of simple test code ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_compile_test_code" >conftest.$ac_ext ++eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_compiler_boilerplate=`cat conftest.err` ++$RM conftest* ++ ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_link_test_code" >conftest.$ac_ext ++eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_linker_boilerplate=`cat conftest.err` ++$RM -r conftest* ++ ++ ++## CAVEAT EMPTOR: ++## There is no encapsulation within the following macros, do not change ++## the running order or otherwise move them around unless you know exactly ++## what you are doing... ++if test -n "$compiler"; then ++ ++lt_prog_compiler_no_builtin_flag= ++ ++if test "$GCC" = yes; then ++ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ++ ++ { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ++$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } ++if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_rtti_exceptions=no ++ ac_outfile=conftest.$ac_objext ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="-fno-rtti -fno-exceptions" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:10256: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&5 ++ echo "$as_me:10260: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_rtti_exceptions=yes ++ fi ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 ++$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } ++ ++if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then ++ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" ++else ++ : ++fi ++ ++fi ++ ++ ++ ++ ++ ++ ++ lt_prog_compiler_wl= ++lt_prog_compiler_pic= ++lt_prog_compiler_static= ++ ++{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 ++$as_echo_n "checking for $compiler option to produce PIC... " >&6; } ++ ++ if test "$GCC" = yes; then ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_static='-static' ++ ++ case $host_os in ++ aix*) ++ # All AIX code is PIC. ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_prog_compiler_static='-Bstatic' ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ m68k) ++ # FIXME: we need at least 68020 code to build shared libraries, but ++ # adding the `-m68020' flag to GCC prevents building anything better, ++ # like `-m68040'. ++ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ++ ;; ++ esac ++ ;; ++ ++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ++ # PIC is the default for these OSes. ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ # Although the cygwin gcc ignores -fPIC, still need this for old-style ++ # (--disable-auto-import) libraries ++ lt_prog_compiler_pic='-DDLL_EXPORT' ++ ;; ++ ++ darwin* | rhapsody*) ++ # PIC is the default on this platform ++ # Common symbols not allowed in MH_DYLIB files ++ lt_prog_compiler_pic='-fno-common' ++ ;; ++ ++ hpux*) ++ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ++ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ++ # sets the default TLS model and affects inlining. ++ case $host_cpu in ++ hppa*64*) ++ # +Z the default ++ ;; ++ *) ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ esac ++ ;; ++ ++ interix[3-9]*) ++ # Interix 3.x gcc -fpic/-fPIC options generate broken code. ++ # Instead, we relocate shared libraries at runtime. ++ ;; ++ ++ msdosdjgpp*) ++ # Just because we use GCC doesn't mean we suddenly get shared libraries ++ # on systems that don't support them. ++ lt_prog_compiler_can_build_shared=no ++ enable_shared=no ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ lt_prog_compiler_pic='-fPIC -shared' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ lt_prog_compiler_pic=-Kconform_pic ++ fi ++ ;; ++ ++ *) ++ lt_prog_compiler_pic='-fPIC' ++ ;; ++ esac ++ else ++ # PORTME Check for flag to pass linker flags through the system compiler. ++ case $host_os in ++ aix*) ++ lt_prog_compiler_wl='-Wl,' ++ if test "$host_cpu" = ia64; then ++ # AIX 5 now supports IA64 processor ++ lt_prog_compiler_static='-Bstatic' ++ else ++ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' ++ fi ++ ;; ++ ++ mingw* | cygwin* | pw32* | os2* | cegcc*) ++ # This hack is so that the source file can tell whether it is being ++ # built for inclusion in a dll (and should export symbols for example). ++ lt_prog_compiler_pic='-DDLL_EXPORT' ++ ;; ++ ++ hpux9* | hpux10* | hpux11*) ++ lt_prog_compiler_wl='-Wl,' ++ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ++ # not for PA HP-UX. ++ case $host_cpu in ++ hppa*64*|ia64*) ++ # +Z the default ++ ;; ++ *) ++ lt_prog_compiler_pic='+Z' ++ ;; ++ esac ++ # Is there a better lt_prog_compiler_static that works with the bundled CC? ++ lt_prog_compiler_static='${wl}-a ${wl}archive' ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ lt_prog_compiler_wl='-Wl,' ++ # PIC (with -KPIC) is the default. ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ ++ linux* | k*bsd*-gnu) ++ case $cc_basename in ++ # old Intel for x86_64 which still supported -KPIC. ++ ecc*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-static' ++ ;; ++ # icc used to be incompatible with GCC. ++ # ICC 10 doesn't accept -KPIC any more. ++ icc* | ifort*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fPIC' ++ lt_prog_compiler_static='-static' ++ ;; ++ # Lahey Fortran 8.1. ++ lf95*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='--shared' ++ lt_prog_compiler_static='--static' ++ ;; ++ pgcc* | pgf77* | pgf90* | pgf95*) ++ # Portland Group compilers (*not* the Pentium gcc compiler, ++ # which looks to be a dead project) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-fpic' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ccc*) ++ lt_prog_compiler_wl='-Wl,' ++ # All Alpha code is PIC. ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ xl*) ++ # IBM XL C 8.0/Fortran 10.1 on PPC ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-qpic' ++ lt_prog_compiler_static='-qstaticlink' ++ ;; ++ *) ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) ++ # Sun C 5.9 ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ lt_prog_compiler_wl='-Wl,' ++ ;; ++ *Sun\ F*) ++ # Sun Fortran 8.3 passes all unrecognized flags to the linker ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ lt_prog_compiler_wl='' ++ ;; ++ esac ++ ;; ++ esac ++ ;; ++ ++ newsos6) ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ *nto* | *qnx*) ++ # QNX uses GNU C++, but need to define -shared option too, otherwise ++ # it will coredump. ++ lt_prog_compiler_pic='-fPIC -shared' ++ ;; ++ ++ osf3* | osf4* | osf5*) ++ lt_prog_compiler_wl='-Wl,' ++ # All OSF/1 code is PIC. ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ ++ rdos*) ++ lt_prog_compiler_static='-non_shared' ++ ;; ++ ++ solaris*) ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ case $cc_basename in ++ f77* | f90* | f95*) ++ lt_prog_compiler_wl='-Qoption ld ';; ++ *) ++ lt_prog_compiler_wl='-Wl,';; ++ esac ++ ;; ++ ++ sunos4*) ++ lt_prog_compiler_wl='-Qoption ld ' ++ lt_prog_compiler_pic='-PIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ sysv4 | sysv4.2uw2* | sysv4.3*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec ;then ++ lt_prog_compiler_pic='-Kconform_pic' ++ lt_prog_compiler_static='-Bstatic' ++ fi ++ ;; ++ ++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_pic='-KPIC' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ unicos*) ++ lt_prog_compiler_wl='-Wl,' ++ lt_prog_compiler_can_build_shared=no ++ ;; ++ ++ uts4*) ++ lt_prog_compiler_pic='-pic' ++ lt_prog_compiler_static='-Bstatic' ++ ;; ++ ++ *) ++ lt_prog_compiler_can_build_shared=no ++ ;; ++ esac ++ fi ++ ++case $host_os in ++ # For platforms which do not support PIC, -DPIC is meaningless: ++ *djgpp*) ++ lt_prog_compiler_pic= ++ ;; ++ *) ++ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 ++$as_echo "$lt_prog_compiler_pic" >&6; } ++ ++ ++ ++ ++ ++ ++# ++# Check to make sure the PIC flag actually works. ++# ++if test -n "$lt_prog_compiler_pic"; then ++ { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 ++$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } ++if test "${lt_cv_prog_compiler_pic_works+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_pic_works=no ++ ac_outfile=conftest.$ac_objext ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ # The option is referenced via a variable to avoid confusing sed. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:10595: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>conftest.err) ++ ac_status=$? ++ cat conftest.err >&5 ++ echo "$as_me:10599: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s "$ac_outfile"; then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings other than the usual output. ++ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_pic_works=yes ++ fi ++ fi ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 ++$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } ++ ++if test x"$lt_cv_prog_compiler_pic_works" = xyes; then ++ case $lt_prog_compiler_pic in ++ "" | " "*) ;; ++ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; ++ esac ++else ++ lt_prog_compiler_pic= ++ lt_prog_compiler_can_build_shared=no ++fi ++ ++fi ++ ++ ++ ++ ++ ++ ++# ++# Check to make sure the static flag actually works. ++# ++wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" ++{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 ++$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } ++if test "${lt_cv_prog_compiler_static_works+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_static_works=no ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS $lt_tmp_static_flag" ++ echo "$lt_simple_link_test_code" > conftest.$ac_ext ++ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then ++ # The linker can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ if test -s conftest.err; then ++ # Append any errors to the config.log. ++ cat conftest.err 1>&5 ++ $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp ++ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 ++ if diff conftest.exp conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_static_works=yes ++ fi ++ else ++ lt_cv_prog_compiler_static_works=yes ++ fi ++ fi ++ $RM -r conftest* ++ LDFLAGS="$save_LDFLAGS" ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 ++$as_echo "$lt_cv_prog_compiler_static_works" >&6; } ++ ++if test x"$lt_cv_prog_compiler_static_works" = xyes; then ++ : ++else ++ lt_prog_compiler_static= ++fi ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 ++$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ++if test "${lt_cv_prog_compiler_c_o+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_c_o=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:10700: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&5 ++ echo "$as_me:10704: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_c_o=yes ++ fi ++ fi ++ chmod u+w . 2>&5 ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 ++$as_echo "$lt_cv_prog_compiler_c_o" >&6; } ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 ++$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } ++if test "${lt_cv_prog_compiler_c_o+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ lt_cv_prog_compiler_c_o=no ++ $RM -r conftest 2>/dev/null ++ mkdir conftest ++ cd conftest ++ mkdir out ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ lt_compiler_flag="-o out/conftest2.$ac_objext" ++ # Insert the option either (1) after the last *FLAGS variable, or ++ # (2) before a word containing "conftest.", or (3) at the end. ++ # Note that $ac_compile itself does not contain backslashes and begins ++ # with a dollar sign (not a hyphen), so the echo should work correctly. ++ lt_compile=`echo "$ac_compile" | $SED \ ++ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ ++ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ ++ -e 's:$: $lt_compiler_flag:'` ++ (eval echo "\"\$as_me:10755: $lt_compile\"" >&5) ++ (eval "$lt_compile" 2>out/conftest.err) ++ ac_status=$? ++ cat out/conftest.err >&5 ++ echo "$as_me:10759: \$? = $ac_status" >&5 ++ if (exit $ac_status) && test -s out/conftest2.$ac_objext ++ then ++ # The compiler can only warn and ignore the option if not recognized ++ # So say no if there are warnings ++ $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ++ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ++ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ++ lt_cv_prog_compiler_c_o=yes ++ fi ++ fi ++ chmod u+w . 2>&5 ++ $RM conftest* ++ # SGI C++ compiler will create directory out/ii_files/ for ++ # template instantiation ++ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files ++ $RM out/* && rmdir out ++ cd .. ++ $RM -r conftest ++ $RM conftest* ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 ++$as_echo "$lt_cv_prog_compiler_c_o" >&6; } ++ ++ ++ ++ ++hard_links="nottested" ++if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then ++ # do not overwrite the value of need_locks provided by the user ++ { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 ++$as_echo_n "checking if we can lock with hard links... " >&6; } ++ hard_links=yes ++ $RM conftest* ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ touch conftest.a ++ ln conftest.a conftest.b 2>&5 || hard_links=no ++ ln conftest.a conftest.b 2>/dev/null && hard_links=no ++ { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 ++$as_echo "$hard_links" >&6; } ++ if test "$hard_links" = no; then ++ { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 ++$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} ++ need_locks=warn ++ fi ++else ++ need_locks=no ++fi ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 ++$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ++ ++ runpath_var= ++ allow_undefined_flag= ++ always_export_symbols=no ++ archive_cmds= ++ archive_expsym_cmds= ++ compiler_needs_object=no ++ enable_shared_with_static_runtimes=no ++ export_dynamic_flag_spec= ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ++ hardcode_automatic=no ++ hardcode_direct=no ++ hardcode_direct_absolute=no ++ hardcode_libdir_flag_spec= ++ hardcode_libdir_flag_spec_ld= ++ hardcode_libdir_separator= ++ hardcode_minus_L=no ++ hardcode_shlibpath_var=unsupported ++ inherit_rpath=no ++ link_all_deplibs=unknown ++ module_cmds= ++ module_expsym_cmds= ++ old_archive_from_new_cmds= ++ old_archive_from_expsyms_cmds= ++ thread_safe_flag_spec= ++ whole_archive_flag_spec= ++ # include_expsyms should be a list of space-separated symbols to be *always* ++ # included in the symbol list ++ include_expsyms= ++ # exclude_expsyms can be an extended regexp of symbols to exclude ++ # it will be wrapped by ` (' and `)$', so one must not match beginning or ++ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', ++ # as well as any symbol that contains `d'. ++ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' ++ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out ++ # platforms (ab)use it in PIC code, but their linkers get confused if ++ # the symbol is explicitly referenced. Since portable code cannot ++ # rely on this symbol name, it's probably fine to never include it in ++ # preloaded symbol tables. ++ # Exclude shared library initialization/finalization symbols. ++ extract_expsyms_cmds= ++ ++ case $host_os in ++ cygwin* | mingw* | pw32* | cegcc*) ++ # FIXME: the MSVC++ port hasn't been tested in a loooong time ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ if test "$GCC" != yes; then ++ with_gnu_ld=no ++ fi ++ ;; ++ interix*) ++ # we just hope/assume this is gcc and not c89 (= MSVC++) ++ with_gnu_ld=yes ++ ;; ++ openbsd*) ++ with_gnu_ld=no ++ ;; ++ esac ++ ++ ld_shlibs=yes ++ if test "$with_gnu_ld" = yes; then ++ # If archive_cmds runs LD, not CC, wlarc should be empty ++ wlarc='${wl}' ++ ++ # Set some defaults for GNU ld with shared library support. These ++ # are reset later if shared libraries are not supported. Putting them ++ # here allows them to be overridden if necessary. ++ runpath_var=LD_RUN_PATH ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ export_dynamic_flag_spec='${wl}--export-dynamic' ++ # ancient GNU ld didn't support --whole-archive et. al. ++ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then ++ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ++ else ++ whole_archive_flag_spec= ++ fi ++ supports_anon_versioning=no ++ case `$LD -v 2>&1` in ++ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 ++ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... ++ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... ++ *\ 2.11.*) ;; # other 2.11 versions ++ *) supports_anon_versioning=yes ;; ++ esac ++ ++ # See if GNU ld supports shared libraries. ++ case $host_os in ++ aix[3-9]*) ++ # On AIX/PPC, the GNU linker is very broken ++ if test "$host_cpu" != ia64; then ++ ld_shlibs=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: the GNU linker, at least up to release 2.9.1, is reported ++*** to be unable to reliably create shared libraries on AIX. ++*** Therefore, libtool is disabling shared libraries support. If you ++*** really care for shared libraries, you may want to modify your PATH ++*** so that a non-GNU linker is found, and then restart. ++ ++_LT_EOF ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='' ++ ;; ++ m68k) ++ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ;; ++ esac ++ ;; ++ ++ beos*) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ allow_undefined_flag=unsupported ++ # Joseph Beckenbach says some releases of gcc ++ # support --undefined. This deserves some investigation. FIXME ++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, ++ # as there is no search path for DLLs. ++ hardcode_libdir_flag_spec='-L$libdir' ++ allow_undefined_flag=unsupported ++ always_export_symbols=no ++ enable_shared_with_static_runtimes=yes ++ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ++ ++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ # If the export-symbols file already is a .def file (1st line ++ # is EXPORTS), use it as is; otherwise, prepend... ++ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ++ cp $export_symbols $output_objdir/$soname.def; ++ else ++ echo EXPORTS > $output_objdir/$soname.def; ++ cat $export_symbols >> $output_objdir/$soname.def; ++ fi~ ++ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ interix[3-9]*) ++ hardcode_direct=no ++ hardcode_shlibpath_var=no ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ++ # Instead, shared libraries are loaded at an image base (0x10000000 by ++ # default) and relocated if they conflict, which is a slow very memory ++ # consuming and fragmenting process. To avoid this, we pick a random, ++ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ++ # time. Moving up from 0x10000000 also allows more sbrk(2) space. ++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ++ ;; ++ ++ gnu* | linux* | tpf* | k*bsd*-gnu) ++ tmp_diet=no ++ if test "$host_os" = linux-dietlibc; then ++ case $cc_basename in ++ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) ++ esac ++ fi ++ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ ++ && test "$tmp_diet" = no ++ then ++ tmp_addflag= ++ tmp_sharedflag='-shared' ++ case $cc_basename,$host_cpu in ++ pgcc*) # Portland Group C compiler ++ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ tmp_addflag=' $pic_flag' ++ ;; ++ pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ++ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ tmp_addflag=' $pic_flag -Mnomain' ;; ++ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ++ tmp_addflag=' -i_dynamic' ;; ++ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ++ tmp_addflag=' -i_dynamic -nofor_main' ;; ++ ifc* | ifort*) # Intel Fortran compiler ++ tmp_addflag=' -nofor_main' ;; ++ lf95*) # Lahey Fortran 8.1 ++ whole_archive_flag_spec= ++ tmp_sharedflag='--shared' ;; ++ xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) ++ tmp_sharedflag='-qmkshrobj' ++ tmp_addflag= ;; ++ esac ++ case `$CC -V 2>&1 | sed 5q` in ++ *Sun\ C*) # Sun C 5.9 ++ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object=yes ++ tmp_sharedflag='-G' ;; ++ *Sun\ F*) # Sun Fortran 8.3 ++ tmp_sharedflag='-G' ;; ++ esac ++ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ ++ if test "x$supports_anon_versioning" = xyes; then ++ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' ++ fi ++ ++ case $cc_basename in ++ xlf*) ++ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself ++ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' ++ hardcode_libdir_flag_spec= ++ hardcode_libdir_flag_spec_ld='-rpath $libdir' ++ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' ++ if test "x$supports_anon_versioning" = xyes; then ++ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ ++ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ ++ echo "local: *; };" >> $output_objdir/$libname.ver~ ++ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' ++ fi ++ ;; ++ esac ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ++ wlarc= ++ else ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ fi ++ ;; ++ ++ solaris*) ++ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ++ ld_shlibs=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: The releases 2.8.* of the GNU linker cannot reliably ++*** create shared libraries on Solaris systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.9.1 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ++ case `$LD -v 2>&1` in ++ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ++ ld_shlibs=no ++ cat <<_LT_EOF 1>&2 ++ ++*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not ++*** reliably create shared libraries on SCO systems. Therefore, libtool ++*** is disabling shared libraries support. We urge you to upgrade GNU ++*** binutils to release 2.16.91.0.3 or newer. Another option is to modify ++*** your PATH or compiler configuration so that the native linker is ++*** used, and then restart. ++ ++_LT_EOF ++ ;; ++ *) ++ # For security reasons, it is highly recommended that you always ++ # use absolute paths for naming shared libraries, and exclude the ++ # DT_RUNPATH tag from executables and libraries. But doing so ++ # requires that you compile everything twice, which is a pain. ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ;; ++ ++ sunos4*) ++ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ wlarc= ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ esac ++ ++ if test "$ld_shlibs" = no; then ++ runpath_var= ++ hardcode_libdir_flag_spec= ++ export_dynamic_flag_spec= ++ whole_archive_flag_spec= ++ fi ++ else ++ # PORTME fill in a description of your system's linker (not GNU ld) ++ case $host_os in ++ aix3*) ++ allow_undefined_flag=unsupported ++ always_export_symbols=yes ++ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ++ # Note: this linker hardcodes the directories in LIBPATH if there ++ # are no directories specified by -L. ++ hardcode_minus_L=yes ++ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then ++ # Neither direct hardcoding nor static linking is supported with a ++ # broken collect2. ++ hardcode_direct=unsupported ++ fi ++ ;; ++ ++ aix[4-9]*) ++ if test "$host_cpu" = ia64; then ++ # On IA64, the linker does run time linking by default, so we don't ++ # have to do anything special. ++ aix_use_runtimelinking=no ++ exp_sym_flag='-Bexport' ++ no_entry_flag="" ++ else ++ # If we're using GNU nm, then we don't want the "-C" option. ++ # -C means demangle to AIX nm, but means don't demangle with GNU nm ++ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then ++ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ else ++ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' ++ fi ++ aix_use_runtimelinking=no ++ ++ # Test if we are trying to use run time linking or normal ++ # AIX style linking. If -brtl is somewhere in LDFLAGS, we ++ # need to do runtime linking. ++ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) ++ for ld_flag in $LDFLAGS; do ++ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then ++ aix_use_runtimelinking=yes ++ break ++ fi ++ done ++ ;; ++ esac ++ ++ exp_sym_flag='-bexport' ++ no_entry_flag='-bnoentry' ++ fi ++ ++ # When large executables or shared objects are built, AIX ld can ++ # have problems creating the table of contents. If linking a library ++ # or program results in "error TOC overflow" add -mminimal-toc to ++ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ++ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ++ ++ archive_cmds='' ++ hardcode_direct=yes ++ hardcode_direct_absolute=yes ++ hardcode_libdir_separator=':' ++ link_all_deplibs=yes ++ file_list_spec='${wl}-f,' ++ ++ if test "$GCC" = yes; then ++ case $host_os in aix4.[012]|aix4.[012].*) ++ # We only want to do this on AIX 4.2 and lower, the check ++ # below for broken collect2 doesn't work under 4.3+ ++ collect2name=`${CC} -print-prog-name=collect2` ++ if test -f "$collect2name" && ++ strings "$collect2name" | $GREP resolve_lib_name >/dev/null ++ then ++ # We have reworked collect2 ++ : ++ else ++ # We have old collect2 ++ hardcode_direct=unsupported ++ # It fails to find uninstalled libraries when the uninstalled ++ # path is not listed in the libpath. Setting hardcode_minus_L ++ # to unsupported forces relinking ++ hardcode_minus_L=yes ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_libdir_separator= ++ fi ++ ;; ++ esac ++ shared_flag='-shared' ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag="$shared_flag "'${wl}-G' ++ fi ++ else ++ # not using gcc ++ if test "$host_cpu" = ia64; then ++ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release ++ # chokes on -Wl,-G. The following line is correct: ++ shared_flag='-G' ++ else ++ if test "$aix_use_runtimelinking" = yes; then ++ shared_flag='${wl}-G' ++ else ++ shared_flag='${wl}-bM:SRE' ++ fi ++ fi ++ fi ++ ++ export_dynamic_flag_spec='${wl}-bexpall' ++ # It seems that -bexpall does not export symbols beginning with ++ # underscore (_), so it is better to generate a list of symbols to export. ++ always_export_symbols=yes ++ if test "$aix_use_runtimelinking" = yes; then ++ # Warning - without using the other runtime loading flags (-brtl), ++ # -berok will link without error, but may produce a broken library. ++ allow_undefined_flag='-berok' ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ++lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\(.*\)$/\1/ ++ p ++ } ++ }' ++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++# Check for a 64-bit object if we didn't find anything. ++if test -z "$aix_libpath"; then ++ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++fi ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ++ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ++ else ++ if test "$host_cpu" = ia64; then ++ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ++ allow_undefined_flag="-z nodefs" ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" ++ else ++ # Determine the default libpath from the value encoded in an ++ # empty executable. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ++lt_aix_libpath_sed=' ++ /Import File Strings/,/^$/ { ++ /^0/ { ++ s/^0 *\(.*\)$/\1/ ++ p ++ } ++ }' ++aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++# Check for a 64-bit object if we didn't find anything. ++if test -z "$aix_libpath"; then ++ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` ++fi ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ++ ++ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ++ # Warning - without using the other run time loading flags, ++ # -berok will link without error, but may produce a broken library. ++ no_undefined_flag=' ${wl}-bernotok' ++ allow_undefined_flag=' ${wl}-berok' ++ # Exported symbols can be pulled into shared objects from archives ++ whole_archive_flag_spec='$convenience' ++ archive_cmds_need_lc=yes ++ # This is similar to how AIX traditionally builds its shared libraries. ++ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' ++ fi ++ fi ++ ;; ++ ++ amigaos*) ++ case $host_cpu in ++ powerpc) ++ # see comment about AmigaOS4 .so support ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ++ archive_expsym_cmds='' ++ ;; ++ m68k) ++ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ ;; ++ esac ++ ;; ++ ++ bsdi[45]*) ++ export_dynamic_flag_spec=-rdynamic ++ ;; ++ ++ cygwin* | mingw* | pw32* | cegcc*) ++ # When not using gcc, we currently assume that we are using ++ # Microsoft Visual C++. ++ # hardcode_libdir_flag_spec is actually meaningless, as there is ++ # no search path for DLLs. ++ hardcode_libdir_flag_spec=' ' ++ allow_undefined_flag=unsupported ++ # Tell ltmain to make .lib files, not .a files. ++ libext=lib ++ # Tell ltmain to make .dll files, not .so files. ++ shrext_cmds=".dll" ++ # FIXME: Setting linknames here is a bad hack. ++ archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ++ # The linker will automatically build a .lib file if we build a DLL. ++ old_archive_from_new_cmds='true' ++ # FIXME: Should let the user specify the lib program. ++ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' ++ fix_srcfile_path='`cygpath -w "$srcfile"`' ++ enable_shared_with_static_runtimes=yes ++ ;; ++ ++ darwin* | rhapsody*) ++ ++ ++ archive_cmds_need_lc=no ++ hardcode_direct=no ++ hardcode_automatic=yes ++ hardcode_shlibpath_var=unsupported ++ whole_archive_flag_spec='' ++ link_all_deplibs=yes ++ allow_undefined_flag="$_lt_dar_allow_undefined" ++ case $cc_basename in ++ ifort*) _lt_dar_can_shared=yes ;; ++ *) _lt_dar_can_shared=$GCC ;; ++ esac ++ if test "$_lt_dar_can_shared" = "yes"; then ++ output_verbose_link_cmd=echo ++ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" ++ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" ++ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" ++ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" ++ ++ else ++ ld_shlibs=no ++ fi ++ ++ ;; ++ ++ dgux*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ freebsd1*) ++ ld_shlibs=no ++ ;; ++ ++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ++ # support. Future versions do this automatically, but an explicit c++rt0.o ++ # does not break anything, and helps significantly (at the cost of a little ++ # extra space). ++ freebsd2.2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # Unfortunately, older versions of FreeBSD 2 do not have this feature. ++ freebsd2*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ++ freebsd* | dragonfly*) ++ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ hpux9*) ++ if test "$GCC" = yes; then ++ archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ else ++ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ++ fi ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ export_dynamic_flag_spec='${wl}-E' ++ ;; ++ ++ hpux10*) ++ if test "$GCC" = yes -a "$with_gnu_ld" = no; then ++ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ if test "$with_gnu_ld" = no; then ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_flag_spec_ld='+b $libdir' ++ hardcode_libdir_separator=: ++ hardcode_direct=yes ++ hardcode_direct_absolute=yes ++ export_dynamic_flag_spec='${wl}-E' ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ fi ++ ;; ++ ++ hpux11*) ++ if test "$GCC" = yes -a "$with_gnu_ld" = no; then ++ case $host_cpu in ++ hppa*64*) ++ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ else ++ case $host_cpu in ++ hppa*64*) ++ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ ia64*) ++ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ *) ++ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ++ ;; ++ esac ++ fi ++ if test "$with_gnu_ld" = no; then ++ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ++ case $host_cpu in ++ hppa*64*|ia64*) ++ hardcode_direct=no ++ hardcode_shlibpath_var=no ++ ;; ++ *) ++ hardcode_direct=yes ++ hardcode_direct_absolute=yes ++ export_dynamic_flag_spec='${wl}-E' ++ ++ # hardcode_minus_L: Not really in the search PATH, ++ # but as the default location of the library. ++ hardcode_minus_L=yes ++ ;; ++ esac ++ fi ++ ;; ++ ++ irix5* | irix6* | nonstopux*) ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ # Try to use the -exported_symbol ld option, if it does not ++ # work, assume that -exports_file does not work either and ++ # implicitly export all symbols. ++ save_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" ++ cat >conftest.$ac_ext <<_ACEOF ++int foo(void) {} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS="$save_LDFLAGS" ++ else ++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' ++ fi ++ archive_cmds_need_lc='no' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ inherit_rpath=yes ++ link_all_deplibs=yes ++ ;; ++ ++ netbsd*) ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ++ else ++ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ newsos6) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *nto* | *qnx*) ++ ;; ++ ++ openbsd*) ++ if test -f /usr/libexec/ld.so; then ++ hardcode_direct=yes ++ hardcode_shlibpath_var=no ++ hardcode_direct_absolute=yes ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ export_dynamic_flag_spec='${wl}-E' ++ else ++ case $host_os in ++ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ++ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-R$libdir' ++ ;; ++ *) ++ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ++ hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ++ ;; ++ esac ++ fi ++ else ++ ld_shlibs=no ++ fi ++ ;; ++ ++ os2*) ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_minus_L=yes ++ allow_undefined_flag=unsupported ++ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ++ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ++ ;; ++ ++ osf3*) ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ fi ++ archive_cmds_need_lc='no' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ hardcode_libdir_separator=: ++ ;; ++ ++ osf4* | osf5*) # as osf3* with the addition of -msym flag ++ if test "$GCC" = yes; then ++ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ++ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ++ else ++ allow_undefined_flag=' -expect_unresolved \*' ++ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' ++ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ ++ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' ++ ++ # Both c and cxx compiler support -rpath directly ++ hardcode_libdir_flag_spec='-rpath $libdir' ++ fi ++ archive_cmds_need_lc='no' ++ hardcode_libdir_separator=: ++ ;; ++ ++ solaris*) ++ no_undefined_flag=' -z defs' ++ if test "$GCC" = yes; then ++ wlarc='${wl}' ++ archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ else ++ case `$CC -V 2>&1` in ++ *"Compilers 5.0"*) ++ wlarc='' ++ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ++ ;; ++ *) ++ wlarc='${wl}' ++ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ ++ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ++ ;; ++ esac ++ fi ++ hardcode_libdir_flag_spec='-R$libdir' ++ hardcode_shlibpath_var=no ++ case $host_os in ++ solaris2.[0-5] | solaris2.[0-5].*) ;; ++ *) ++ # The compiler driver will combine and reorder linker options, ++ # but understands `-z linker_flag'. GCC discards it without `$wl', ++ # but is careful enough not to reorder. ++ # Supported since Solaris 2.6 (maybe 2.5.1?) ++ if test "$GCC" = yes; then ++ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ++ else ++ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ++ fi ++ ;; ++ esac ++ link_all_deplibs=yes ++ ;; ++ ++ sunos4*) ++ if test "x$host_vendor" = xsequent; then ++ # Use $CC to link under sequent, because it throws in some extra .o ++ # files that make .init and .fini sections work. ++ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ++ fi ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_direct=yes ++ hardcode_minus_L=yes ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4) ++ case $host_vendor in ++ sni) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=yes # is this really true??? ++ ;; ++ siemens) ++ ## LD is ld it makes a PLAMLIB ++ ## CC just makes a GrossModule. ++ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ++ reload_cmds='$CC -r -o $output$reload_objs' ++ hardcode_direct=no ++ ;; ++ motorola) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_direct=no #Motorola manual says yes, but my tests say they lie ++ ;; ++ esac ++ runpath_var='LD_RUN_PATH' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ sysv4.3*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ export_dynamic_flag_spec='-Bexport' ++ ;; ++ ++ sysv4*MP*) ++ if test -d /usr/nec; then ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_shlibpath_var=no ++ runpath_var=LD_RUN_PATH ++ hardcode_runpath_var=yes ++ ld_shlibs=yes ++ fi ++ ;; ++ ++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ++ no_undefined_flag='${wl}-z,text' ++ archive_cmds_need_lc=no ++ hardcode_shlibpath_var=no ++ runpath_var='LD_RUN_PATH' ++ ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ sysv5* | sco3.2v5* | sco5v6*) ++ # Note: We can NOT use -z defs as we might desire, because we do not ++ # link with -lc, and that would cause any symbols used from libc to ++ # always be unresolved, which means just about no library would ++ # ever link correctly. If we're not using GNU ld we use -z text ++ # though, which does catch some bad symbols but isn't as heavy-handed ++ # as -z defs. ++ no_undefined_flag='${wl}-z,text' ++ allow_undefined_flag='${wl}-z,nodefs' ++ archive_cmds_need_lc=no ++ hardcode_shlibpath_var=no ++ hardcode_libdir_flag_spec='${wl}-R,$libdir' ++ hardcode_libdir_separator=':' ++ link_all_deplibs=yes ++ export_dynamic_flag_spec='${wl}-Bexport' ++ runpath_var='LD_RUN_PATH' ++ ++ if test "$GCC" = yes; then ++ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ else ++ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ++ fi ++ ;; ++ ++ uts4*) ++ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ++ hardcode_libdir_flag_spec='-L$libdir' ++ hardcode_shlibpath_var=no ++ ;; ++ ++ *) ++ ld_shlibs=no ++ ;; ++ esac ++ ++ if test x$host_vendor = xsni; then ++ case $host in ++ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ++ export_dynamic_flag_spec='${wl}-Blargedynsym' ++ ;; ++ esac ++ fi ++ fi ++ ++{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 ++$as_echo "$ld_shlibs" >&6; } ++test "$ld_shlibs" = no && can_build_shared=no ++ ++with_gnu_ld=$with_gnu_ld ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++# ++# Do we need to explicitly link libc? ++# ++case "x$archive_cmds_need_lc" in ++x|xyes) ++ # Assume -lc should be added ++ archive_cmds_need_lc=yes ++ ++ if test "$enable_shared" = yes && test "$GCC" = yes; then ++ case $archive_cmds in ++ *'~'*) ++ # FIXME: we may have to deal with multi-command sequences. ++ ;; ++ '$CC '*) ++ # Test whether the compiler implicitly links with -lc since on some ++ # systems, -lgcc has to come before -lc. If gcc already passes -lc ++ # to ld, don't add -lc before -lgcc. ++ { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 ++$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } ++ $RM conftest* ++ echo "$lt_simple_compile_test_code" > conftest.$ac_ext ++ ++ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } 2>conftest.err; then ++ soname=conftest ++ lib=conftest ++ libobjs=conftest.$ac_objext ++ deplibs= ++ wl=$lt_prog_compiler_wl ++ pic_flag=$lt_prog_compiler_pic ++ compiler_flags=-v ++ linker_flags=-v ++ verstring= ++ output_objdir=. ++ libname=conftest ++ lt_save_allow_undefined_flag=$allow_undefined_flag ++ allow_undefined_flag= ++ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 ++ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ then ++ archive_cmds_need_lc=no ++ else ++ archive_cmds_need_lc=yes ++ fi ++ allow_undefined_flag=$lt_save_allow_undefined_flag ++ else ++ cat conftest.err 1>&5 ++ fi ++ $RM conftest* ++ { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 ++$as_echo "$archive_cmds_need_lc" >&6; } ++ ;; ++ esac ++ fi ++ ;; ++esac ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 ++$as_echo_n "checking dynamic linker characteristics... " >&6; } ++ ++if test "$GCC" = yes; then ++ case $host_os in ++ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; ++ *) lt_awk_arg="/^libraries:/" ;; ++ esac ++ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` ++ if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then ++ # if the path contains ";" then we assume it to be the separator ++ # otherwise default to the standard path separator (i.e. ":") - it is ++ # assumed that no part of a normal pathname contains ";" but that should ++ # okay in the real world where ";" in dirpaths is itself problematic. ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ # Ok, now we have the path, separated by spaces, we can step through it ++ # and add multilib dir if necessary. ++ lt_tmp_lt_search_path_spec= ++ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` ++ for lt_sys_path in $lt_search_path_spec; do ++ if test -d "$lt_sys_path/$lt_multi_os_dir"; then ++ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" ++ else ++ test -d "$lt_sys_path" && \ ++ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" ++ fi ++ done ++ lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' ++BEGIN {RS=" "; FS="/|\n";} { ++ lt_foo=""; ++ lt_count=0; ++ for (lt_i = NF; lt_i > 0; lt_i--) { ++ if ($lt_i != "" && $lt_i != ".") { ++ if ($lt_i == "..") { ++ lt_count++; ++ } else { ++ if (lt_count == 0) { ++ lt_foo="/" $lt_i lt_foo; ++ } else { ++ lt_count--; ++ } ++ } ++ } ++ } ++ if (lt_foo != "") { lt_freq[lt_foo]++; } ++ if (lt_freq[lt_foo] == 1) { print lt_foo; } ++}'` ++ sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` ++else ++ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ++fi ++library_names_spec= ++libname_spec='lib$name' ++soname_spec= ++shrext_cmds=".so" ++postinstall_cmds= ++postuninstall_cmds= ++finish_cmds= ++finish_eval= ++shlibpath_var= ++shlibpath_overrides_runpath=unknown ++version_type=none ++dynamic_linker="$host_os ld.so" ++sys_lib_dlsearch_path_spec="/lib /usr/lib" ++need_lib_prefix=unknown ++hardcode_into_libs=no ++ ++# when you set need_version to no, make sure it does not cause -set_version ++# flags to be left without arguments ++need_version=unknown ++ ++case $host_os in ++aix3*) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' ++ shlibpath_var=LIBPATH ++ ++ # AIX 3 has no versioning support, so we append a major version to the name. ++ soname_spec='${libname}${release}${shared_ext}$major' ++ ;; ++ ++aix[4-9]*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ hardcode_into_libs=yes ++ if test "$host_cpu" = ia64; then ++ # AIX 5 supports IA64 ++ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ else ++ # With GCC up to 2.95.x, collect2 would create an import file ++ # for dependence libraries. The import file would start with ++ # the line `#! .'. This would cause the generated library to ++ # depend on `.', always an invalid library. This was fixed in ++ # development snapshots of GCC prior to 3.0. ++ case $host_os in ++ aix4 | aix4.[01] | aix4.[01].*) ++ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ++ echo ' yes ' ++ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then ++ : ++ else ++ can_build_shared=no ++ fi ++ ;; ++ esac ++ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct ++ # soname into executable. Probably we can add versioning support to ++ # collect2, so additional links can be useful in future. ++ if test "$aix_use_runtimelinking" = yes; then ++ # If using run time linking (on AIX 4.2 or later) use lib.so ++ # instead of lib.a to let people know that these are not ++ # typical AIX shared libraries. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ else ++ # We preserve .a as extension for shared libraries through AIX4.2 ++ # and later when we are not doing run time linking. ++ library_names_spec='${libname}${release}.a $libname.a' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ fi ++ shlibpath_var=LIBPATH ++ fi ++ ;; ++ ++amigaos*) ++ case $host_cpu in ++ powerpc) ++ # Since July 2007 AmigaOS4 officially supports .so libraries. ++ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ ;; ++ m68k) ++ library_names_spec='$libname.ixlibrary $libname.a' ++ # Create ${libname}_ixlibrary.a entries in /sys/libs. ++ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ++ ;; ++ esac ++ ;; ++ ++beos*) ++ library_names_spec='${libname}${shared_ext}' ++ dynamic_linker="$host_os ld.so" ++ shlibpath_var=LIBRARY_PATH ++ ;; ++ ++bsdi[45]*) ++ version_type=linux ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ++ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ++ # the default ld.so.conf also contains /usr/contrib/lib and ++ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ++ # libtool to hard-code these into programs ++ ;; ++ ++cygwin* | mingw* | pw32* | cegcc*) ++ version_type=windows ++ shrext_cmds=".dll" ++ need_version=no ++ need_lib_prefix=no ++ ++ case $GCC,$host_os in ++ yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) ++ library_names_spec='$libname.dll.a' ++ # DLL is installed to $(libdir)/../bin by postinstall_cmds ++ postinstall_cmds='base_file=`basename \${file}`~ ++ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ ++ dldir=$destdir/`dirname \$dlpath`~ ++ test -d \$dldir || mkdir -p \$dldir~ ++ $install_prog $dir/$dlname \$dldir/$dlname~ ++ chmod a+x \$dldir/$dlname~ ++ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then ++ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; ++ fi' ++ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ++ dlpath=$dir/\$dldll~ ++ $RM \$dlpath' ++ shlibpath_overrides_runpath=yes ++ ++ case $host_os in ++ cygwin*) ++ # Cygwin DLLs use 'cyg' prefix rather than 'lib' ++ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ++ ;; ++ mingw* | cegcc*) ++ # MinGW DLLs use traditional 'lib' prefix ++ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` ++ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then ++ # It is most probably a Windows format PATH printed by ++ # mingw gcc, but we are running on Cygwin. Gcc prints its search ++ # path with ; separators, and with drive letters. We can handle the ++ # drive letters (cygwin fileutils understands them), so leave them, ++ # especially as we might pass files found there to a mingw objdump, ++ # which wouldn't understand a cygwinified path. Ahh. ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` ++ else ++ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ++ fi ++ ;; ++ pw32*) ++ # pw32 DLLs use 'pw' prefix rather than 'lib' ++ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ++ ;; ++ esac ++ ;; ++ ++ *) ++ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ++ ;; ++ esac ++ dynamic_linker='Win32 ld.exe' ++ # FIXME: first we should search . and the directory the executable is in ++ shlibpath_var=PATH ++ ;; ++ ++darwin* | rhapsody*) ++ dynamic_linker="$host_os dyld" ++ version_type=darwin ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' ++ soname_spec='${libname}${release}${major}$shared_ext' ++ shlibpath_overrides_runpath=yes ++ shlibpath_var=DYLD_LIBRARY_PATH ++ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' ++ ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" ++ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ++ ;; ++ ++dgux*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++freebsd1*) ++ dynamic_linker=no ++ ;; ++ ++freebsd* | dragonfly*) ++ # DragonFly does not have aout. When/if they implement a new ++ # versioning mechanism, adjust this. ++ if test -x /usr/bin/objformat; then ++ objformat=`/usr/bin/objformat` ++ else ++ case $host_os in ++ freebsd[123]*) objformat=aout ;; ++ *) objformat=elf ;; ++ esac ++ fi ++ version_type=freebsd-$objformat ++ case $version_type in ++ freebsd-elf*) ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ++ need_version=no ++ need_lib_prefix=no ++ ;; ++ freebsd-*) ++ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' ++ need_version=yes ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_os in ++ freebsd2*) ++ shlibpath_overrides_runpath=yes ++ ;; ++ freebsd3.[01]* | freebsdelf3.[01]*) ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ ++ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ *) # from 4.6 on, and DragonFly ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ esac ++ ;; ++ ++gnu*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ hardcode_into_libs=yes ++ ;; ++ ++hpux9* | hpux10* | hpux11*) ++ # Give a soname corresponding to the major version so that dld.sl refuses to ++ # link against other versions. ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ case $host_cpu in ++ ia64*) ++ shrext_cmds='.so' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.so" ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ if test "X$HPUX_IA64_MODE" = X32; then ++ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" ++ else ++ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" ++ fi ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ hppa*64*) ++ shrext_cmds='.sl' ++ hardcode_into_libs=yes ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ++ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ++ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ++ ;; ++ *) ++ shrext_cmds='.sl' ++ dynamic_linker="$host_os dld.sl" ++ shlibpath_var=SHLIB_PATH ++ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ ;; ++ esac ++ # HP-UX runs *really* slowly unless shared libraries are mode 555. ++ postinstall_cmds='chmod 555 $lib' ++ ;; ++ ++interix[3-9]*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++irix5* | irix6* | nonstopux*) ++ case $host_os in ++ nonstopux*) version_type=nonstopux ;; ++ *) ++ if test "$lt_cv_prog_gnu_ld" = yes; then ++ version_type=linux ++ else ++ version_type=irix ++ fi ;; ++ esac ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}${shared_ext}$major' ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' ++ case $host_os in ++ irix5* | nonstopux*) ++ libsuff= shlibsuff= ++ ;; ++ *) ++ case $LD in # libtool.m4 will add one of these switches to LD ++ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ++ libsuff= shlibsuff= libmagic=32-bit;; ++ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ++ libsuff=32 shlibsuff=N32 libmagic=N32;; ++ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ++ libsuff=64 shlibsuff=64 libmagic=64-bit;; ++ *) libsuff= shlibsuff= libmagic=never-match;; ++ esac ++ ;; ++ esac ++ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" ++ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ++ hardcode_into_libs=yes ++ ;; ++ ++# No shared lib support for Linux oldld, aout, or coff. ++linux*oldld* | linux*aout* | linux*coff*) ++ dynamic_linker=no ++ ;; ++ ++# This must be Linux ELF. ++linux* | k*bsd*-gnu) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # Some binutils ld are patched to set DT_RUNPATH ++ save_LDFLAGS=$LDFLAGS ++ save_libdir=$libdir ++ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ ++ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then ++ shlibpath_overrides_runpath=yes ++fi ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS=$save_LDFLAGS ++ libdir=$save_libdir ++ ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ hardcode_into_libs=yes ++ ++ # Append ld.so.conf contents to the search path ++ if test -f /etc/ld.so.conf; then ++ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` ++ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" ++ fi ++ ++ # We used to test for /lib/ld.so.1 and disable shared libraries on ++ # powerpc, because MkLinux only supported shared libraries with the ++ # GNU dynamic linker. Since this was broken with cross compilers, ++ # most powerpc-linux boxes support dynamic linking these days and ++ # people can always --disable-shared, the test was removed, and we ++ # assume the GNU/Linux dynamic linker is in use. ++ dynamic_linker='GNU/Linux ld.so' ++ ;; ++ ++netbsd*) ++ version_type=sunos ++ need_lib_prefix=no ++ need_version=no ++ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ dynamic_linker='NetBSD (a.out) ld.so' ++ else ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ dynamic_linker='NetBSD ld.elf_so' ++ fi ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ ;; ++ ++newsos6) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ ;; ++ ++*nto* | *qnx*) ++ version_type=qnx ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ dynamic_linker='ldqnx.so' ++ ;; ++ ++openbsd*) ++ version_type=sunos ++ sys_lib_dlsearch_path_spec="/usr/lib" ++ need_lib_prefix=no ++ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. ++ case $host_os in ++ openbsd3.3 | openbsd3.3.*) need_version=yes ;; ++ *) need_version=no ;; ++ esac ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ++ case $host_os in ++ openbsd2.[89] | openbsd2.[89].*) ++ shlibpath_overrides_runpath=no ++ ;; ++ *) ++ shlibpath_overrides_runpath=yes ++ ;; ++ esac ++ else ++ shlibpath_overrides_runpath=yes ++ fi ++ ;; ++ ++os2*) ++ libname_spec='$name' ++ shrext_cmds=".dll" ++ need_lib_prefix=no ++ library_names_spec='$libname${shared_ext} $libname.a' ++ dynamic_linker='OS/2 ld.exe' ++ shlibpath_var=LIBPATH ++ ;; ++ ++osf3* | osf4* | osf5*) ++ version_type=osf ++ need_lib_prefix=no ++ need_version=no ++ soname_spec='${libname}${release}${shared_ext}$major' ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ++ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ++ ;; ++ ++rdos*) ++ dynamic_linker=no ++ ;; ++ ++solaris*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ # ldd complains unless libraries are executable ++ postinstall_cmds='chmod +x $lib' ++ ;; ++ ++sunos4*) ++ version_type=sunos ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ++ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ if test "$with_gnu_ld" = yes; then ++ need_lib_prefix=no ++ fi ++ need_version=yes ++ ;; ++ ++sysv4 | sysv4.3*) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ case $host_vendor in ++ sni) ++ shlibpath_overrides_runpath=no ++ need_lib_prefix=no ++ runpath_var=LD_RUN_PATH ++ ;; ++ siemens) ++ need_lib_prefix=no ++ ;; ++ motorola) ++ need_lib_prefix=no ++ need_version=no ++ shlibpath_overrides_runpath=no ++ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ++ ;; ++ esac ++ ;; ++ ++sysv4*MP*) ++ if test -d /usr/nec ;then ++ version_type=linux ++ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' ++ soname_spec='$libname${shared_ext}.$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ fi ++ ;; ++ ++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ++ version_type=freebsd-elf ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=yes ++ hardcode_into_libs=yes ++ if test "$with_gnu_ld" = yes; then ++ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' ++ else ++ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' ++ case $host_os in ++ sco3.2v5*) ++ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ++ ;; ++ esac ++ fi ++ sys_lib_dlsearch_path_spec='/usr/lib' ++ ;; ++ ++tpf*) ++ # TPF is a cross-target only. Preferred cross-host = GNU/Linux. ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ hardcode_into_libs=yes ++ ;; ++ ++uts4*) ++ version_type=linux ++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ++ soname_spec='${libname}${release}${shared_ext}$major' ++ shlibpath_var=LD_LIBRARY_PATH ++ ;; ++ ++*) ++ dynamic_linker=no ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 ++$as_echo "$dynamic_linker" >&6; } ++test "$dynamic_linker" = no && can_build_shared=no ++ ++variables_saved_for_relink="PATH $shlibpath_var $runpath_var" ++if test "$GCC" = yes; then ++ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" ++fi ++ ++if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then ++ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" ++fi ++if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then ++ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 ++$as_echo_n "checking how to hardcode library paths into programs... " >&6; } ++hardcode_action= ++if test -n "$hardcode_libdir_flag_spec" || ++ test -n "$runpath_var" || ++ test "X$hardcode_automatic" = "Xyes" ; then ++ ++ # We can hardcode non-existent directories. ++ if test "$hardcode_direct" != no && ++ # If the only mechanism to avoid hardcoding is shlibpath_var, we ++ # have to relink, otherwise we might link with an installed library ++ # when we should be linking with a yet-to-be-installed one ++ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && ++ test "$hardcode_minus_L" != no; then ++ # Linking always hardcodes the temporary library directory. ++ hardcode_action=relink ++ else ++ # We can link without hardcoding, and we can hardcode nonexisting dirs. ++ hardcode_action=immediate ++ fi ++else ++ # We cannot hardcode anything, or else we can only hardcode existing ++ # directories. ++ hardcode_action=unsupported ++fi ++{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 ++$as_echo "$hardcode_action" >&6; } ++ ++if test "$hardcode_action" = relink || ++ test "$inherit_rpath" = yes; then ++ # Fast installation is not supported ++ enable_fast_install=no ++elif test "$shlibpath_overrides_runpath" = yes || ++ test "$enable_shared" = no; then ++ # Fast installation is not necessary ++ enable_fast_install=needless ++fi ++ ++ ++ ++ ++ ++ ++ if test "x$enable_dlopen" != xyes; then ++ enable_dlopen=unknown ++ enable_dlopen_self=unknown ++ enable_dlopen_self_static=unknown ++else ++ lt_cv_dlopen=no ++ lt_cv_dlopen_libs= ++ ++ case $host_os in ++ beos*) ++ lt_cv_dlopen="load_add_on" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ;; ++ ++ mingw* | pw32* | cegcc*) ++ lt_cv_dlopen="LoadLibrary" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ cygwin*) ++ lt_cv_dlopen="dlopen" ++ lt_cv_dlopen_libs= ++ ;; ++ ++ darwin*) ++ # if libdl is installed we need to link against it ++ { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 ++$as_echo_n "checking for dlopen in -ldl... " >&6; } ++if test "${ac_cv_lib_dl_dlopen+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldl $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_lib_dl_dlopen=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_lib_dl_dlopen=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 ++$as_echo "$ac_cv_lib_dl_dlopen" >&6; } ++if test "x$ac_cv_lib_dl_dlopen" = x""yes; then ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ ++ lt_cv_dlopen="dyld" ++ lt_cv_dlopen_libs= ++ lt_cv_dlopen_self=yes ++ ++fi ++ ++ ;; ++ ++ *) ++ { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 ++$as_echo_n "checking for shl_load... " >&6; } ++if test "${ac_cv_func_shl_load+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define shl_load to an innocuous variant, in case declares shl_load. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define shl_load innocuous_shl_load ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char shl_load (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef shl_load ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char shl_load (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined __stub_shl_load || defined __stub___shl_load ++choke me ++#endif ++ ++int ++main () ++{ ++return shl_load (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_func_shl_load=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_func_shl_load=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 ++$as_echo "$ac_cv_func_shl_load" >&6; } ++if test "x$ac_cv_func_shl_load" = x""yes; then ++ lt_cv_dlopen="shl_load" ++else ++ { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 ++$as_echo_n "checking for shl_load in -ldld... " >&6; } ++if test "${ac_cv_lib_dld_shl_load+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldld $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char shl_load (); ++int ++main () ++{ ++return shl_load (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_lib_dld_shl_load=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_lib_dld_shl_load=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 ++$as_echo "$ac_cv_lib_dld_shl_load" >&6; } ++if test "x$ac_cv_lib_dld_shl_load" = x""yes; then ++ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" ++else ++ { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 ++$as_echo_n "checking for dlopen... " >&6; } ++if test "${ac_cv_func_dlopen+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define dlopen to an innocuous variant, in case declares dlopen. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define dlopen innocuous_dlopen ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char dlopen (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef dlopen ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined __stub_dlopen || defined __stub___dlopen ++choke me ++#endif ++ ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_func_dlopen=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_func_dlopen=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 ++$as_echo "$ac_cv_func_dlopen" >&6; } ++if test "x$ac_cv_func_dlopen" = x""yes; then ++ lt_cv_dlopen="dlopen" ++else ++ { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 ++$as_echo_n "checking for dlopen in -ldl... " >&6; } ++if test "${ac_cv_lib_dl_dlopen+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldl $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_lib_dl_dlopen=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_lib_dl_dlopen=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 ++$as_echo "$ac_cv_lib_dl_dlopen" >&6; } ++if test "x$ac_cv_lib_dl_dlopen" = x""yes; then ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" ++else ++ { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 ++$as_echo_n "checking for dlopen in -lsvld... " >&6; } ++if test "${ac_cv_lib_svld_dlopen+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsvld $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dlopen (); ++int ++main () ++{ ++return dlopen (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_lib_svld_dlopen=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_lib_svld_dlopen=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 ++$as_echo "$ac_cv_lib_svld_dlopen" >&6; } ++if test "x$ac_cv_lib_svld_dlopen" = x""yes; then ++ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" ++else ++ { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 ++$as_echo_n "checking for dld_link in -ldld... " >&6; } ++if test "${ac_cv_lib_dld_dld_link+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-ldld $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char dld_link (); ++int ++main () ++{ ++return dld_link (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ac_cv_lib_dld_dld_link=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_lib_dld_dld_link=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 ++$as_echo "$ac_cv_lib_dld_dld_link" >&6; } ++if test "x$ac_cv_lib_dld_dld_link" = x""yes; then ++ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ++fi ++ ++ ;; ++ esac ++ ++ if test "x$lt_cv_dlopen" != xno; then ++ enable_dlopen=yes ++ else ++ enable_dlopen=no ++ fi ++ ++ case $lt_cv_dlopen in ++ dlopen) ++ save_CPPFLAGS="$CPPFLAGS" ++ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" ++ ++ save_LDFLAGS="$LDFLAGS" ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" ++ ++ save_LIBS="$LIBS" ++ LIBS="$lt_cv_dlopen_libs $LIBS" ++ ++ { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 ++$as_echo_n "checking whether a program can dlopen itself... " >&6; } ++if test "${lt_cv_dlopen_self+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<_LT_EOF ++#line 13555 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); ++ ++ return status; ++} ++_LT_EOF ++ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) >&5 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ++ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 ++$as_echo "$lt_cv_dlopen_self" >&6; } ++ ++ if test "x$lt_cv_dlopen_self" = xyes; then ++ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" ++ { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 ++$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } ++if test "${lt_cv_dlopen_self_static+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test "$cross_compiling" = yes; then : ++ lt_cv_dlopen_self_static=cross ++else ++ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 ++ lt_status=$lt_dlunknown ++ cat > conftest.$ac_ext <<_LT_EOF ++#line 13651 "configure" ++#include "confdefs.h" ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#include ++ ++#ifdef RTLD_GLOBAL ++# define LT_DLGLOBAL RTLD_GLOBAL ++#else ++# ifdef DL_GLOBAL ++# define LT_DLGLOBAL DL_GLOBAL ++# else ++# define LT_DLGLOBAL 0 ++# endif ++#endif ++ ++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we ++ find out it does not work in some platform. */ ++#ifndef LT_DLLAZY_OR_NOW ++# ifdef RTLD_LAZY ++# define LT_DLLAZY_OR_NOW RTLD_LAZY ++# else ++# ifdef DL_LAZY ++# define LT_DLLAZY_OR_NOW DL_LAZY ++# else ++# ifdef RTLD_NOW ++# define LT_DLLAZY_OR_NOW RTLD_NOW ++# else ++# ifdef DL_NOW ++# define LT_DLLAZY_OR_NOW DL_NOW ++# else ++# define LT_DLLAZY_OR_NOW 0 ++# endif ++# endif ++# endif ++# endif ++#endif ++ ++void fnord() { int i=42;} ++int main () ++{ ++ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ++ int status = $lt_dlunknown; ++ ++ if (self) ++ { ++ if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ++ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ++ /* dlclose (self); */ ++ } ++ else ++ puts (dlerror ()); ++ ++ return status; ++} ++_LT_EOF ++ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then ++ (./conftest; exit; ) >&5 2>/dev/null ++ lt_status=$? ++ case x$lt_status in ++ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ++ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; ++ esac ++ else : ++ # compilation failed ++ lt_cv_dlopen_self_static=no ++ fi ++fi ++rm -fr conftest* ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 ++$as_echo "$lt_cv_dlopen_self_static" >&6; } ++ fi ++ ++ CPPFLAGS="$save_CPPFLAGS" ++ LDFLAGS="$save_LDFLAGS" ++ LIBS="$save_LIBS" ++ ;; ++ esac ++ ++ case $lt_cv_dlopen_self in ++ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ++ *) enable_dlopen_self=unknown ;; ++ esac ++ ++ case $lt_cv_dlopen_self_static in ++ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ++ *) enable_dlopen_self_static=unknown ;; ++ esac ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++striplib= ++old_striplib= ++{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 ++$as_echo_n "checking whether stripping libraries is possible... " >&6; } ++if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then ++ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ++ test -z "$striplib" && striplib="$STRIP --strip-unneeded" ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++else ++# FIXME - insert some real tests, host_os isn't really good enough ++ case $host_os in ++ darwin*) ++ if test -n "$STRIP" ; then ++ striplib="$STRIP -x" ++ old_striplib="$STRIP -S" ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ fi ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ ;; ++ esac ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ # Report which library types will actually be built ++ { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 ++$as_echo_n "checking if libtool supports shared libraries... " >&6; } ++ { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 ++$as_echo "$can_build_shared" >&6; } ++ ++ { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 ++$as_echo_n "checking whether to build shared libraries... " >&6; } ++ test "$can_build_shared" = "no" && enable_shared=no ++ ++ # On AIX, shared libraries and static libraries use the same namespace, and ++ # are all built from PIC. ++ case $host_os in ++ aix3*) ++ test "$enable_shared" = yes && enable_static=no ++ if test -n "$RANLIB"; then ++ archive_cmds="$archive_cmds~\$RANLIB \$lib" ++ postinstall_cmds='$RANLIB $lib' ++ fi ++ ;; ++ ++ aix[4-9]*) ++ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ++ test "$enable_shared" = yes && enable_static=no ++ fi ++ ;; ++ esac ++ { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 ++$as_echo "$enable_shared" >&6; } ++ ++ { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 ++$as_echo_n "checking whether to build static libraries... " >&6; } ++ # Make sure either enable_shared or enable_static is yes. ++ test "$enable_shared" = yes || enable_static=yes ++ { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 ++$as_echo "$enable_static" >&6; } ++ ++ ++ ++ ++fi ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++CC="$lt_save_CC" ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ac_config_commands="$ac_config_commands libtool" ++ ++ ++ ++ ++# Only expand once: ++ ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. ++set dummy ${ac_tool_prefix}windres; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_RC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$RC"; then ++ ac_cv_prog_RC="$RC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_RC="${ac_tool_prefix}windres" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++RC=$ac_cv_prog_RC ++if test -n "$RC"; then ++ { $as_echo "$as_me:$LINENO: result: $RC" >&5 ++$as_echo "$RC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_prog_RC"; then ++ ac_ct_RC=$RC ++ # Extract the first word of "windres", so it can be a program name with args. ++set dummy windres; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_prog_ac_ct_RC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -n "$ac_ct_RC"; then ++ ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_prog_ac_ct_RC="windres" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++fi ++fi ++ac_ct_RC=$ac_cv_prog_ac_ct_RC ++if test -n "$ac_ct_RC"; then ++ { $as_echo "$as_me:$LINENO: result: $ac_ct_RC" >&5 ++$as_echo "$ac_ct_RC" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_ct_RC" = x; then ++ RC="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ RC=$ac_ct_RC ++ fi ++else ++ RC="$ac_cv_prog_RC" ++fi ++ ++ ++ ++ ++# Source file extension for RC test sources. ++ac_ext=rc ++ ++# Object file extension for compiled RC test sources. ++objext=o ++objext_RC=$objext ++ ++# Code to be used in simple compile tests ++lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' ++ ++# Code to be used in simple link tests ++lt_simple_link_test_code="$lt_simple_compile_test_code" ++ ++# ltmain only uses $CC for tagged configurations so make sure $CC is set. ++ ++ ++ ++ ++ ++ ++# If no C compiler was specified, use CC. ++LTCC=${LTCC-"$CC"} ++ ++# If no C compiler flags were specified, use CFLAGS. ++LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ++ ++# Allow CC to be a program name with arguments. ++compiler=$CC ++ ++ ++# save warnings/boilerplate of simple test code ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_compile_test_code" >conftest.$ac_ext ++eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_compiler_boilerplate=`cat conftest.err` ++$RM conftest* ++ ++ac_outfile=conftest.$ac_objext ++echo "$lt_simple_link_test_code" >conftest.$ac_ext ++eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ++_lt_linker_boilerplate=`cat conftest.err` ++$RM -r conftest* ++ ++ ++# Allow CC to be a program name with arguments. ++lt_save_CC="$CC" ++lt_save_GCC=$GCC ++GCC= ++CC=${RC-"windres"} ++compiler=$CC ++compiler_RC=$CC ++for cc_temp in $compiler""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++done ++cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ++ ++lt_cv_prog_compiler_c_o_RC=yes ++ ++if test -n "$compiler"; then ++ : ++ ++ ++ ++fi ++ ++GCC=$lt_save_GCC ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++CC="$lt_save_CC" ++ ++ ++# This is a bit wrong since it is possible to request that only some libs ++# are built as shared. Using that feature isn't so common though, and this ++# breaks only on Windows (at least for now) if the user enables only some ++# libs as shared. ++ if test "x$enable_shared" != xno; then ++ COND_SHARED_TRUE= ++ COND_SHARED_FALSE='#' ++else ++ COND_SHARED_TRUE='#' ++ COND_SHARED_FALSE= ++fi ++ ++ ++ ++############################################################################### ++# Checks for libraries. ++############################################################################### ++ ++echo ++echo "Initializing gettext:" ++ ++ ++ { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 ++$as_echo_n "checking whether NLS is requested... " >&6; } ++ # Check whether --enable-nls was given. ++if test "${enable_nls+set}" = set; then ++ enableval=$enable_nls; USE_NLS=$enableval ++else ++ USE_NLS=yes ++fi ++ ++ { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 ++$as_echo "$USE_NLS" >&6; } ++ ++ ++ ++ ++ ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++# Find out how to test for executable files. Don't use a zero-byte file, ++# as systems may use methods other than mode bits to determine executability. ++cat >conf$$.file <<_ASEOF ++#! /bin/sh ++exit 0 ++_ASEOF ++chmod +x conf$$.file ++if test -x conf$$.file >/dev/null 2>&1; then ++ ac_executable_p="test -x" ++else ++ ac_executable_p="test -f" ++fi ++rm -f conf$$.file ++ ++# Extract the first word of "msgfmt", so it can be a program name with args. ++set dummy msgfmt; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_MSGFMT+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ case "$MSGFMT" in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$ac_save_IFS" ++ test -z "$ac_dir" && ac_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then ++ echo "$as_me: trying $ac_dir/$ac_word..." >&5 ++ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && ++ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ++ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" ++ break 2 ++ fi ++ fi ++ done ++ done ++ IFS="$ac_save_IFS" ++ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ++ ;; ++esac ++fi ++MSGFMT="$ac_cv_path_MSGFMT" ++if test "$MSGFMT" != ":"; then ++ { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 ++$as_echo "$MSGFMT" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ # Extract the first word of "gmsgfmt", so it can be a program name with args. ++set dummy gmsgfmt; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_GMSGFMT+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ case $GMSGFMT in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++IFS=$as_save_IFS ++ ++ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ++ ;; ++esac ++fi ++GMSGFMT=$ac_cv_path_GMSGFMT ++if test -n "$GMSGFMT"; then ++ { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 ++$as_echo "$GMSGFMT" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ ++ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in ++ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; ++ *) MSGFMT_015=$MSGFMT ;; ++ esac ++ ++ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in ++ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; ++ *) GMSGFMT_015=$GMSGFMT ;; ++ esac ++ ++ ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++# Find out how to test for executable files. Don't use a zero-byte file, ++# as systems may use methods other than mode bits to determine executability. ++cat >conf$$.file <<_ASEOF ++#! /bin/sh ++exit 0 ++_ASEOF ++chmod +x conf$$.file ++if test -x conf$$.file >/dev/null 2>&1; then ++ ac_executable_p="test -x" ++else ++ ac_executable_p="test -f" ++fi ++rm -f conf$$.file ++ ++# Extract the first word of "xgettext", so it can be a program name with args. ++set dummy xgettext; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_XGETTEXT+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ case "$XGETTEXT" in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$ac_save_IFS" ++ test -z "$ac_dir" && ac_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then ++ echo "$as_me: trying $ac_dir/$ac_word..." >&5 ++ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && ++ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ++ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" ++ break 2 ++ fi ++ fi ++ done ++ done ++ IFS="$ac_save_IFS" ++ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ++ ;; ++esac ++fi ++XGETTEXT="$ac_cv_path_XGETTEXT" ++if test "$XGETTEXT" != ":"; then ++ { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 ++$as_echo "$XGETTEXT" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ rm -f messages.po ++ ++ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in ++ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; ++ *) XGETTEXT_015=$XGETTEXT ;; ++ esac ++ ++ ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++# Find out how to test for executable files. Don't use a zero-byte file, ++# as systems may use methods other than mode bits to determine executability. ++cat >conf$$.file <<_ASEOF ++#! /bin/sh ++exit 0 ++_ASEOF ++chmod +x conf$$.file ++if test -x conf$$.file >/dev/null 2>&1; then ++ ac_executable_p="test -x" ++else ++ ac_executable_p="test -f" ++fi ++rm -f conf$$.file ++ ++# Extract the first word of "msgmerge", so it can be a program name with args. ++set dummy msgmerge; ac_word=$2 ++{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if test "${ac_cv_path_MSGMERGE+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ case "$MSGMERGE" in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ++ ;; ++ *) ++ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR ++ for ac_dir in $PATH; do ++ IFS="$ac_save_IFS" ++ test -z "$ac_dir" && ac_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then ++ echo "$as_me: trying $ac_dir/$ac_word..." >&5 ++ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ++ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" ++ break 2 ++ fi ++ fi ++ done ++ done ++ IFS="$ac_save_IFS" ++ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ++ ;; ++esac ++fi ++MSGMERGE="$ac_cv_path_MSGMERGE" ++if test "$MSGMERGE" != ":"; then ++ { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 ++$as_echo "$MSGMERGE" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++ test -n "$localedir" || localedir='${datadir}/locale' ++ ++ ++ ac_config_commands="$ac_config_commands po-directories" ++ ++ ++ ++ if test "X$prefix" = "XNONE"; then ++ acl_final_prefix="$ac_default_prefix" ++ else ++ acl_final_prefix="$prefix" ++ fi ++ if test "X$exec_prefix" = "XNONE"; then ++ acl_final_exec_prefix='${prefix}' ++ else ++ acl_final_exec_prefix="$exec_prefix" ++ fi ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" ++ prefix="$acl_save_prefix" ++ ++ ++# Check whether --with-gnu-ld was given. ++if test "${with_gnu_ld+set}" = set; then ++ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes ++else ++ with_gnu_ld=no ++fi ++ ++# Prepare PATH_SEPARATOR. ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ac_prog=ld ++if test "$GCC" = yes; then ++ # Check if gcc -print-prog-name=ld gives a path. ++ { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5 ++$as_echo_n "checking for ld used by GCC... " >&6; } ++ case $host in ++ *-*-mingw*) ++ # gcc leaves a trailing carriage return which upsets mingw ++ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ++ *) ++ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ++ esac ++ case $ac_prog in ++ # Accept absolute paths. ++ [\\/]* | [A-Za-z]:[\\/]*) ++ re_direlt='/[^/][^/]*/\.\./' ++ # Canonicalize the path of ld ++ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ++ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ++ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ++ done ++ test -z "$LD" && LD="$ac_prog" ++ ;; ++ "") ++ # If it fails, then pretend we aren't using GCC. ++ ac_prog=ld ++ ;; ++ *) ++ # If it is relative, then search for the first ld in PATH. ++ with_gnu_ld=unknown ++ ;; ++ esac ++elif test "$with_gnu_ld" = yes; then ++ { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 ++$as_echo_n "checking for GNU ld... " >&6; } ++else ++ { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 ++$as_echo_n "checking for non-GNU ld... " >&6; } ++fi ++if test "${acl_cv_path_LD+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test -z "$LD"; then ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" ++ for ac_dir in $PATH; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ++ acl_cv_path_LD="$ac_dir/$ac_prog" ++ # Check to see if the program is GNU ld. I'd rather use --version, ++ # but apparently some GNU ld's only accept -v. ++ # Break only if it was the GNU/non-GNU ld that we prefer. ++ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in ++ *GNU* | *'with BFD'*) ++ test "$with_gnu_ld" != no && break ;; ++ *) ++ test "$with_gnu_ld" != yes && break ;; ++ esac ++ fi ++ done ++ IFS="$ac_save_ifs" ++else ++ acl_cv_path_LD="$LD" # Let the user override the test with a path. ++fi ++fi ++ ++LD="$acl_cv_path_LD" ++if test -n "$LD"; then ++ { $as_echo "$as_me:$LINENO: result: $LD" >&5 ++$as_echo "$LD" >&6; } ++else ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 ++$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} ++ { (exit 1); exit 1; }; } ++{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 ++$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } ++if test "${acl_cv_prog_gnu_ld+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ # I'd rather use --version here, but apparently some GNU ld's only accept -v. ++case `$LD -v 2>&1 &5 ++$as_echo "$acl_cv_prog_gnu_ld" >&6; } ++with_gnu_ld=$acl_cv_prog_gnu_ld ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5 ++$as_echo_n "checking for shared library run path origin... " >&6; } ++if test "${acl_cv_rpath+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ++ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ++ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh ++ . ./conftest.sh ++ rm -f ./conftest.sh ++ acl_cv_rpath=done ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 ++$as_echo "$acl_cv_rpath" >&6; } ++ wl="$acl_cv_wl" ++ libext="$acl_cv_libext" ++ shlibext="$acl_cv_shlibext" ++ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" ++ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" ++ hardcode_direct="$acl_cv_hardcode_direct" ++ hardcode_minus_L="$acl_cv_hardcode_minus_L" ++ # Check whether --enable-rpath was given. ++if test "${enable_rpath+set}" = set; then ++ enableval=$enable_rpath; : ++else ++ enable_rpath=yes ++fi ++ ++ ++ ++ acl_libdirstem=lib ++ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` ++ if test -n "$searchpath"; then ++ acl_save_IFS="${IFS= }"; IFS=":" ++ for searchdir in $searchpath; do ++ if test -d "$searchdir"; then ++ case "$searchdir" in ++ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; ++ *) searchdir=`cd "$searchdir" && pwd` ++ case "$searchdir" in ++ */lib64 ) acl_libdirstem=lib64 ;; ++ esac ;; ++ esac ++ fi ++ done ++ IFS="$acl_save_IFS" ++ fi ++ ++ ++ ++ ++ ++ ++ ++ ++ use_additional=yes ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ ++# Check whether --with-libiconv-prefix was given. ++if test "${with_libiconv_prefix+set}" = set; then ++ withval=$with_libiconv_prefix; ++ if test "X$withval" = "Xno"; then ++ use_additional=no ++ else ++ if test "X$withval" = "X"; then ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ else ++ additional_includedir="$withval/include" ++ additional_libdir="$withval/$acl_libdirstem" ++ fi ++ fi ++ ++fi ++ ++ LIBICONV= ++ LTLIBICONV= ++ INCICONV= ++ rpathdirs= ++ ltrpathdirs= ++ names_already_handled= ++ names_next_round='iconv ' ++ while test -n "$names_next_round"; do ++ names_this_round="$names_next_round" ++ names_next_round= ++ for name in $names_this_round; do ++ already_handled= ++ for n in $names_already_handled; do ++ if test "$n" = "$name"; then ++ already_handled=yes ++ break ++ fi ++ done ++ if test -z "$already_handled"; then ++ names_already_handled="$names_already_handled $name" ++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` ++ eval value=\"\$HAVE_LIB$uppername\" ++ if test -n "$value"; then ++ if test "$value" = yes; then ++ eval value=\"\$LIB$uppername\" ++ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" ++ eval value=\"\$LTLIB$uppername\" ++ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" ++ else ++ : ++ fi ++ else ++ found_dir= ++ found_la= ++ found_so= ++ found_a= ++ if test $use_additional = yes; then ++ if test -n "$shlibext" \ ++ && { test -f "$additional_libdir/lib$name.$shlibext" \ ++ || { test "$shlibext" = dll \ ++ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then ++ found_dir="$additional_libdir" ++ if test -f "$additional_libdir/lib$name.$shlibext"; then ++ found_so="$additional_libdir/lib$name.$shlibext" ++ else ++ found_so="$additional_libdir/lib$name.dll.a" ++ fi ++ if test -f "$additional_libdir/lib$name.la"; then ++ found_la="$additional_libdir/lib$name.la" ++ fi ++ else ++ if test -f "$additional_libdir/lib$name.$libext"; then ++ found_dir="$additional_libdir" ++ found_a="$additional_libdir/lib$name.$libext" ++ if test -f "$additional_libdir/lib$name.la"; then ++ found_la="$additional_libdir/lib$name.la" ++ fi ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ for x in $LDFLAGS $LTLIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ case "$x" in ++ -L*) ++ dir=`echo "X$x" | sed -e 's/^X-L//'` ++ if test -n "$shlibext" \ ++ && { test -f "$dir/lib$name.$shlibext" \ ++ || { test "$shlibext" = dll \ ++ && test -f "$dir/lib$name.dll.a"; }; }; then ++ found_dir="$dir" ++ if test -f "$dir/lib$name.$shlibext"; then ++ found_so="$dir/lib$name.$shlibext" ++ else ++ found_so="$dir/lib$name.dll.a" ++ fi ++ if test -f "$dir/lib$name.la"; then ++ found_la="$dir/lib$name.la" ++ fi ++ else ++ if test -f "$dir/lib$name.$libext"; then ++ found_dir="$dir" ++ found_a="$dir/lib$name.$libext" ++ if test -f "$dir/lib$name.la"; then ++ found_la="$dir/lib$name.la" ++ fi ++ fi ++ fi ++ ;; ++ esac ++ if test "X$found_dir" != "X"; then ++ break ++ fi ++ done ++ fi ++ if test "X$found_dir" != "X"; then ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" ++ if test "X$found_so" != "X"; then ++ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ else ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $found_dir" ++ fi ++ if test "$hardcode_direct" = yes; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ else ++ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $found_dir" ++ fi ++ else ++ haveit= ++ for x in $LDFLAGS $LIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" ++ fi ++ if test "$hardcode_minus_L" != no; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" ++ else ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" ++ fi ++ fi ++ fi ++ fi ++ else ++ if test "X$found_a" != "X"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" ++ else ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" ++ fi ++ fi ++ additional_includedir= ++ case "$found_dir" in ++ */$acl_libdirstem | */$acl_libdirstem/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` ++ additional_includedir="$basedir/include" ++ ;; ++ esac ++ if test "X$additional_includedir" != "X"; then ++ if test "X$additional_includedir" != "X/usr/include"; then ++ haveit= ++ if test "X$additional_includedir" = "X/usr/local/include"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ for x in $CPPFLAGS $INCICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-I$additional_includedir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_includedir"; then ++ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" ++ fi ++ fi ++ fi ++ fi ++ fi ++ if test -n "$found_la"; then ++ save_libdir="$libdir" ++ case "$found_la" in ++ */* | *\\*) . "$found_la" ;; ++ *) . "./$found_la" ;; ++ esac ++ libdir="$save_libdir" ++ for dep in $dependency_libs; do ++ case "$dep" in ++ -L*) ++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` ++ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then ++ haveit= ++ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ haveit= ++ for x in $LDFLAGS $LIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" ++ fi ++ fi ++ haveit= ++ for x in $LDFLAGS $LTLIBICONV; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" ++ fi ++ fi ++ fi ++ fi ++ ;; ++ -R*) ++ dir=`echo "X$dep" | sed -e 's/^X-R//'` ++ if test "$enable_rpath" != no; then ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $dir" ++ fi ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $dir" ++ fi ++ fi ++ ;; ++ -l*) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ++ ;; ++ *.la) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ++ ;; ++ *) ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ++ ;; ++ esac ++ done ++ fi ++ else ++ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" ++ fi ++ fi ++ fi ++ done ++ done ++ if test "X$rpathdirs" != "X"; then ++ if test -n "$hardcode_libdir_separator"; then ++ alldirs= ++ for found_dir in $rpathdirs; do ++ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" ++ done ++ acl_save_libdir="$libdir" ++ libdir="$alldirs" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" ++ else ++ for found_dir in $rpathdirs; do ++ acl_save_libdir="$libdir" ++ libdir="$found_dir" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" ++ done ++ fi ++ fi ++ if test "X$ltrpathdirs" != "X"; then ++ for found_dir in $ltrpathdirs; do ++ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" ++ done ++ fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 ++$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } ++if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++CFPreferencesCopyAppValue(NULL, NULL) ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ gt_cv_func_CFPreferencesCopyAppValue=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ gt_cv_func_CFPreferencesCopyAppValue=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gt_save_LIBS" ++fi ++{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 ++$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } ++ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 ++_ACEOF ++ ++ fi ++ { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 ++$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } ++if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++int ++main () ++{ ++CFLocaleCopyCurrent(); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ gt_cv_func_CFLocaleCopyCurrent=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ gt_cv_func_CFLocaleCopyCurrent=no ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$gt_save_LIBS" ++fi ++{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 ++$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } ++ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CFLOCALECOPYCURRENT 1 ++_ACEOF ++ ++ fi ++ INTL_MACOSX_LIBS= ++ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then ++ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" ++ fi ++ ++ ++ ++ ++ ++ ++ LIBINTL= ++ LTLIBINTL= ++ POSUB= ++ ++ case " $gt_needs " in ++ *" need-formatstring-macros "*) gt_api_version=3 ;; ++ *" need-ngettext "*) gt_api_version=2 ;; ++ *) gt_api_version=1 ;; ++ esac ++ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" ++ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" ++ ++ if test "$USE_NLS" = "yes"; then ++ gt_use_preinstalled_gnugettext=no ++ ++ ++ if test $gt_api_version -ge 3; then ++ gt_revision_test_code=' ++#ifndef __GNU_GETTEXT_SUPPORTED_REVISION ++#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) ++#endif ++typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ++' ++ else ++ gt_revision_test_code= ++ fi ++ if test $gt_api_version -ge 2; then ++ gt_expression_test_code=' + * ngettext ("", "", 0)' ++ else ++ gt_expression_test_code= ++ fi ++ ++ { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 ++$as_echo_n "checking for GNU gettext in libc... " >&6; } ++if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++$gt_revision_test_code ++extern int _nl_msg_cat_cntr; ++extern int *_nl_domain_bindings; ++int ++main () ++{ ++bindtextdomain ("", ""); ++return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ eval "$gt_func_gnugettext_libc=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$gt_func_gnugettext_libc=no" ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++ac_res=`eval 'as_val=${'$gt_func_gnugettext_libc'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ ++ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then ++ ++ ++ ++ ++ ++ am_save_CPPFLAGS="$CPPFLAGS" ++ ++ for element in $INCICONV; do ++ haveit= ++ for x in $CPPFLAGS; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X$element"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" ++ fi ++ done ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for iconv" >&5 ++$as_echo_n "checking for iconv... " >&6; } ++if test "${am_cv_func_iconv+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ++ am_cv_func_iconv="no, consider installing GNU libiconv" ++ am_cv_lib_iconv=no ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++int ++main () ++{ ++iconv_t cd = iconv_open("",""); ++ iconv(cd,NULL,NULL,NULL,NULL); ++ iconv_close(cd); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ am_cv_func_iconv=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ if test "$am_cv_func_iconv" != yes; then ++ am_save_LIBS="$LIBS" ++ LIBS="$LIBS $LIBICONV" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++int ++main () ++{ ++iconv_t cd = iconv_open("",""); ++ iconv(cd,NULL,NULL,NULL,NULL); ++ iconv_close(cd); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ am_cv_lib_iconv=yes ++ am_cv_func_iconv=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS="$am_save_LIBS" ++ fi ++ ++fi ++{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 ++$as_echo "$am_cv_func_iconv" >&6; } ++ if test "$am_cv_func_iconv" = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_ICONV 1 ++_ACEOF ++ ++ fi ++ if test "$am_cv_lib_iconv" = yes; then ++ { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5 ++$as_echo_n "checking how to link with libiconv... " >&6; } ++ { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5 ++$as_echo "$LIBICONV" >&6; } ++ else ++ CPPFLAGS="$am_save_CPPFLAGS" ++ LIBICONV= ++ LTLIBICONV= ++ fi ++ ++ ++ ++ ++ ++ ++ ++ use_additional=yes ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ ++# Check whether --with-libintl-prefix was given. ++if test "${with_libintl_prefix+set}" = set; then ++ withval=$with_libintl_prefix; ++ if test "X$withval" = "Xno"; then ++ use_additional=no ++ else ++ if test "X$withval" = "X"; then ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ ++ eval additional_includedir=\"$includedir\" ++ eval additional_libdir=\"$libdir\" ++ ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ else ++ additional_includedir="$withval/include" ++ additional_libdir="$withval/$acl_libdirstem" ++ fi ++ fi ++ ++fi ++ ++ LIBINTL= ++ LTLIBINTL= ++ INCINTL= ++ rpathdirs= ++ ltrpathdirs= ++ names_already_handled= ++ names_next_round='intl ' ++ while test -n "$names_next_round"; do ++ names_this_round="$names_next_round" ++ names_next_round= ++ for name in $names_this_round; do ++ already_handled= ++ for n in $names_already_handled; do ++ if test "$n" = "$name"; then ++ already_handled=yes ++ break ++ fi ++ done ++ if test -z "$already_handled"; then ++ names_already_handled="$names_already_handled $name" ++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` ++ eval value=\"\$HAVE_LIB$uppername\" ++ if test -n "$value"; then ++ if test "$value" = yes; then ++ eval value=\"\$LIB$uppername\" ++ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" ++ eval value=\"\$LTLIB$uppername\" ++ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" ++ else ++ : ++ fi ++ else ++ found_dir= ++ found_la= ++ found_so= ++ found_a= ++ if test $use_additional = yes; then ++ if test -n "$shlibext" \ ++ && { test -f "$additional_libdir/lib$name.$shlibext" \ ++ || { test "$shlibext" = dll \ ++ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then ++ found_dir="$additional_libdir" ++ if test -f "$additional_libdir/lib$name.$shlibext"; then ++ found_so="$additional_libdir/lib$name.$shlibext" ++ else ++ found_so="$additional_libdir/lib$name.dll.a" ++ fi ++ if test -f "$additional_libdir/lib$name.la"; then ++ found_la="$additional_libdir/lib$name.la" ++ fi ++ else ++ if test -f "$additional_libdir/lib$name.$libext"; then ++ found_dir="$additional_libdir" ++ found_a="$additional_libdir/lib$name.$libext" ++ if test -f "$additional_libdir/lib$name.la"; then ++ found_la="$additional_libdir/lib$name.la" ++ fi ++ fi ++ fi ++ fi ++ if test "X$found_dir" = "X"; then ++ for x in $LDFLAGS $LTLIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ case "$x" in ++ -L*) ++ dir=`echo "X$x" | sed -e 's/^X-L//'` ++ if test -n "$shlibext" \ ++ && { test -f "$dir/lib$name.$shlibext" \ ++ || { test "$shlibext" = dll \ ++ && test -f "$dir/lib$name.dll.a"; }; }; then ++ found_dir="$dir" ++ if test -f "$dir/lib$name.$shlibext"; then ++ found_so="$dir/lib$name.$shlibext" ++ else ++ found_so="$dir/lib$name.dll.a" ++ fi ++ if test -f "$dir/lib$name.la"; then ++ found_la="$dir/lib$name.la" ++ fi ++ else ++ if test -f "$dir/lib$name.$libext"; then ++ found_dir="$dir" ++ found_a="$dir/lib$name.$libext" ++ if test -f "$dir/lib$name.la"; then ++ found_la="$dir/lib$name.la" ++ fi ++ fi ++ fi ++ ;; ++ esac ++ if test "X$found_dir" != "X"; then ++ break ++ fi ++ done ++ fi ++ if test "X$found_dir" != "X"; then ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" ++ if test "X$found_so" != "X"; then ++ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ else ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $found_dir" ++ fi ++ if test "$hardcode_direct" = yes; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ else ++ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $found_dir" ++ fi ++ else ++ haveit= ++ for x in $LDFLAGS $LIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$found_dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" ++ fi ++ if test "$hardcode_minus_L" != no; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" ++ else ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" ++ fi ++ fi ++ fi ++ fi ++ else ++ if test "X$found_a" != "X"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" ++ else ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" ++ fi ++ fi ++ additional_includedir= ++ case "$found_dir" in ++ */$acl_libdirstem | */$acl_libdirstem/) ++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` ++ additional_includedir="$basedir/include" ++ ;; ++ esac ++ if test "X$additional_includedir" != "X"; then ++ if test "X$additional_includedir" != "X/usr/include"; then ++ haveit= ++ if test "X$additional_includedir" = "X/usr/local/include"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ for x in $CPPFLAGS $INCINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-I$additional_includedir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_includedir"; then ++ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" ++ fi ++ fi ++ fi ++ fi ++ fi ++ if test -n "$found_la"; then ++ save_libdir="$libdir" ++ case "$found_la" in ++ */* | *\\*) . "$found_la" ;; ++ *) . "./$found_la" ;; ++ esac ++ libdir="$save_libdir" ++ for dep in $dependency_libs; do ++ case "$dep" in ++ -L*) ++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` ++ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then ++ haveit= ++ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then ++ if test -n "$GCC"; then ++ case $host_os in ++ linux* | gnu* | k*bsd*-gnu) haveit=yes;; ++ esac ++ fi ++ fi ++ if test -z "$haveit"; then ++ haveit= ++ for x in $LDFLAGS $LIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" ++ fi ++ fi ++ haveit= ++ for x in $LDFLAGS $LTLIBINTL; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X-L$additional_libdir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ if test -d "$additional_libdir"; then ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" ++ fi ++ fi ++ fi ++ fi ++ ;; ++ -R*) ++ dir=`echo "X$dep" | sed -e 's/^X-R//'` ++ if test "$enable_rpath" != no; then ++ haveit= ++ for x in $rpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ rpathdirs="$rpathdirs $dir" ++ fi ++ haveit= ++ for x in $ltrpathdirs; do ++ if test "X$x" = "X$dir"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ ltrpathdirs="$ltrpathdirs $dir" ++ fi ++ fi ++ ;; ++ -l*) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ++ ;; ++ *.la) ++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ++ ;; ++ *) ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ++ ;; ++ esac ++ done ++ fi ++ else ++ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" ++ fi ++ fi ++ fi ++ done ++ done ++ if test "X$rpathdirs" != "X"; then ++ if test -n "$hardcode_libdir_separator"; then ++ alldirs= ++ for found_dir in $rpathdirs; do ++ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" ++ done ++ acl_save_libdir="$libdir" ++ libdir="$alldirs" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" ++ else ++ for found_dir in $rpathdirs; do ++ acl_save_libdir="$libdir" ++ libdir="$found_dir" ++ eval flag=\"$hardcode_libdir_flag_spec\" ++ libdir="$acl_save_libdir" ++ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" ++ done ++ fi ++ fi ++ if test "X$ltrpathdirs" != "X"; then ++ for found_dir in $ltrpathdirs; do ++ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" ++ done ++ fi ++ ++ { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 ++$as_echo_n "checking for GNU gettext in libintl... " >&6; } ++if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ gt_save_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS $INCINTL" ++ gt_save_LIBS="$LIBS" ++ LIBS="$LIBS $LIBINTL" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++$gt_revision_test_code ++extern int _nl_msg_cat_cntr; ++extern ++#ifdef __cplusplus ++"C" ++#endif ++const char *_nl_expand_alias (const char *); ++int ++main () ++{ ++bindtextdomain ("", ""); ++return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ eval "$gt_func_gnugettext_libintl=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$gt_func_gnugettext_libintl=no" ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then ++ LIBS="$LIBS $LIBICONV" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++$gt_revision_test_code ++extern int _nl_msg_cat_cntr; ++extern ++#ifdef __cplusplus ++"C" ++#endif ++const char *_nl_expand_alias (const char *); ++int ++main () ++{ ++bindtextdomain ("", ""); ++return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ LIBINTL="$LIBINTL $LIBICONV" ++ LTLIBINTL="$LTLIBINTL $LTLIBICONV" ++ eval "$gt_func_gnugettext_libintl=yes" ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ fi ++ CPPFLAGS="$gt_save_CPPFLAGS" ++ LIBS="$gt_save_LIBS" ++fi ++ac_res=`eval 'as_val=${'$gt_func_gnugettext_libintl'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ fi ++ ++ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ ++ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ ++ && test "$PACKAGE" != gettext-runtime \ ++ && test "$PACKAGE" != gettext-tools; }; then ++ gt_use_preinstalled_gnugettext=yes ++ else ++ LIBINTL= ++ LTLIBINTL= ++ INCINTL= ++ fi ++ ++ ++ ++ if test -n "$INTL_MACOSX_LIBS"; then ++ if test "$gt_use_preinstalled_gnugettext" = "yes" \ ++ || test "$nls_cv_use_gnu_gettext" = "yes"; then ++ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" ++ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" ++ fi ++ fi ++ ++ if test "$gt_use_preinstalled_gnugettext" = "yes" \ ++ || test "$nls_cv_use_gnu_gettext" = "yes"; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define ENABLE_NLS 1 ++_ACEOF ++ ++ else ++ USE_NLS=no ++ fi ++ fi ++ ++ { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5 ++$as_echo_n "checking whether to use NLS... " >&6; } ++ { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 ++$as_echo "$USE_NLS" >&6; } ++ if test "$USE_NLS" = "yes"; then ++ { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 ++$as_echo_n "checking where the gettext function comes from... " >&6; } ++ if test "$gt_use_preinstalled_gnugettext" = "yes"; then ++ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then ++ gt_source="external libintl" ++ else ++ gt_source="libc" ++ fi ++ else ++ gt_source="included intl directory" ++ fi ++ { $as_echo "$as_me:$LINENO: result: $gt_source" >&5 ++$as_echo "$gt_source" >&6; } ++ fi ++ ++ if test "$USE_NLS" = "yes"; then ++ ++ if test "$gt_use_preinstalled_gnugettext" = "yes"; then ++ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then ++ { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5 ++$as_echo_n "checking how to link with libintl... " >&6; } ++ { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5 ++$as_echo "$LIBINTL" >&6; } ++ ++ for element in $INCINTL; do ++ haveit= ++ for x in $CPPFLAGS; do ++ ++ acl_save_prefix="$prefix" ++ prefix="$acl_final_prefix" ++ acl_save_exec_prefix="$exec_prefix" ++ exec_prefix="$acl_final_exec_prefix" ++ eval x=\"$x\" ++ exec_prefix="$acl_save_exec_prefix" ++ prefix="$acl_save_prefix" ++ ++ if test "X$x" = "X$element"; then ++ haveit=yes ++ break ++ fi ++ done ++ if test -z "$haveit"; then ++ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" ++ fi ++ done ++ ++ fi ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_GETTEXT 1 ++_ACEOF ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DCGETTEXT 1 ++_ACEOF ++ ++ fi ++ ++ POSUB=po ++ fi ++ ++ ++ ++ INTLLIBS="$LIBINTL" ++ ++ ++ ++ ++ ++ ++ ++############################################################################### ++# Checks for header files. ++############################################################################### ++ ++echo ++echo "System headers and functions:" ++ ++# There is currently no workarounds in this package if some of ++# these headers are missing. ++ ++ ++ ++for ac_header in fcntl.h limits.h sys/time.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++else ++ # Is the header compilable? ++{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++$as_echo_n "checking $ac_header usability... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_header_compiler=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_compiler=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++$as_echo_n "checking $ac_header presence... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <$ac_header> ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ ac_header_preproc=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## --------------------------------------- ## ++## Report this to lasse.collin@tukaani.org ## ++## --------------------------------------- ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ ++fi ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++else ++ { { $as_echo "$as_me:$LINENO: error: Required header file(s) are missing." >&5 ++$as_echo "$as_me: error: Required header file(s) are missing." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++done ++ ++ ++# If any of these headers are missing, things should still work correctly: ++ ++ ++ ++for ac_header in sys/param.h sys/sysctl.h byteswap.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#ifdef HAVE_SYS_PARAM_H ++# include ++#endif ++ ++ ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ eval "$as_ac_Header=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$as_ac_Header=no" ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++# Even if we have byteswap.h, we may lack the specific macros/functions. ++if test x$ac_cv_header_byteswap_h = xyes ; then ++ ++ { $as_echo "$as_me:$LINENO: checking if bswap_16 is available" >&5 ++$as_echo_n "checking if bswap_16 is available... " >&6; } ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++int ++main(void) ++{ ++ bswap_16(42); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_BSWAP_16 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++ ++ { $as_echo "$as_me:$LINENO: checking if bswap_32 is available" >&5 ++$as_echo_n "checking if bswap_32 is available... " >&6; } ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++int ++main(void) ++{ ++ bswap_32(42); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_BSWAP_32 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++ ++ { $as_echo "$as_me:$LINENO: checking if bswap_64 is available" >&5 ++$as_echo_n "checking if bswap_64 is available... " >&6; } ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++int ++main(void) ++{ ++ bswap_64(42); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_BSWAP_64 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++ ++ fi ++ ++ ++############################################################################### ++# Checks for typedefs, structures, and compiler characteristics. ++############################################################################### ++ ++ ++{ $as_echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 ++$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } ++if test "${ac_cv_header_stdbool_h+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifndef bool ++ "error: bool is not defined" ++#endif ++#ifndef false ++ "error: false is not defined" ++#endif ++#if false ++ "error: false is not 0" ++#endif ++#ifndef true ++ "error: true is not defined" ++#endif ++#if true != 1 ++ "error: true is not 1" ++#endif ++#ifndef __bool_true_false_are_defined ++ "error: __bool_true_false_are_defined is not defined" ++#endif ++ ++ struct s { _Bool s: 1; _Bool t; } s; ++ ++ char a[true == 1 ? 1 : -1]; ++ char b[false == 0 ? 1 : -1]; ++ char c[__bool_true_false_are_defined == 1 ? 1 : -1]; ++ char d[(bool) 0.5 == true ? 1 : -1]; ++ bool e = &s; ++ char f[(_Bool) 0.0 == false ? 1 : -1]; ++ char g[true]; ++ char h[sizeof (_Bool)]; ++ char i[sizeof s.t]; ++ enum { j = false, k = true, l = false * true, m = true * 256 }; ++ /* The following fails for ++ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ ++ _Bool n[m]; ++ char o[sizeof n == m * sizeof n[0] ? 1 : -1]; ++ char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; ++# if defined __xlc__ || defined __GNUC__ ++ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 ++ reported by James Lemley on 2005-10-05; see ++ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html ++ This test is not quite right, since xlc is allowed to ++ reject this program, as the initializer for xlcbug is ++ not one of the forms that C requires support for. ++ However, doing the test right would require a runtime ++ test, and that would make cross-compilation harder. ++ Let us hope that IBM fixes the xlc bug, and also adds ++ support for this kind of constant expression. In the ++ meantime, this test will reject xlc, which is OK, since ++ our stdbool.h substitute should suffice. We also test ++ this with GCC, where it should work, to detect more ++ quickly whether someone messes up the test in the ++ future. */ ++ char digs[] = "0123456789"; ++ int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); ++# endif ++ /* Catch a bug in an HP-UX C compiler. See ++ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html ++ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html ++ */ ++ _Bool q = true; ++ _Bool *pq = &q; ++ ++int ++main () ++{ ++ ++ *pq |= q; ++ *pq |= ! q; ++ /* Refer to every declared value, to avoid compiler optimizations. */ ++ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l ++ + !m + !n + !o + !p + !q + !pq); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_header_stdbool_h=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_header_stdbool_h=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 ++$as_echo "$ac_cv_header_stdbool_h" >&6; } ++{ $as_echo "$as_me:$LINENO: checking for _Bool" >&5 ++$as_echo_n "checking for _Bool... " >&6; } ++if test "${ac_cv_type__Bool+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_type__Bool=no ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if (sizeof (_Bool)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if (sizeof ((_Bool))) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_type__Bool=yes ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5 ++$as_echo "$ac_cv_type__Bool" >&6; } ++if test "x$ac_cv_type__Bool" = x""yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE__BOOL 1 ++_ACEOF ++ ++ ++fi ++ ++if test $ac_cv_header_stdbool_h = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_STDBOOL_H 1 ++_ACEOF ++ ++fi ++ ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for uint8_t" >&5 ++$as_echo_n "checking for uint8_t... " >&6; } ++if test "${ac_cv_c_uint8_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_uint8_t=no ++ for ac_type in 'uint8_t' 'unsigned int' 'unsigned long int' \ ++ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(($ac_type) -1 >> (8 - 1) == 1)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ case $ac_type in ++ uint8_t) ac_cv_c_uint8_t=yes ;; ++ *) ac_cv_c_uint8_t=$ac_type ;; ++esac ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_uint8_t" != no && break ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint8_t" >&5 ++$as_echo "$ac_cv_c_uint8_t" >&6; } ++ case $ac_cv_c_uint8_t in #( ++ no|yes) ;; #( ++ *) ++ ++cat >>confdefs.h <<\_ACEOF ++#define _UINT8_T 1 ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define uint8_t $ac_cv_c_uint8_t ++_ACEOF ++;; ++ esac ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for uint16_t" >&5 ++$as_echo_n "checking for uint16_t... " >&6; } ++if test "${ac_cv_c_uint16_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_uint16_t=no ++ for ac_type in 'uint16_t' 'unsigned int' 'unsigned long int' \ ++ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(($ac_type) -1 >> (16 - 1) == 1)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ case $ac_type in ++ uint16_t) ac_cv_c_uint16_t=yes ;; ++ *) ac_cv_c_uint16_t=$ac_type ;; ++esac ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_uint16_t" != no && break ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint16_t" >&5 ++$as_echo "$ac_cv_c_uint16_t" >&6; } ++ case $ac_cv_c_uint16_t in #( ++ no|yes) ;; #( ++ *) ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define uint16_t $ac_cv_c_uint16_t ++_ACEOF ++;; ++ esac ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for int32_t" >&5 ++$as_echo_n "checking for int32_t... " >&6; } ++if test "${ac_cv_c_int32_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_int32_t=no ++ for ac_type in 'int32_t' 'int' 'long int' \ ++ 'long long int' 'short int' 'signed char'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 1))]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 1) ++ < ($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 2))]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ case $ac_type in ++ int32_t) ac_cv_c_int32_t=yes ;; ++ *) ac_cv_c_int32_t=$ac_type ;; ++esac ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_int32_t" != no && break ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int32_t" >&5 ++$as_echo "$ac_cv_c_int32_t" >&6; } ++ case $ac_cv_c_int32_t in #( ++ no|yes) ;; #( ++ *) ++ ++cat >>confdefs.h <<_ACEOF ++#define int32_t $ac_cv_c_int32_t ++_ACEOF ++;; ++ esac ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for uint32_t" >&5 ++$as_echo_n "checking for uint32_t... " >&6; } ++if test "${ac_cv_c_uint32_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_uint32_t=no ++ for ac_type in 'uint32_t' 'unsigned int' 'unsigned long int' \ ++ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(($ac_type) -1 >> (32 - 1) == 1)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ case $ac_type in ++ uint32_t) ac_cv_c_uint32_t=yes ;; ++ *) ac_cv_c_uint32_t=$ac_type ;; ++esac ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_uint32_t" != no && break ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint32_t" >&5 ++$as_echo "$ac_cv_c_uint32_t" >&6; } ++ case $ac_cv_c_uint32_t in #( ++ no|yes) ;; #( ++ *) ++ ++cat >>confdefs.h <<\_ACEOF ++#define _UINT32_T 1 ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define uint32_t $ac_cv_c_uint32_t ++_ACEOF ++;; ++ esac ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for int64_t" >&5 ++$as_echo_n "checking for int64_t... " >&6; } ++if test "${ac_cv_c_int64_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_int64_t=no ++ for ac_type in 'int64_t' 'int' 'long int' \ ++ 'long long int' 'short int' 'signed char'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1))]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1) ++ < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 2))]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ case $ac_type in ++ int64_t) ac_cv_c_int64_t=yes ;; ++ *) ac_cv_c_int64_t=$ac_type ;; ++esac ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_int64_t" != no && break ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int64_t" >&5 ++$as_echo "$ac_cv_c_int64_t" >&6; } ++ case $ac_cv_c_int64_t in #( ++ no|yes) ;; #( ++ *) ++ ++cat >>confdefs.h <<_ACEOF ++#define int64_t $ac_cv_c_int64_t ++_ACEOF ++;; ++ esac ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for uint64_t" >&5 ++$as_echo_n "checking for uint64_t... " >&6; } ++if test "${ac_cv_c_uint64_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_uint64_t=no ++ for ac_type in 'uint64_t' 'unsigned int' 'unsigned long int' \ ++ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(($ac_type) -1 >> (64 - 1) == 1)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ case $ac_type in ++ uint64_t) ac_cv_c_uint64_t=yes ;; ++ *) ac_cv_c_uint64_t=$ac_type ;; ++esac ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test "$ac_cv_c_uint64_t" != no && break ++ done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint64_t" >&5 ++$as_echo "$ac_cv_c_uint64_t" >&6; } ++ case $ac_cv_c_uint64_t in #( ++ no|yes) ;; #( ++ *) ++ ++cat >>confdefs.h <<\_ACEOF ++#define _UINT64_T 1 ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define uint64_t $ac_cv_c_uint64_t ++_ACEOF ++;; ++ esac ++ ++ ++ { $as_echo "$as_me:$LINENO: checking for uintptr_t" >&5 ++$as_echo_n "checking for uintptr_t... " >&6; } ++if test "${ac_cv_type_uintptr_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_type_uintptr_t=no ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if (sizeof (uintptr_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if (sizeof ((uintptr_t))) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ : ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_type_uintptr_t=yes ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5 ++$as_echo "$ac_cv_type_uintptr_t" >&6; } ++if test "x$ac_cv_type_uintptr_t" = x""yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_UINTPTR_T 1 ++_ACEOF ++ ++else ++ for ac_type in 'unsigned int' 'unsigned long int' \ ++ 'unsigned long long int'; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++cat >>confdefs.h <<_ACEOF ++#define uintptr_t $ac_type ++_ACEOF ++ ++ ac_type= ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ test -z "$ac_type" && break ++ done ++fi ++ ++ ++ ++# The cast to long int works around a bug in the HP C Compiler ++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++# This bug is HP SR number 8606223364. ++{ $as_echo "$as_me:$LINENO: checking size of size_t" >&5 ++$as_echo_n "checking size of size_t... " >&6; } ++if test "${ac_cv_sizeof_size_t+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_hi=$ac_mid; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_lo=$ac_mid; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_lo= ac_hi= ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_hi=$ac_mid ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_size_t=$ac_lo;; ++'') if test "$ac_cv_type_size_t" = yes; then ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: cannot compute sizeof (size_t) ++See \`config.log' for more details." >&2;} ++ { (exit 77); exit 77; }; }; } ++ else ++ ac_cv_sizeof_size_t=0 ++ fi ;; ++esac ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++static long int longval () { return (long int) (sizeof (size_t)); } ++static unsigned long int ulongval () { return (long int) (sizeof (size_t)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ return 1; ++ if (((long int) (sizeof (size_t))) < 0) ++ { ++ long int i = longval (); ++ if (i != ((long int) (sizeof (size_t)))) ++ return 1; ++ fprintf (f, "%ld", i); ++ } ++ else ++ { ++ unsigned long int i = ulongval (); ++ if (i != ((long int) (sizeof (size_t)))) ++ return 1; ++ fprintf (f, "%lu", i); ++ } ++ /* Do not output a trailing newline, as this causes \r\n confusion ++ on some platforms. */ ++ return ferror (f) || fclose (f) != 0; ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_size_t=`cat conftest.val` ++else ++ $as_echo "$as_me: program exited with status $ac_status" >&5 ++$as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++if test "$ac_cv_type_size_t" = yes; then ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t) ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: cannot compute sizeof (size_t) ++See \`config.log' for more details." >&2;} ++ { (exit 77); exit 77; }; }; } ++ else ++ ac_cv_sizeof_size_t=0 ++ fi ++fi ++rm -rf conftest.dSYM ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.val ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5 ++$as_echo "$ac_cv_sizeof_size_t" >&6; } ++ ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t ++_ACEOF ++ ++ ++ ++# The command line tool can copy high resolution timestamps if such ++# information is availabe in struct stat. Otherwise one second accuracy ++# is used. ++{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5 ++$as_echo_n "checking for struct stat.st_atim.tv_nsec... " >&6; } ++if test "${ac_cv_member_struct_stat_st_atim_tv_nsec+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (ac_aggr.st_atim.tv_nsec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atim_tv_nsec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (sizeof ac_aggr.st_atim.tv_nsec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atim_tv_nsec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_member_struct_stat_st_atim_tv_nsec=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_tv_nsec" >&5 ++$as_echo "$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6; } ++if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = x""yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 ++_ACEOF ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5 ++$as_echo_n "checking for struct stat.st_atimespec.tv_nsec... " >&6; } ++if test "${ac_cv_member_struct_stat_st_atimespec_tv_nsec+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (ac_aggr.st_atimespec.tv_nsec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (sizeof ac_aggr.st_atimespec.tv_nsec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_member_struct_stat_st_atimespec_tv_nsec=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&5 ++$as_echo "$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6; } ++if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = x""yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1 ++_ACEOF ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5 ++$as_echo_n "checking for struct stat.st_atimensec... " >&6; } ++if test "${ac_cv_member_struct_stat_st_atimensec+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (ac_aggr.st_atimensec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atimensec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (sizeof ac_aggr.st_atimensec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atimensec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_member_struct_stat_st_atimensec=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimensec" >&5 ++$as_echo "$ac_cv_member_struct_stat_st_atimensec" >&6; } ++if test "x$ac_cv_member_struct_stat_st_atimensec" = x""yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1 ++_ACEOF ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: checking for struct stat.st_uatime" >&5 ++$as_echo_n "checking for struct stat.st_uatime... " >&6; } ++if test "${ac_cv_member_struct_stat_st_uatime+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (ac_aggr.st_uatime) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_uatime=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (sizeof ac_aggr.st_uatime) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_uatime=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_member_struct_stat_st_uatime=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_uatime" >&5 ++$as_echo "$ac_cv_member_struct_stat_st_uatime" >&6; } ++if test "x$ac_cv_member_struct_stat_st_uatime" = x""yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_UATIME 1 ++_ACEOF ++ ++ ++fi ++{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.st__tim.tv_nsec" >&5 ++$as_echo_n "checking for struct stat.st_atim.st__tim.tv_nsec... " >&6; } ++if test "${ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (ac_aggr.st_atim.st__tim.tv_nsec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static struct stat ac_aggr; ++if (sizeof ac_aggr.st_atim.st__tim.tv_nsec) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&5 ++$as_echo "$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" >&6; } ++if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = x""yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1 ++_ACEOF ++ ++ ++fi ++ ++ ++# Check whether --enable-largefile was given. ++if test "${enable_largefile+set}" = set; then ++ enableval=$enable_largefile; ++fi ++ ++if test "$enable_largefile" != no; then ++ ++ { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 ++$as_echo_n "checking for special C compiler options needed for large files... " >&6; } ++if test "${ac_cv_sys_largefile_CC+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_sys_largefile_CC=no ++ if test "$GCC" != yes; then ++ ac_save_CC=$CC ++ while :; do ++ # IRIX 6.2 and later do not support large files by default, ++ # so use the C compiler's -n32 option if that helps. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext ++ CC="$CC -n32" ++ rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_sys_largefile_CC=' -n32'; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext ++ break ++ done ++ CC=$ac_save_CC ++ rm -f conftest.$ac_ext ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 ++$as_echo "$ac_cv_sys_largefile_CC" >&6; } ++ if test "$ac_cv_sys_largefile_CC" != no; then ++ CC=$CC$ac_cv_sys_largefile_CC ++ fi ++ ++ { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 ++$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } ++if test "${ac_cv_sys_file_offset_bits+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_sys_file_offset_bits=no; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#define _FILE_OFFSET_BITS 64 ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_sys_file_offset_bits=64; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_cv_sys_file_offset_bits=unknown ++ break ++done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 ++$as_echo "$ac_cv_sys_file_offset_bits" >&6; } ++case $ac_cv_sys_file_offset_bits in #( ++ no | unknown) ;; ++ *) ++cat >>confdefs.h <<_ACEOF ++#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits ++_ACEOF ++;; ++esac ++rm -rf conftest* ++ if test $ac_cv_sys_file_offset_bits = unknown; then ++ { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 ++$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } ++if test "${ac_cv_sys_large_files+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_sys_large_files=no; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#define _LARGE_FILES 1 ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_sys_large_files=1; break ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_cv_sys_large_files=unknown ++ break ++done ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 ++$as_echo "$ac_cv_sys_large_files" >&6; } ++case $ac_cv_sys_large_files in #( ++ no | unknown) ;; ++ *) ++cat >>confdefs.h <<_ACEOF ++#define _LARGE_FILES $ac_cv_sys_large_files ++_ACEOF ++;; ++esac ++rm -rf conftest* ++ fi ++fi ++ ++ ++ { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 ++$as_echo_n "checking whether byte ordering is bigendian... " >&6; } ++if test "${ac_cv_c_bigendian+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_c_bigendian=unknown ++ # See if we're dealing with a universal compiler. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifndef __APPLE_CC__ ++ not a universal capable compiler ++ #endif ++ typedef int dummy; ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ # Check for potential -arch flags. It is not universal unless ++ # there are some -arch flags. Note that *ppc* also matches ++ # ppc64. This check is also rather less than ideal. ++ case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #( ++ *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;; ++ esac ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ if test $ac_cv_c_bigendian = unknown; then ++ # See if sys/param.h defines the BYTE_ORDER macro. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ #include ++ ++int ++main () ++{ ++#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ ++ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ ++ && LITTLE_ENDIAN) ++ bogus endian macros ++ #endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ # It does; now see whether it defined to BIG_ENDIAN or not. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ #include ++ ++int ++main () ++{ ++#if BYTE_ORDER != BIG_ENDIAN ++ not big endian ++ #endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_c_bigendian=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_c_bigendian=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ fi ++ if test $ac_cv_c_bigendian = unknown; then ++ # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++int ++main () ++{ ++#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) ++ bogus endian macros ++ #endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ # It does; now see whether it defined to _BIG_ENDIAN or not. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++int ++main () ++{ ++#ifndef _BIG_ENDIAN ++ not big endian ++ #endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_c_bigendian=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_c_bigendian=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ fi ++ if test $ac_cv_c_bigendian = unknown; then ++ # Compile a test program. ++ if test "$cross_compiling" = yes; then ++ # Try to guess by grepping values from an object file. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++short int ascii_mm[] = ++ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; ++ short int ascii_ii[] = ++ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; ++ int use_ascii (int i) { ++ return ascii_mm[i] + ascii_ii[i]; ++ } ++ short int ebcdic_ii[] = ++ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; ++ short int ebcdic_mm[] = ++ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; ++ int use_ebcdic (int i) { ++ return ebcdic_mm[i] + ebcdic_ii[i]; ++ } ++ extern int foo; ++ ++int ++main () ++{ ++return use_ascii (foo) == use_ebcdic (foo); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ++ ac_cv_c_bigendian=yes ++ fi ++ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then ++ if test "$ac_cv_c_bigendian" = unknown; then ++ ac_cv_c_bigendian=no ++ else ++ # finding both strings is unlikely to happen, but who knows? ++ ac_cv_c_bigendian=unknown ++ fi ++ fi ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++ ++ /* Are we little or big endian? From Harbison&Steele. */ ++ union ++ { ++ long int l; ++ char c[sizeof (long int)]; ++ } u; ++ u.l = 1; ++ return u.c[sizeof (long int) - 1] == 1; ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_try") 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_c_bigendian=no ++else ++ $as_echo "$as_me: program exited with status $ac_status" >&5 ++$as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++ac_cv_c_bigendian=yes ++fi ++rm -rf conftest.dSYM ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ ++ ++ fi ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 ++$as_echo "$ac_cv_c_bigendian" >&6; } ++ case $ac_cv_c_bigendian in #( ++ yes) ++ cat >>confdefs.h <<\_ACEOF ++#define WORDS_BIGENDIAN 1 ++_ACEOF ++;; #( ++ no) ++ ;; #( ++ universal) ++ ++cat >>confdefs.h <<\_ACEOF ++#define AC_APPLE_UNIVERSAL_BUILD 1 ++_ACEOF ++ ++ ;; #( ++ *) ++ { { $as_echo "$as_me:$LINENO: error: unknown endianness ++ presetting ac_cv_c_bigendian=no (or yes) will help" >&5 ++$as_echo "$as_me: error: unknown endianness ++ presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} ++ { (exit 1); exit 1; }; } ;; ++ esac ++ ++ ++ ++############################################################################### ++# Checks for library functions. ++############################################################################### ++ ++# Gnulib replacements as needed ++ ++ if test -z "$GETOPT_H"; then ++ ++for ac_header in getopt.h ++do ++as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++else ++ # Is the header compilable? ++{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++$as_echo_n "checking $ac_header usability... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_header_compiler=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_compiler=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++$as_echo "$ac_header_compiler" >&6; } ++ ++# Is the header present? ++{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++$as_echo_n "checking $ac_header presence... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <$ac_header> ++_ACEOF ++if { (ac_try="$ac_cpp conftest.$ac_ext" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null && { ++ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || ++ test ! -s conftest.err ++ }; then ++ ac_header_preproc=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++ ++rm -f conftest.err conftest.$ac_ext ++{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++$as_echo "$ac_header_preproc" >&6; } ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( cat <<\_ASBOX ++## --------------------------------------- ## ++## Report this to lasse.collin@tukaani.org ## ++## --------------------------------------- ## ++_ASBOX ++ ) | sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 ++$as_echo_n "checking for $ac_header... " >&6; } ++if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++ac_res=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++ ++fi ++as_val=`eval 'as_val=${'$as_ac_Header'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++else ++ GETOPT_H=getopt.h ++fi ++ ++done ++ ++ fi ++ ++ if test -z "$GETOPT_H"; then ++ ++for ac_func in getopt_long ++do ++as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 ++$as_echo_n "checking for $ac_func... " >&6; } ++if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined __stub_$ac_func || defined __stub___$ac_func ++choke me ++#endif ++ ++int ++main () ++{ ++return $ac_func (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ eval "$as_ac_var=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$as_ac_var=no" ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++ac_res=`eval 'as_val=${'$as_ac_var'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++as_val=`eval 'as_val=${'$as_ac_var'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++else ++ GETOPT_H=getopt.h ++fi ++done ++ ++ fi ++ ++ if test -z "$GETOPT_H"; then ++ { $as_echo "$as_me:$LINENO: checking whether optreset is declared" >&5 ++$as_echo_n "checking whether optreset is declared... " >&6; } ++if test "${ac_cv_have_decl_optreset+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++int ++main () ++{ ++#ifndef optreset ++ (void) optreset; ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ac_cv_have_decl_optreset=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_cv_have_decl_optreset=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5 ++$as_echo "$ac_cv_have_decl_optreset" >&6; } ++if test "x$ac_cv_have_decl_optreset" = x""yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_OPTRESET 1 ++_ACEOF ++ ++fi ++ ++ fi ++ ++ ++ ++ ++ if test -n "$GETOPT_H"; then ++ ++ case " $LIBOBJS " in ++ *" getopt.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS getopt.$ac_objext" ++ ;; ++esac ++ ++ case " $LIBOBJS " in ++ *" getopt1.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS getopt1.$ac_objext" ++ ;; ++esac ++ ++ ++ GETOPT_H=getopt.h ++ ++cat >>confdefs.h <<\_ACEOF ++#define __GETOPT_PREFIX rpl_ ++_ACEOF ++ ++ ++ ++ ++fi ++ ++ ++ ++# Find the best function to set timestamps. ++ ++ ++ ++ ++ ++for ac_func in futimens futimes futimesat utimes utime ++do ++as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ++{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 ++$as_echo_n "checking for $ac_func... " >&6; } ++if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then ++ $as_echo_n "(cached) " >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any GCC internal prototype to avoid an error. ++ Use char because int might match the return type of a GCC ++ builtin and then its argument prototype would still apply. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined __stub_$ac_func || defined __stub___$ac_func ++choke me ++#endif ++ ++int ++main () ++{ ++return $ac_func (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (ac_try="$ac_link" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_link") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest$ac_exeext && { ++ test "$cross_compiling" = yes || ++ $as_test_x conftest$ac_exeext ++ }; then ++ eval "$as_ac_var=yes" ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ eval "$as_ac_var=no" ++fi ++ ++rm -rf conftest.dSYM ++rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++ac_res=`eval 'as_val=${'$as_ac_var'} ++ $as_echo "$as_val"'` ++ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 ++$as_echo "$ac_res" >&6; } ++as_val=`eval 'as_val=${'$as_ac_var'} ++ $as_echo "$as_val"'` ++ if test "x$as_val" = x""yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ break ++fi ++done ++ ++ ++ ++{ $as_echo "$as_me:$LINENO: checking how to detect the amount of physical memory" >&5 ++$as_echo_n "checking how to detect the amount of physical memory... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++int ++main(void) ++{ ++ long i; ++ i = sysconf(_SC_PAGESIZE); ++ i = sysconf(_SC_PHYS_PAGES); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_PHYSMEM_SYSCONF 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: sysconf" >&5 ++$as_echo "sysconf" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef HAVE_SYS_PARAM_H ++# include ++#endif ++#include ++int ++main(void) ++{ ++ int name[2] = { CTL_HW, HW_PHYSMEM }; ++ unsigned long mem; ++ size_t mem_ptr_size = sizeof(mem); ++ sysctl(name, 2, &mem, &mem_ptr_size, NULL, NULL); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_PHYSMEM_SYSCTL 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: sysctl" >&5 ++$as_echo "sysctl" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++case $host_os in ++ linux*) ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++int ++main(void) ++{ ++ struct sysinfo si; ++ sysinfo(&si); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_PHYSMEM_SYSINFO 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: sysinfo" >&5 ++$as_echo "sysinfo" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++ { $as_echo "$as_me:$LINENO: result: unknown" >&5 ++$as_echo "unknown" >&6; } ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ;; ++ *) ++ { $as_echo "$as_me:$LINENO: result: unknown" >&5 ++$as_echo "unknown" >&6; } ++ ;; ++esac ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++ ++{ $as_echo "$as_me:$LINENO: checking how to detect the number of available CPU cores" >&5 ++$as_echo_n "checking how to detect the number of available CPU cores... " >&6; } ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++int ++main(void) ++{ ++ long i; ++ i = sysconf(_SC_NPROCESSORS_ONLN); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CPUCORES_SYSCONF 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: sysconf" >&5 ++$as_echo "sysconf" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef HAVE_SYS_PARAM_H ++# include ++#endif ++#include ++int ++main(void) ++{ ++ int name[2] = { CTL_HW, HW_NCPU }; ++ int cpus; ++ size_t cpus_size = sizeof(cpus); ++ sysctl(name, 2, &cpus, &cpus_size, NULL, NULL); ++ return 0; ++} ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_CPUCORES_SYSCTL 1 ++_ACEOF ++ ++ { $as_echo "$as_me:$LINENO: result: sysctl" >&5 ++$as_echo "sysctl" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++ { $as_echo "$as_me:$LINENO: result: unknown" >&5 ++$as_echo "unknown" >&6; } ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++ ++ ++############################################################################### ++# If using GCC, set some additional AM_CFLAGS: ++############################################################################### ++ ++if test "$GCC" = yes ; then ++ echo ++ echo "GCC extensions:" ++fi ++ ++# Always do the visibility check but don't set AM_CFLAGS on Windows. ++# This way things get set properly even on Windows. ++ ++ ++ CFLAG_VISIBILITY= ++ HAVE_VISIBILITY=0 ++ if test -n "$GCC"; then ++ { $as_echo "$as_me:$LINENO: checking for simple visibility declarations" >&5 ++$as_echo_n "checking for simple visibility declarations... " >&6; } ++ if test "${gl_cv_cc_visibility+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ ++ gl_save_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS -fvisibility=hidden" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++extern __attribute__((__visibility__("hidden"))) int hiddenvar; ++ extern __attribute__((__visibility__("default"))) int exportedvar; ++ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); ++ extern __attribute__((__visibility__("default"))) int exportedfunc (void); ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ gl_cv_cc_visibility=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ gl_cv_cc_visibility=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$gl_save_CFLAGS" ++fi ++ ++ { $as_echo "$as_me:$LINENO: result: $gl_cv_cc_visibility" >&5 ++$as_echo "$gl_cv_cc_visibility" >&6; } ++ if test $gl_cv_cc_visibility = yes; then ++ CFLAG_VISIBILITY="-fvisibility=hidden" ++ HAVE_VISIBILITY=1 ++ fi ++ fi ++ ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_VISIBILITY $HAVE_VISIBILITY ++_ACEOF ++ ++ ++if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then ++ AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" ++fi ++ ++if test "$GCC" = yes ; then ++ # Enable as much warnings as possible. These commented warnings won't ++ # work for this package though: ++ # * -Wunreachable-code breaks several assert(0) cases, which are ++ # backed up with "return LZMA_PROG_ERROR". ++ # * -Wcast-qual would break various things where we need a non-const ++ # pointer although we don't modify anything through it. ++ # * -Wcast-align breaks optimized CRC32 and CRC64 implementation ++ # on some architectures (not on x86), where this warning is bogus, ++ # because we take care of correct alignment. ++ # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations ++ # don't seem so useful here; at least the last one gives some ++ # warnings which are not bugs. ++ for NEW_FLAG in \ ++ -Wall \ ++ -Wextra \ ++ -Wformat=2 \ ++ -Winit-self \ ++ -Wmissing-include-dirs \ ++ -Wstrict-aliasing \ ++ -Wfloat-equal \ ++ -Wundef \ ++ -Wshadow \ ++ -Wpointer-arith \ ++ -Wbad-function-cast \ ++ -Wwrite-strings \ ++ -Wlogical-op \ ++ -Waggregate-return \ ++ -Wstrict-prototypes \ ++ -Wold-style-definition \ ++ -Wmissing-prototypes \ ++ -Wmissing-declarations \ ++ -Wmissing-noreturn \ ++ -Wredundant-decls ++ do ++ { $as_echo "$as_me:$LINENO: checking if $CC accepts $NEW_FLAG" >&5 ++$as_echo_n "checking if $CC accepts $NEW_FLAG... " >&6; } ++ OLD_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $NEW_FLAG" ++ cat >conftest.$ac_ext <<_ACEOF ++void foo(void) { } ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ ++ AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" ++ { $as_echo "$as_me:$LINENO: result: yes" >&5 ++$as_echo "yes" >&6; } ++ ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ++ { $as_echo "$as_me:$LINENO: result: no" >&5 ++$as_echo "no" >&6; } ++ ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$OLD_CFLAGS" ++ done ++ ++ # Check whether --enable-werror was given. ++if test "${enable_werror+set}" = set; then ++ enableval=$enable_werror; ++else ++ enable_werror=no ++fi ++ ++ if test "x$enable_werror" = "xyes"; then ++ AM_CFLAGS="$AM_CFLAGS -Werror" ++ fi ++fi ++ ++ ++############################################################################### ++# Create the makefiles and config.h ++############################################################################### ++ ++echo ++ ++# Don't build the lib directory at all if we don't need any replacement ++# functions. ++ if test -n "$LIBOBJS"; then ++ COND_GNULIB_TRUE= ++ COND_GNULIB_FALSE='#' ++else ++ COND_GNULIB_TRUE='#' ++ COND_GNULIB_FALSE= ++fi ++ ++ ++# Add default AM_CFLAGS. ++ ++ ++# Set additional flags for static/dynamic linking. The idea is that every ++# program (not library) being built will use either STATIC_{CPPFLAGS,LDFLAGS} ++# or DYNAMIC_{CPPFLAGS,LDFLAGS} depending on which type of linkage is ++# preferred. These preferences get overriden by use of --disable-static, ++# --disable-shared, or --enable-dynamic. ++# ++# This is quite messy, because we want to use LZMA_API_STATIC when linking ++# against static liblzma. It's needed on Windows. ++if test "x$enable_static" = xno; then ++ enable_dynamic=yes ++fi ++if test "x$enable_shared" = xno; then ++ enable_dynamic=no ++fi ++case $enable_dynamic in ++ yes) ++ STATIC_CPPFLAGS= ++ STATIC_LDFLAGS= ++ DYNAMIC_CPPFLAGS= ++ DYNAMIC_LDFLAGS= ++ ;; ++ mixed) ++ STATIC_CPPFLAGS="-DLZMA_API_STATIC" ++ STATIC_LDFLAGS="-static" ++ DYNAMIC_CPPFLAGS= ++ DYNAMIC_LDFLAGS= ++ ;; ++ no) ++ STATIC_CPPFLAGS="-DLZMA_API_STATIC" ++ STATIC_LDFLAGS="-static" ++ DYNAMIC_CPPFLAGS="-DLZMA_API_STATIC" ++ DYNAMIC_LDFLAGS="-static" ++ ;; ++esac ++ ++ ++ ++ ++ ++# This is needed for src/scripts. ++xz=`echo xz | sed "$program_transform_name"` ++ ++ ++ac_config_files="$ac_config_files Doxyfile Makefile po/Makefile.in lib/Makefile src/Makefile src/liblzma/liblzma.pc src/liblzma/Makefile src/liblzma/api/Makefile src/xz/Makefile src/xzdec/Makefile src/lzmainfo/Makefile src/scripts/Makefile src/scripts/xzdiff src/scripts/xzgrep src/scripts/xzmore src/scripts/xzless tests/Makefile debug/Makefile" ++ ++ ++cat >confcache <<\_ACEOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs, see configure's option --config-cache. ++# It is not useful on other systems. If it contains results you don't ++# want to keep, you may remove or edit it. ++# ++# config.status only pays attention to the cache file if you give it ++# the --recheck option to rerun configure. ++# ++# `ac_cv_env_foo' variables (set or unset) will be overridden when ++# loading this file, other *unset* `ac_cv_foo' will be assigned the ++# following values. ++ ++_ACEOF ++ ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, we kill variables containing newlines. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++( ++ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do ++ eval ac_val=\$$ac_var ++ case $ac_val in #( ++ *${as_nl}*) ++ case $ac_var in #( ++ *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 ++$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ++ esac ++ case $ac_var in #( ++ _ | IFS | as_nl) ;; #( ++ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( ++ *) $as_unset $ac_var ;; ++ esac ;; ++ esac ++ done ++ ++ (set) 2>&1 | ++ case $as_nl`(ac_space=' '; set) 2>&1` in #( ++ *${as_nl}ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote ++ # substitution turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ ;; #( ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ++ ;; ++ esac | ++ sort ++) | ++ sed ' ++ /^ac_cv_env_/b end ++ t clear ++ :clear ++ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ ++ t end ++ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ ++ :end' >>confcache ++if diff "$cache_file" confcache >/dev/null 2>&1; then :; else ++ if test -w "$cache_file"; then ++ test "x$cache_file" != "x/dev/null" && ++ { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 ++$as_echo "$as_me: updating cache $cache_file" >&6;} ++ cat confcache >$cache_file ++ else ++ { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 ++$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} ++ fi ++fi ++rm -f confcache ++ ++test "x$prefix" = xNONE && prefix=$ac_default_prefix ++# Let make expand exec_prefix. ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ++ ++DEFS=-DHAVE_CONFIG_H ++ ++ac_libobjs= ++ac_ltlibobjs= ++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue ++ # 1. Remove the extension, and $U if already installed. ++ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ++ ac_i=`$as_echo "$ac_i" | sed "$ac_script"` ++ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR ++ # will be set to the directory where LIBOBJS objects are built. ++ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ++ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' ++done ++LIBOBJS=$ac_libobjs ++ ++LTLIBOBJS=$ac_ltlibobjs ++ ++ ++if test -z "${COND_W32_TRUE}" && test -z "${COND_W32_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_W32\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_W32\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_MAIN_ENCODER_TRUE}" && test -z "${COND_MAIN_ENCODER_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_MAIN_ENCODER\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_MAIN_ENCODER\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_MAIN_DECODER_TRUE}" && test -z "${COND_MAIN_DECODER_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_MAIN_DECODER\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_MAIN_DECODER\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_LZMA1_TRUE}" && test -z "${COND_FILTER_LZMA1_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_LZMA1\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_LZMA1\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_LZMA1_TRUE}" && test -z "${COND_ENCODER_LZMA1_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_LZMA1\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_LZMA1\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_LZMA1_TRUE}" && test -z "${COND_DECODER_LZMA1_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_LZMA1\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_LZMA1\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_LZMA2_TRUE}" && test -z "${COND_FILTER_LZMA2_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_LZMA2\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_LZMA2\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_LZMA2_TRUE}" && test -z "${COND_ENCODER_LZMA2_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_LZMA2\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_LZMA2\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_LZMA2_TRUE}" && test -z "${COND_DECODER_LZMA2_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_LZMA2\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_LZMA2\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_SUBBLOCK_TRUE}" && test -z "${COND_FILTER_SUBBLOCK_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_SUBBLOCK\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_SUBBLOCK\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_SUBBLOCK_TRUE}" && test -z "${COND_ENCODER_SUBBLOCK_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_SUBBLOCK\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_SUBBLOCK\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_SUBBLOCK_TRUE}" && test -z "${COND_DECODER_SUBBLOCK_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_SUBBLOCK\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_SUBBLOCK\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_DELTA_TRUE}" && test -z "${COND_FILTER_DELTA_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_DELTA\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_DELTA\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_DELTA_TRUE}" && test -z "${COND_ENCODER_DELTA_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_DELTA\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_DELTA\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_DELTA_TRUE}" && test -z "${COND_DECODER_DELTA_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_DELTA\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_DELTA\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_X86_TRUE}" && test -z "${COND_FILTER_X86_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_X86_TRUE}" && test -z "${COND_ENCODER_X86_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_X86_TRUE}" && test -z "${COND_DECODER_X86_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_POWERPC_TRUE}" && test -z "${COND_FILTER_POWERPC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_POWERPC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_POWERPC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_POWERPC_TRUE}" && test -z "${COND_ENCODER_POWERPC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_POWERPC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_POWERPC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_POWERPC_TRUE}" && test -z "${COND_DECODER_POWERPC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_POWERPC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_POWERPC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_IA64_TRUE}" && test -z "${COND_FILTER_IA64_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_IA64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_IA64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_IA64_TRUE}" && test -z "${COND_ENCODER_IA64_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_IA64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_IA64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_IA64_TRUE}" && test -z "${COND_DECODER_IA64_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_IA64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_IA64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_ARM_TRUE}" && test -z "${COND_FILTER_ARM_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_ARM\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_ARM\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_ARM_TRUE}" && test -z "${COND_ENCODER_ARM_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_ARM\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_ARM\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_ARM_TRUE}" && test -z "${COND_DECODER_ARM_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_ARM\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_ARM\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_ARMTHUMB_TRUE}" && test -z "${COND_FILTER_ARMTHUMB_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_ARMTHUMB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_ARMTHUMB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_ARMTHUMB_TRUE}" && test -z "${COND_ENCODER_ARMTHUMB_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_ARMTHUMB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_ARMTHUMB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_ARMTHUMB_TRUE}" && test -z "${COND_DECODER_ARMTHUMB_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_ARMTHUMB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_ARMTHUMB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_SPARC_TRUE}" && test -z "${COND_FILTER_SPARC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_SPARC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_SPARC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_SPARC_TRUE}" && test -z "${COND_ENCODER_SPARC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_SPARC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_SPARC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_SPARC_TRUE}" && test -z "${COND_DECODER_SPARC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_SPARC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_SPARC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_SIMPLE_TRUE}" && test -z "${COND_FILTER_SIMPLE_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_SIMPLE\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_SIMPLE\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_SIMPLE_TRUE}" && test -z "${COND_ENCODER_SIMPLE_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_SIMPLE\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_SIMPLE\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_SIMPLE_TRUE}" && test -z "${COND_DECODER_SIMPLE_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_SIMPLE\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_SIMPLE\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_FILTER_LZ_TRUE}" && test -z "${COND_FILTER_LZ_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_FILTER_LZ\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_FILTER_LZ\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ENCODER_LZ_TRUE}" && test -z "${COND_ENCODER_LZ_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ENCODER_LZ\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ENCODER_LZ\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_DECODER_LZ_TRUE}" && test -z "${COND_DECODER_LZ_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_DECODER_LZ\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_DECODER_LZ\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_CHECK_CRC32_TRUE}" && test -z "${COND_CHECK_CRC32_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_CHECK_CRC32\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_CHECK_CRC32\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_CHECK_CRC64_TRUE}" && test -z "${COND_CHECK_CRC64_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_CHECK_CRC64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_CHECK_CRC64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_CHECK_SHA256_TRUE}" && test -z "${COND_CHECK_SHA256_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_CHECK_SHA256\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_CHECK_SHA256\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ASM_X86_TRUE}" && test -z "${COND_ASM_X86_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ASM_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ASM_X86\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_ASM_X86_64_TRUE}" && test -z "${COND_ASM_X86_64_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_ASM_X86_64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_ASM_X86_64\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_SMALL_TRUE}" && test -z "${COND_SMALL_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_SMALL\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_SMALL\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ if test -n "$EXEEXT"; then ++ am__EXEEXT_TRUE= ++ am__EXEEXT_FALSE='#' ++else ++ am__EXEEXT_TRUE='#' ++ am__EXEEXT_FALSE= ++fi ++ ++if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCCAS\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"am__fastdepCCAS\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${COND_SHARED_TRUE}" && test -z "${COND_SHARED_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_SHARED\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_SHARED\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++if test -z "${COND_GNULIB_TRUE}" && test -z "${COND_GNULIB_FALSE}"; then ++ { { $as_echo "$as_me:$LINENO: error: conditional \"COND_GNULIB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++$as_echo "$as_me: error: conditional \"COND_GNULIB\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++: ${CONFIG_STATUS=./config.status} ++ac_write_fail=0 ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files $CONFIG_STATUS" ++{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 ++$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} ++cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++#! $SHELL ++# Generated by $as_me. ++# Run this file to recreate the current configuration. ++# Compiler output produced by configure, useful for debugging ++# configure, is in config.log if it exists. ++ ++debug=false ++ac_cs_recheck=false ++ac_cs_silent=false ++SHELL=\${CONFIG_SHELL-$SHELL} ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++## --------------------- ## ++## M4sh Initialization. ## ++## --------------------- ## ++ ++# Be more Bourne compatible ++DUALCASE=1; export DUALCASE # for MKS sh ++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ++ emulate sh ++ NULLCMD=: ++ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which ++ # is contrary to our usage. Disable this feature. ++ alias -g '${1+"$@"}'='"$@"' ++ setopt NO_GLOB_SUBST ++else ++ case `(set -o) 2>/dev/null` in ++ *posix*) set -o posix ;; ++esac ++ ++fi ++ ++ ++ ++ ++# PATH needs CR ++# Avoid depending upon Character Ranges. ++as_cr_letters='abcdefghijklmnopqrstuvwxyz' ++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ++as_cr_Letters=$as_cr_letters$as_cr_LETTERS ++as_cr_digits='0123456789' ++as_cr_alnum=$as_cr_Letters$as_cr_digits ++ ++as_nl=' ++' ++export as_nl ++# Printing a long string crashes Solaris 7 /usr/bin/printf. ++as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo ++as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo ++if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then ++ as_echo='printf %s\n' ++ as_echo_n='printf %s' ++else ++ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then ++ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' ++ as_echo_n='/usr/ucb/echo -n' ++ else ++ as_echo_body='eval expr "X$1" : "X\\(.*\\)"' ++ as_echo_n_body='eval ++ arg=$1; ++ case $arg in ++ *"$as_nl"*) ++ expr "X$arg" : "X\\(.*\\)$as_nl"; ++ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; ++ esac; ++ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ++ ' ++ export as_echo_n_body ++ as_echo_n='sh -c $as_echo_n_body as_echo' ++ fi ++ export as_echo_body ++ as_echo='sh -c $as_echo_body as_echo' ++fi ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ PATH_SEPARATOR=: ++ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { ++ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || ++ PATH_SEPARATOR=';' ++ } ++fi ++ ++# Support unset when possible. ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ as_unset=unset ++else ++ as_unset=false ++fi ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. Quoting is ++# there to prevent editors from complaining about space-tab. ++# (If _AS_PATH_WALK were called with IFS unset, it would disable word ++# splitting by setting IFS to empty value.) ++IFS=" "" $as_nl" ++ ++# Find who we are. Look in the path if we contain no directory separator. ++case $0 in ++ *[\\/]* ) as_myself=$0 ;; ++ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ++done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++# We did not find ourselves, most probably we were run as `sh COMMAND' ++# in which case we are not to be found in the path. ++if test "x$as_myself" = x; then ++ as_myself=$0 ++fi ++if test ! -f "$as_myself"; then ++ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 ++ { (exit 1); exit 1; } ++fi ++ ++# Work around bugs in pre-3.0 UWIN ksh. ++for as_var in ENV MAIL MAILPATH ++do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var ++done ++PS1='$ ' ++PS2='> ' ++PS4='+ ' ++ ++# NLS nuisances. ++LC_ALL=C ++export LC_ALL ++LANGUAGE=C ++export LANGUAGE ++ ++# Required to use basename. ++if expr a : '\(a\)' >/dev/null 2>&1 && ++ test "X`expr 00001 : '.*\(...\)'`" = X001; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++ ++# Name of the executable. ++as_me=`$as_basename -- "$0" || ++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X/"$0" | ++ sed '/^.*\/\([^/][^/]*\)\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\/\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ ++# CDPATH. ++$as_unset CDPATH ++ ++ ++ ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { ++ ++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ++ # uniformly replaced by the line number. The first 'sed' inserts a ++ # line-number line after each line using $LINENO; the second 'sed' ++ # does the real work. The second script uses 'N' to pair each ++ # line-number line with the line containing $LINENO, and appends ++ # trailing '-' during substitution so that $LINENO is not a special ++ # case at line end. ++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ++ # scripts with optimization help from Paolo Bonzini. Blame Lee ++ # E. McMahon (1931-1989) for sed's syntax. :-) ++ sed -n ' ++ p ++ /[$]LINENO/= ++ ' <$as_myself | ++ sed ' ++ s/[$]LINENO.*/&-/ ++ t lineno ++ b ++ :lineno ++ N ++ :loop ++ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ ++ t loop ++ s/-\n.*// ++ ' >$as_me.lineno && ++ chmod +x "$as_me.lineno" || ++ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 ++ { (exit 1); exit 1; }; } ++ ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensitive to this). ++ . "./$as_me.lineno" ++ # Exit status is that of the last command. ++ exit ++} ++ ++ ++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then ++ as_dirname=dirname ++else ++ as_dirname=false ++fi ++ ++ECHO_C= ECHO_N= ECHO_T= ++case `echo -n x` in ++-n*) ++ case `echo 'x\c'` in ++ *c*) ECHO_T=' ';; # ECHO_T is single tab character. ++ *) ECHO_C='\c';; ++ esac;; ++*) ++ ECHO_N='-n';; ++esac ++if expr a : '\(a\)' >/dev/null 2>&1 && ++ test "X`expr 00001 : '.*\(...\)'`" = X001; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++rm -f conf$$ conf$$.exe conf$$.file ++if test -d conf$$.dir; then ++ rm -f conf$$.dir/conf$$.file ++else ++ rm -f conf$$.dir ++ mkdir conf$$.dir 2>/dev/null ++fi ++if (echo >conf$$.file) 2>/dev/null; then ++ if ln -s conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s='ln -s' ++ # ... but there are two gotchas: ++ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. ++ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. ++ # In both cases, we have to default to `cp -p'. ++ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || ++ as_ln_s='cp -p' ++ elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++ else ++ as_ln_s='cp -p' ++ fi ++else ++ as_ln_s='cp -p' ++fi ++rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file ++rmdir conf$$.dir 2>/dev/null ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p=: ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++if test -x / >/dev/null 2>&1; then ++ as_test_x='test -x' ++else ++ if ls -dL / >/dev/null 2>&1; then ++ as_ls_L_option=L ++ else ++ as_ls_L_option= ++ fi ++ as_test_x=' ++ eval sh -c '\'' ++ if test -d "$1"; then ++ test -d "$1/."; ++ else ++ case $1 in ++ -*)set "./$1";; ++ esac; ++ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ++ ???[sx]*):;;*)false;;esac;fi ++ '\'' sh ++ ' ++fi ++as_executable_p=$as_test_x ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++exec 6>&1 ++ ++# Save the log message, to keep $[0] and so on meaningful, and to ++# report actual input values of CONFIG_FILES etc. instead of their ++# values after options handling. ++ac_log=" ++This file was extended by XZ Utils $as_me 4.999.9beta, which was ++generated by GNU Autoconf 2.63. Invocation command line was ++ ++ CONFIG_FILES = $CONFIG_FILES ++ CONFIG_HEADERS = $CONFIG_HEADERS ++ CONFIG_LINKS = $CONFIG_LINKS ++ CONFIG_COMMANDS = $CONFIG_COMMANDS ++ $ $0 $@ ++ ++on `(hostname || uname -n) 2>/dev/null | sed 1q` ++" ++ ++_ACEOF ++ ++case $ac_config_files in *" ++"*) set x $ac_config_files; shift; ac_config_files=$*;; ++esac ++ ++case $ac_config_headers in *" ++"*) set x $ac_config_headers; shift; ac_config_headers=$*;; ++esac ++ ++ ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++# Files that config.status was made for. ++config_files="$ac_config_files" ++config_headers="$ac_config_headers" ++config_commands="$ac_config_commands" ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++ac_cs_usage="\ ++\`$as_me' instantiates files from templates according to the ++current configuration. ++ ++Usage: $0 [OPTION]... [FILE]... ++ ++ -h, --help print this help, then exit ++ -V, --version print version number and configuration settings, then exit ++ -q, --quiet, --silent ++ do not print progress messages ++ -d, --debug don't remove temporary files ++ --recheck update $as_me by reconfiguring in the same conditions ++ --file=FILE[:TEMPLATE] ++ instantiate the configuration file FILE ++ --header=FILE[:TEMPLATE] ++ instantiate the configuration header FILE ++ ++Configuration files: ++$config_files ++ ++Configuration headers: ++$config_headers ++ ++Configuration commands: ++$config_commands ++ ++Report bugs to ." ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ac_cs_version="\\ ++XZ Utils config.status 4.999.9beta ++configured by $0, generated by GNU Autoconf 2.63, ++ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" ++ ++Copyright (C) 2008 Free Software Foundation, Inc. ++This config.status script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it." ++ ++ac_pwd='$ac_pwd' ++srcdir='$srcdir' ++INSTALL='$INSTALL' ++MKDIR_P='$MKDIR_P' ++AWK='$AWK' ++test -n "\$AWK" || AWK=awk ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++# The default lists apply if the user does not specify any file. ++ac_need_defaults=: ++while test $# != 0 ++do ++ case $1 in ++ --*=*) ++ ac_option=`expr "X$1" : 'X\([^=]*\)='` ++ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ++ ac_shift=: ++ ;; ++ *) ++ ac_option=$1 ++ ac_optarg=$2 ++ ac_shift=shift ++ ;; ++ esac ++ ++ case $ac_option in ++ # Handling of the options. ++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ ac_cs_recheck=: ;; ++ --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) ++ $as_echo "$ac_cs_version"; exit ;; ++ --debug | --debu | --deb | --de | --d | -d ) ++ debug=: ;; ++ --file | --fil | --fi | --f ) ++ $ac_shift ++ case $ac_optarg in ++ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ++ ac_need_defaults=false;; ++ --header | --heade | --head | --hea ) ++ $ac_shift ++ case $ac_optarg in ++ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ++ ac_need_defaults=false;; ++ --he | --h) ++ # Conflict between --help and --header ++ { $as_echo "$as_me: error: ambiguous option: $1 ++Try \`$0 --help' for more information." >&2 ++ { (exit 1); exit 1; }; };; ++ --help | --hel | -h ) ++ $as_echo "$ac_cs_usage"; exit ;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil | --si | --s) ++ ac_cs_silent=: ;; ++ ++ # This is an error. ++ -*) { $as_echo "$as_me: error: unrecognized option: $1 ++Try \`$0 --help' for more information." >&2 ++ { (exit 1); exit 1; }; } ;; ++ ++ *) ac_config_targets="$ac_config_targets $1" ++ ac_need_defaults=false ;; ++ ++ esac ++ shift ++done ++ ++ac_configure_extra_args= ++ ++if $ac_cs_silent; then ++ exec 6>/dev/null ++ ac_configure_extra_args="$ac_configure_extra_args --silent" ++fi ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++if \$ac_cs_recheck; then ++ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++ shift ++ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 ++ CONFIG_SHELL='$SHELL' ++ export CONFIG_SHELL ++ exec "\$@" ++fi ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++exec 5>>config.log ++{ ++ echo ++ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ++## Running $as_me. ## ++_ASBOX ++ $as_echo "$ac_log" ++} >&5 ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++# ++# INIT-COMMANDS ++# ++AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" ++ ++ ++# The HP-UX ksh and POSIX shell print the target directory to stdout ++# if CDPATH is set. ++(unset CDPATH) >/dev/null 2>&1 && unset CDPATH ++ ++sed_quote_subst='$sed_quote_subst' ++double_quote_subst='$double_quote_subst' ++delay_variable_subst='$delay_variable_subst' ++macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' ++macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' ++AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' ++DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' ++OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' ++enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' ++enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' ++pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' ++enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' ++host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' ++host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' ++host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' ++build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' ++build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' ++build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' ++SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' ++Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' ++GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' ++EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' ++FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' ++LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' ++NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' ++LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' ++max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ++ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' ++exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' ++lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' ++lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' ++lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' ++reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' ++reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' ++file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' ++AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' ++AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' ++STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' ++RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' ++old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' ++CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' ++compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' ++GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' ++objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' ++SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ++ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' ++MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' ++lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' ++need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' ++DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' ++NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' ++LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' ++OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' ++OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' ++libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' ++shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' ++enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' ++export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' ++whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' ++compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' ++old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' ++allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' ++no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' ++inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' ++link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' ++fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' ++always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' ++export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' ++include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' ++prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' ++variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' ++need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' ++need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' ++version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' ++runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' ++shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' ++shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' ++libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' ++library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' ++soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' ++postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' ++finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' ++sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' ++sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' ++enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' ++enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' ++enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' ++old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' ++striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' ++LD_RC='`$ECHO "X$LD_RC" | $Xsed -e "$delay_single_quote_subst"`' ++old_archive_cmds_RC='`$ECHO "X$old_archive_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++compiler_RC='`$ECHO "X$compiler_RC" | $Xsed -e "$delay_single_quote_subst"`' ++GCC_RC='`$ECHO "X$GCC_RC" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_no_builtin_flag_RC='`$ECHO "X$lt_prog_compiler_no_builtin_flag_RC" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_wl_RC='`$ECHO "X$lt_prog_compiler_wl_RC" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_pic_RC='`$ECHO "X$lt_prog_compiler_pic_RC" | $Xsed -e "$delay_single_quote_subst"`' ++lt_prog_compiler_static_RC='`$ECHO "X$lt_prog_compiler_static_RC" | $Xsed -e "$delay_single_quote_subst"`' ++lt_cv_prog_compiler_c_o_RC='`$ECHO "X$lt_cv_prog_compiler_c_o_RC" | $Xsed -e "$delay_single_quote_subst"`' ++archive_cmds_need_lc_RC='`$ECHO "X$archive_cmds_need_lc_RC" | $Xsed -e "$delay_single_quote_subst"`' ++enable_shared_with_static_runtimes_RC='`$ECHO "X$enable_shared_with_static_runtimes_RC" | $Xsed -e "$delay_single_quote_subst"`' ++export_dynamic_flag_spec_RC='`$ECHO "X$export_dynamic_flag_spec_RC" | $Xsed -e "$delay_single_quote_subst"`' ++whole_archive_flag_spec_RC='`$ECHO "X$whole_archive_flag_spec_RC" | $Xsed -e "$delay_single_quote_subst"`' ++compiler_needs_object_RC='`$ECHO "X$compiler_needs_object_RC" | $Xsed -e "$delay_single_quote_subst"`' ++old_archive_from_new_cmds_RC='`$ECHO "X$old_archive_from_new_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++old_archive_from_expsyms_cmds_RC='`$ECHO "X$old_archive_from_expsyms_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++archive_cmds_RC='`$ECHO "X$archive_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++archive_expsym_cmds_RC='`$ECHO "X$archive_expsym_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++module_cmds_RC='`$ECHO "X$module_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++module_expsym_cmds_RC='`$ECHO "X$module_expsym_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++with_gnu_ld_RC='`$ECHO "X$with_gnu_ld_RC" | $Xsed -e "$delay_single_quote_subst"`' ++allow_undefined_flag_RC='`$ECHO "X$allow_undefined_flag_RC" | $Xsed -e "$delay_single_quote_subst"`' ++no_undefined_flag_RC='`$ECHO "X$no_undefined_flag_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_libdir_flag_spec_RC='`$ECHO "X$hardcode_libdir_flag_spec_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_libdir_flag_spec_ld_RC='`$ECHO "X$hardcode_libdir_flag_spec_ld_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_libdir_separator_RC='`$ECHO "X$hardcode_libdir_separator_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_direct_RC='`$ECHO "X$hardcode_direct_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_direct_absolute_RC='`$ECHO "X$hardcode_direct_absolute_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_minus_L_RC='`$ECHO "X$hardcode_minus_L_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_shlibpath_var_RC='`$ECHO "X$hardcode_shlibpath_var_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_automatic_RC='`$ECHO "X$hardcode_automatic_RC" | $Xsed -e "$delay_single_quote_subst"`' ++inherit_rpath_RC='`$ECHO "X$inherit_rpath_RC" | $Xsed -e "$delay_single_quote_subst"`' ++link_all_deplibs_RC='`$ECHO "X$link_all_deplibs_RC" | $Xsed -e "$delay_single_quote_subst"`' ++fix_srcfile_path_RC='`$ECHO "X$fix_srcfile_path_RC" | $Xsed -e "$delay_single_quote_subst"`' ++always_export_symbols_RC='`$ECHO "X$always_export_symbols_RC" | $Xsed -e "$delay_single_quote_subst"`' ++export_symbols_cmds_RC='`$ECHO "X$export_symbols_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++exclude_expsyms_RC='`$ECHO "X$exclude_expsyms_RC" | $Xsed -e "$delay_single_quote_subst"`' ++include_expsyms_RC='`$ECHO "X$include_expsyms_RC" | $Xsed -e "$delay_single_quote_subst"`' ++prelink_cmds_RC='`$ECHO "X$prelink_cmds_RC" | $Xsed -e "$delay_single_quote_subst"`' ++file_list_spec_RC='`$ECHO "X$file_list_spec_RC" | $Xsed -e "$delay_single_quote_subst"`' ++hardcode_action_RC='`$ECHO "X$hardcode_action_RC" | $Xsed -e "$delay_single_quote_subst"`' ++ ++LTCC='$LTCC' ++LTCFLAGS='$LTCFLAGS' ++compiler='$compiler_DEFAULT' ++ ++# Quote evaled strings. ++for var in SED \ ++GREP \ ++EGREP \ ++FGREP \ ++LD \ ++NM \ ++LN_S \ ++lt_SP2NL \ ++lt_NL2SP \ ++reload_flag \ ++deplibs_check_method \ ++file_magic_cmd \ ++AR \ ++AR_FLAGS \ ++STRIP \ ++RANLIB \ ++CC \ ++CFLAGS \ ++compiler \ ++lt_cv_sys_global_symbol_pipe \ ++lt_cv_sys_global_symbol_to_cdecl \ ++lt_cv_sys_global_symbol_to_c_name_address \ ++lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ ++SHELL \ ++ECHO \ ++lt_prog_compiler_no_builtin_flag \ ++lt_prog_compiler_wl \ ++lt_prog_compiler_pic \ ++lt_prog_compiler_static \ ++lt_cv_prog_compiler_c_o \ ++need_locks \ ++DSYMUTIL \ ++NMEDIT \ ++LIPO \ ++OTOOL \ ++OTOOL64 \ ++shrext_cmds \ ++export_dynamic_flag_spec \ ++whole_archive_flag_spec \ ++compiler_needs_object \ ++with_gnu_ld \ ++allow_undefined_flag \ ++no_undefined_flag \ ++hardcode_libdir_flag_spec \ ++hardcode_libdir_flag_spec_ld \ ++hardcode_libdir_separator \ ++fix_srcfile_path \ ++exclude_expsyms \ ++include_expsyms \ ++file_list_spec \ ++variables_saved_for_relink \ ++libname_spec \ ++library_names_spec \ ++soname_spec \ ++finish_eval \ ++old_striplib \ ++striplib \ ++LD_RC \ ++compiler_RC \ ++lt_prog_compiler_no_builtin_flag_RC \ ++lt_prog_compiler_wl_RC \ ++lt_prog_compiler_pic_RC \ ++lt_prog_compiler_static_RC \ ++lt_cv_prog_compiler_c_o_RC \ ++export_dynamic_flag_spec_RC \ ++whole_archive_flag_spec_RC \ ++compiler_needs_object_RC \ ++with_gnu_ld_RC \ ++allow_undefined_flag_RC \ ++no_undefined_flag_RC \ ++hardcode_libdir_flag_spec_RC \ ++hardcode_libdir_flag_spec_ld_RC \ ++hardcode_libdir_separator_RC \ ++fix_srcfile_path_RC \ ++exclude_expsyms_RC \ ++include_expsyms_RC \ ++file_list_spec_RC; do ++ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in ++ *[\\\\\\\`\\"\\\$]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++# Double-quote double-evaled strings. ++for var in reload_cmds \ ++old_postinstall_cmds \ ++old_postuninstall_cmds \ ++old_archive_cmds \ ++extract_expsyms_cmds \ ++old_archive_from_new_cmds \ ++old_archive_from_expsyms_cmds \ ++archive_cmds \ ++archive_expsym_cmds \ ++module_cmds \ ++module_expsym_cmds \ ++export_symbols_cmds \ ++prelink_cmds \ ++postinstall_cmds \ ++postuninstall_cmds \ ++finish_cmds \ ++sys_lib_search_path_spec \ ++sys_lib_dlsearch_path_spec \ ++old_archive_cmds_RC \ ++old_archive_from_new_cmds_RC \ ++old_archive_from_expsyms_cmds_RC \ ++archive_cmds_RC \ ++archive_expsym_cmds_RC \ ++module_cmds_RC \ ++module_expsym_cmds_RC \ ++export_symbols_cmds_RC \ ++prelink_cmds_RC; do ++ case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in ++ *[\\\\\\\`\\"\\\$]*) ++ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ++ ;; ++ *) ++ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ++ ;; ++ esac ++done ++ ++# Fix-up fallback echo if it was mangled by the above quoting rules. ++case \$lt_ECHO in ++*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ++ ;; ++esac ++ ++ac_aux_dir='$ac_aux_dir' ++xsi_shell='$xsi_shell' ++lt_shell_append='$lt_shell_append' ++ ++# See if we are running on zsh, and set the options which allow our ++# commands through without removal of \ escapes INIT. ++if test -n "\${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++fi ++ ++ ++ PACKAGE='$PACKAGE' ++ VERSION='$VERSION' ++ TIMESTAMP='$TIMESTAMP' ++ RM='$RM' ++ ofile='$ofile' ++ ++ ++ ++ ++ ++# Capture the value of obsolete ALL_LINGUAS because we need it to compute ++ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it ++ # from automake < 1.5. ++ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' ++ # Capture the value of LINGUAS because we need it to compute CATALOGS. ++ LINGUAS="${LINGUAS-%UNSET%}" ++ ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++ ++# Handling of arguments. ++for ac_config_target in $ac_config_targets ++do ++ case $ac_config_target in ++ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ++ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; ++ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; ++ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; ++ "Doxyfile") CONFIG_FILES="$CONFIG_FILES Doxyfile" ;; ++ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; ++ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; ++ "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; ++ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; ++ "src/liblzma/liblzma.pc") CONFIG_FILES="$CONFIG_FILES src/liblzma/liblzma.pc" ;; ++ "src/liblzma/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/Makefile" ;; ++ "src/liblzma/api/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/api/Makefile" ;; ++ "src/xz/Makefile") CONFIG_FILES="$CONFIG_FILES src/xz/Makefile" ;; ++ "src/xzdec/Makefile") CONFIG_FILES="$CONFIG_FILES src/xzdec/Makefile" ;; ++ "src/lzmainfo/Makefile") CONFIG_FILES="$CONFIG_FILES src/lzmainfo/Makefile" ;; ++ "src/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES src/scripts/Makefile" ;; ++ "src/scripts/xzdiff") CONFIG_FILES="$CONFIG_FILES src/scripts/xzdiff" ;; ++ "src/scripts/xzgrep") CONFIG_FILES="$CONFIG_FILES src/scripts/xzgrep" ;; ++ "src/scripts/xzmore") CONFIG_FILES="$CONFIG_FILES src/scripts/xzmore" ;; ++ "src/scripts/xzless") CONFIG_FILES="$CONFIG_FILES src/scripts/xzless" ;; ++ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; ++ "debug/Makefile") CONFIG_FILES="$CONFIG_FILES debug/Makefile" ;; ++ ++ *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 ++$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} ++ { (exit 1); exit 1; }; };; ++ esac ++done ++ ++ ++# If the user did not use the arguments to specify the items to instantiate, ++# then the envvar interface is used. Set only those that are not. ++# We use the long form for the default assignment because of an extremely ++# bizarre bug on SunOS 4.1.3. ++if $ac_need_defaults; then ++ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files ++ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers ++ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands ++fi ++ ++# Have a temporary directory for convenience. Make it in the build tree ++# simply because there is no reason against having it here, and in addition, ++# creating and moving files from /tmp can sometimes cause problems. ++# Hook for its removal unless debugging. ++# Note that there is a small window in which the directory will not be cleaned: ++# after its creation but before its name has been assigned to `$tmp'. ++$debug || ++{ ++ tmp= ++ trap 'exit_status=$? ++ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ++' 0 ++ trap '{ (exit 1); exit 1; }' 1 2 13 15 ++} ++# Create a (secure) tmp directory for tmp files. ++ ++{ ++ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=./conf$$-$RANDOM ++ (umask 077 && mkdir "$tmp") ++} || ++{ ++ $as_echo "$as_me: cannot create a temporary directory in ." >&2 ++ { (exit 1); exit 1; } ++} ++ ++# Set up the scripts for CONFIG_FILES section. ++# No need to generate them if there are no CONFIG_FILES. ++# This happens for instance with `./config.status config.h'. ++if test -n "$CONFIG_FILES"; then ++ ++ ++ac_cr=' +' ++ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` ++if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ++ ac_cs_awk_cr='\\r' ++else ++ ac_cs_awk_cr=$ac_cr ++fi ++ ++echo 'BEGIN {' >"$tmp/subs1.awk" && ++_ACEOF ++ ++ ++{ ++ echo "cat >conf$$subs.awk <<_ACEOF" && ++ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && ++ echo "_ACEOF" ++} >conf$$subs.sh || ++ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 ++$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} ++ { (exit 1); exit 1; }; } ++ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ++ac_delim='%!_!# ' ++for ac_last_try in false false false false false :; do ++ . ./conf$$subs.sh || ++ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 ++$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} ++ { (exit 1); exit 1; }; } ++ ++ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` ++ if test $ac_delim_n = $ac_delim_num; then ++ break ++ elif $ac_last_try; then ++ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 ++$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} ++ { (exit 1); exit 1; }; } ++ else ++ ac_delim="$ac_delim!$ac_delim _$ac_delim!! " ++ fi ++done ++rm -f conf$$subs.sh ++ ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++cat >>"\$tmp/subs1.awk" <<\\_ACAWK && ++_ACEOF ++sed -n ' ++h ++s/^/S["/; s/!.*/"]=/ ++p ++g ++s/^[^!]*!// ++:repl ++t repl ++s/'"$ac_delim"'$// ++t delim ++:nl ++h ++s/\(.\{148\}\).*/\1/ ++t more1 ++s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ ++p ++n ++b repl ++:more1 ++s/["\\]/\\&/g; s/^/"/; s/$/"\\/ ++p ++g ++s/.\{148\}// ++t nl ++:delim ++h ++s/\(.\{148\}\).*/\1/ ++t more2 ++s/["\\]/\\&/g; s/^/"/; s/$/"/ ++p ++b ++:more2 ++s/["\\]/\\&/g; s/^/"/; s/$/"\\/ ++p ++g ++s/.\{148\}// ++t delim ++' >$CONFIG_STATUS || ac_write_fail=1 ++rm -f conf$$subs.awk ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++_ACAWK ++cat >>"\$tmp/subs1.awk" <<_ACAWK && ++ for (key in S) S_is_set[key] = 1 ++ FS = "" ++ ++} ++{ ++ line = $ 0 ++ nfields = split(line, field, "@") ++ substed = 0 ++ len = length(field[1]) ++ for (i = 2; i < nfields; i++) { ++ key = field[i] ++ keylen = length(key) ++ if (S_is_set[key]) { ++ value = S[key] ++ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) ++ len += length(value) + length(field[++i]) ++ substed = 1 ++ } else ++ len += 1 + keylen ++ } ++ ++ print line ++} ++ ++_ACAWK ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then ++ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" ++else ++ cat ++fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ ++ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 ++$as_echo "$as_me: error: could not setup config files machinery" >&2;} ++ { (exit 1); exit 1; }; } ++_ACEOF ++ ++# VPATH may cause trouble with some makes, so we remove $(srcdir), ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and ++# trailing colons and then remove the whole line if VPATH becomes empty ++# (actually we leave an empty line to preserve line numbers). ++if test "x$srcdir" = x.; then ++ ac_vpsub='/^[ ]*VPATH[ ]*=/{ ++s/:*\$(srcdir):*/:/ ++s/:*\${srcdir}:*/:/ ++s/:*@srcdir@:*/:/ ++s/^\([^=]*=[ ]*\):*/\1/ ++s/:*$// ++s/^[^=]*=[ ]*$// ++}' ++fi ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++fi # test -n "$CONFIG_FILES" ++ ++# Set up the scripts for CONFIG_HEADERS section. ++# No need to generate them if there are no CONFIG_HEADERS. ++# This happens for instance with `./config.status Makefile'. ++if test -n "$CONFIG_HEADERS"; then ++cat >"$tmp/defines.awk" <<\_ACAWK || ++BEGIN { ++_ACEOF ++ ++# Transform confdefs.h into an awk script `defines.awk', embedded as ++# here-document in config.status, that substitutes the proper values into ++# config.h.in to produce config.h. ++ ++# Create a delimiter string that does not exist in confdefs.h, to ease ++# handling of long lines. ++ac_delim='%!_!# ' ++for ac_last_try in false false :; do ++ ac_t=`sed -n "/$ac_delim/p" confdefs.h` ++ if test -z "$ac_t"; then ++ break ++ elif $ac_last_try; then ++ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 ++$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} ++ { (exit 1); exit 1; }; } ++ else ++ ac_delim="$ac_delim!$ac_delim _$ac_delim!! " ++ fi ++done ++ ++# For the awk script, D is an array of macro values keyed by name, ++# likewise P contains macro parameters if any. Preserve backslash ++# newline sequences. ++ ++ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* ++sed -n ' ++s/.\{148\}/&'"$ac_delim"'/g ++t rset ++:rset ++s/^[ ]*#[ ]*define[ ][ ]*/ / ++t def ++d ++:def ++s/\\$// ++t bsnl ++s/["\\]/\\&/g ++s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ ++D["\1"]=" \3"/p ++s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p ++d ++:bsnl ++s/["\\]/\\&/g ++s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ ++D["\1"]=" \3\\\\\\n"\\/p ++t cont ++s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p ++t cont ++d ++:cont ++n ++s/.\{148\}/&'"$ac_delim"'/g ++t clear ++:clear ++s/\\$// ++t bsnlc ++s/["\\]/\\&/g; s/^/"/; s/$/"/p ++d ++:bsnlc ++s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p ++b cont ++' >$CONFIG_STATUS || ac_write_fail=1 ++ ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ for (key in D) D_is_set[key] = 1 ++ FS = "" ++} ++/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { ++ line = \$ 0 ++ split(line, arg, " ") ++ if (arg[1] == "#") { ++ defundef = arg[2] ++ mac1 = arg[3] ++ } else { ++ defundef = substr(arg[1], 2) ++ mac1 = arg[2] ++ } ++ split(mac1, mac2, "(") #) ++ macro = mac2[1] ++ prefix = substr(line, 1, index(line, defundef) - 1) ++ if (D_is_set[macro]) { ++ # Preserve the white space surrounding the "#". ++ print prefix "define", macro P[macro] D[macro] ++ next ++ } else { ++ # Replace #undef with comments. This is necessary, for example, ++ # in the case of _POSIX_SOURCE, which is predefined and required ++ # on some systems where configure will not decide to define it. ++ if (defundef == "undef") { ++ print "/*", prefix defundef, macro, "*/" ++ next ++ } ++ } ++} ++{ print } ++_ACAWK ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++ { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 ++$as_echo "$as_me: error: could not setup config headers machinery" >&2;} ++ { (exit 1); exit 1; }; } ++fi # test -n "$CONFIG_HEADERS" ++ ++ ++eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" ++shift ++for ac_tag ++do ++ case $ac_tag in ++ :[FHLC]) ac_mode=$ac_tag; continue;; ++ esac ++ case $ac_mode$ac_tag in ++ :[FHL]*:*);; ++ :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 ++$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} ++ { (exit 1); exit 1; }; };; ++ :[FH]-) ac_tag=-:-;; ++ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; ++ esac ++ ac_save_IFS=$IFS ++ IFS=: ++ set x $ac_tag ++ IFS=$ac_save_IFS ++ shift ++ ac_file=$1 ++ shift ++ ++ case $ac_mode in ++ :L) ac_source=$1;; ++ :[FH]) ++ ac_file_inputs= ++ for ac_f ++ do ++ case $ac_f in ++ -) ac_f="$tmp/stdin";; ++ *) # Look for the file first in the build tree, then in the source tree ++ # (if the path is not absolute). The absolute path cannot be DOS-style, ++ # because $ac_f cannot contain `:'. ++ test -f "$ac_f" || ++ case $ac_f in ++ [\\/$]*) false;; ++ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; ++ esac || ++ { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 ++$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} ++ { (exit 1); exit 1; }; };; ++ esac ++ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ++ ac_file_inputs="$ac_file_inputs '$ac_f'" ++ done ++ ++ # Let's still pretend it is `configure' which instantiates (i.e., don't ++ # use $as_me), people would be surprised to read: ++ # /* config.h. Generated by config.status. */ ++ configure_input='Generated from '` ++ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' ++ `' by configure.' ++ if test x"$ac_file" != x-; then ++ configure_input="$ac_file. $configure_input" ++ { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 ++$as_echo "$as_me: creating $ac_file" >&6;} ++ fi ++ # Neutralize special characters interpreted by sed in replacement strings. ++ case $configure_input in #( ++ *\&* | *\|* | *\\* ) ++ ac_sed_conf_input=`$as_echo "$configure_input" | ++ sed 's/[\\\\&|]/\\\\&/g'`;; #( ++ *) ac_sed_conf_input=$configure_input;; ++ esac ++ ++ case $ac_tag in ++ *:-:* | *:-) cat >"$tmp/stdin" \ ++ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 ++$as_echo "$as_me: error: could not create $ac_file" >&2;} ++ { (exit 1); exit 1; }; } ;; ++ esac ++ ;; ++ esac ++ ++ ac_dir=`$as_dirname -- "$ac_file" || ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$ac_file" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ { as_dir="$ac_dir" ++ case $as_dir in #( ++ -*) as_dir=./$as_dir;; ++ esac ++ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { ++ as_dirs= ++ while :; do ++ case $as_dir in #( ++ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( ++ *) as_qdir=$as_dir;; ++ esac ++ as_dirs="'$as_qdir' $as_dirs" ++ as_dir=`$as_dirname -- "$as_dir" || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ test -d "$as_dir" && break ++ done ++ test -z "$as_dirs" || eval "mkdir $as_dirs" ++ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 ++$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} ++ { (exit 1); exit 1; }; }; } ++ ac_builddir=. ++ ++case "$ac_dir" in ++.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; ++*) ++ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` ++ # A ".." for each directory in $ac_dir_suffix. ++ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` ++ case $ac_top_builddir_sub in ++ "") ac_top_builddir_sub=. ac_top_build_prefix= ;; ++ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; ++ esac ;; ++esac ++ac_abs_top_builddir=$ac_pwd ++ac_abs_builddir=$ac_pwd$ac_dir_suffix ++# for backward compatibility: ++ac_top_builddir=$ac_top_build_prefix ++ ++case $srcdir in ++ .) # We are building in place. ++ ac_srcdir=. ++ ac_top_srcdir=$ac_top_builddir_sub ++ ac_abs_top_srcdir=$ac_pwd ;; ++ [\\/]* | ?:[\\/]* ) # Absolute name. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ++ ac_abs_top_srcdir=$srcdir ;; ++ *) # Relative name. ++ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_build_prefix$srcdir ++ ac_abs_top_srcdir=$ac_pwd/$srcdir ;; ++esac ++ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix ++ ++ ++ case $ac_mode in ++ :F) ++ # ++ # CONFIG_FILE ++ # ++ ++ case $INSTALL in ++ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ++ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; ++ esac ++ ac_MKDIR_P=$MKDIR_P ++ case $MKDIR_P in ++ [\\/$]* | ?:[\\/]* ) ;; ++ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; ++ esac ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++# If the template does not know about datarootdir, expand it. ++# FIXME: This hack should be removed a few years after 2.60. ++ac_datarootdir_hack=; ac_datarootdir_seen= ++ ++ac_sed_dataroot=' ++/datarootdir/ { ++ p ++ q ++} ++/@datadir@/p ++/@docdir@/p ++/@infodir@/p ++/@localedir@/p ++/@mandir@/p ++' ++case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in ++*datarootdir*) ac_datarootdir_seen=yes;; ++*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 ++$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ ac_datarootdir_hack=' ++ s&@datadir@&$datadir&g ++ s&@docdir@&$docdir&g ++ s&@infodir@&$infodir&g ++ s&@localedir@&$localedir&g ++ s&@mandir@&$mandir&g ++ s&\\\${datarootdir}&$datarootdir&g' ;; ++esac ++_ACEOF ++ ++# Neutralize VPATH when `$srcdir' = `.'. ++# Shell code in configure.ac might set extrasub. ++# FIXME: do we really want to maintain this feature? ++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ++ac_sed_extra="$ac_vpsub ++$extrasub ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ++:t ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b ++s|@configure_input@|$ac_sed_conf_input|;t t ++s&@top_builddir@&$ac_top_builddir_sub&;t t ++s&@top_build_prefix@&$ac_top_build_prefix&;t t ++s&@srcdir@&$ac_srcdir&;t t ++s&@abs_srcdir@&$ac_abs_srcdir&;t t ++s&@top_srcdir@&$ac_top_srcdir&;t t ++s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t ++s&@builddir@&$ac_builddir&;t t ++s&@abs_builddir@&$ac_abs_builddir&;t t ++s&@abs_top_builddir@&$ac_abs_top_builddir&;t t ++s&@INSTALL@&$ac_INSTALL&;t t ++s&@MKDIR_P@&$ac_MKDIR_P&;t t ++$ac_datarootdir_hack ++" ++eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ ++ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 ++$as_echo "$as_me: error: could not create $ac_file" >&2;} ++ { (exit 1); exit 1; }; } ++ ++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && ++ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && ++ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && ++ { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' ++which seems to be undefined. Please make sure it is defined." >&5 ++$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' ++which seems to be undefined. Please make sure it is defined." >&2;} ++ ++ rm -f "$tmp/stdin" ++ case $ac_file in ++ -) cat "$tmp/out" && rm -f "$tmp/out";; ++ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; ++ esac \ ++ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 ++$as_echo "$as_me: error: could not create $ac_file" >&2;} ++ { (exit 1); exit 1; }; } ++ ;; ++ :H) ++ # ++ # CONFIG_HEADER ++ # ++ if test x"$ac_file" != x-; then ++ { ++ $as_echo "/* $configure_input */" \ ++ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" ++ } >"$tmp/config.h" \ ++ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 ++$as_echo "$as_me: error: could not create $ac_file" >&2;} ++ { (exit 1); exit 1; }; } ++ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then ++ { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 ++$as_echo "$as_me: $ac_file is unchanged" >&6;} ++ else ++ rm -f "$ac_file" ++ mv "$tmp/config.h" "$ac_file" \ ++ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 ++$as_echo "$as_me: error: could not create $ac_file" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ else ++ $as_echo "/* $configure_input */" \ ++ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ ++ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 ++$as_echo "$as_me: error: could not create -" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++# Compute "$ac_file"'s index in $config_headers. ++_am_arg="$ac_file" ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $_am_arg | $_am_arg:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; ++ esac ++done ++echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || ++$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$_am_arg" : 'X\(//\)[^/]' \| \ ++ X"$_am_arg" : 'X\(//\)$' \| \ ++ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$_am_arg" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'`/stamp-h$_am_stamp_count ++ ;; ++ ++ :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 ++$as_echo "$as_me: executing $ac_file commands" >&6;} ++ ;; ++ esac ++ ++ ++ case $ac_file$ac_mode in ++ "depfiles":C) test x"$AMDEP_TRUE" != x"" || { ++ # Autoconf 2.62 quotes --file arguments for eval, but not when files ++ # are listed without --file. Let's play safe and only enable the eval ++ # if we detect the quoting. ++ case $CONFIG_FILES in ++ *\'*) eval set x "$CONFIG_FILES" ;; ++ *) set x $CONFIG_FILES ;; ++ esac ++ shift ++ for mf ++ do ++ # Strip MF so we end up with the name of the file. ++ mf=`echo "$mf" | sed -e 's/:.*$//'` ++ # Check whether this is an Automake generated Makefile or not. ++ # We used to match only the files named `Makefile.in', but ++ # some people rename them; so instead we look at the file content. ++ # Grep'ing the first line is not enough: some people post-process ++ # each Makefile.in and add a new line on top of each file to say so. ++ # Grep'ing the whole file is not good either: AIX grep has a line ++ # limit of 2048, but all sed's we know have understand at least 4000. ++ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then ++ dirpart=`$as_dirname -- "$mf" || ++$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$mf" : 'X\(//\)[^/]' \| \ ++ X"$mf" : 'X\(//\)$' \| \ ++ X"$mf" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$mf" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ else ++ continue ++ fi ++ # Extract the definition of DEPDIR, am__include, and am__quote ++ # from the Makefile without running `make'. ++ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` ++ test -z "$DEPDIR" && continue ++ am__include=`sed -n 's/^am__include = //p' < "$mf"` ++ test -z "am__include" && continue ++ am__quote=`sed -n 's/^am__quote = //p' < "$mf"` ++ # When using ansi2knr, U may be empty or an underscore; expand it ++ U=`sed -n 's/^U = //p' < "$mf"` ++ # Find all dependency output files, they are included files with ++ # $(DEPDIR) in their names. We invoke sed twice because it is the ++ # simplest approach to changing $(DEPDIR) to its actual value in the ++ # expansion. ++ for file in `sed -n " ++ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ ++ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do ++ # Make sure the directory exists. ++ test -f "$dirpart/$file" && continue ++ fdir=`$as_dirname -- "$file" || ++$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$file" : 'X\(//\)[^/]' \| \ ++ X"$file" : 'X\(//\)$' \| \ ++ X"$file" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$file" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ { as_dir=$dirpart/$fdir ++ case $as_dir in #( ++ -*) as_dir=./$as_dir;; ++ esac ++ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { ++ as_dirs= ++ while :; do ++ case $as_dir in #( ++ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( ++ *) as_qdir=$as_dir;; ++ esac ++ as_dirs="'$as_qdir' $as_dirs" ++ as_dir=`$as_dirname -- "$as_dir" || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || ++$as_echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)[^/].*/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\/\)$/{ ++ s//\1/ ++ q ++ } ++ /^X\(\/\).*/{ ++ s//\1/ ++ q ++ } ++ s/.*/./; q'` ++ test -d "$as_dir" && break ++ done ++ test -z "$as_dirs" || eval "mkdir $as_dirs" ++ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 ++$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} ++ { (exit 1); exit 1; }; }; } ++ # echo "creating $dirpart/$file" ++ echo '# dummy' > "$dirpart/$file" ++ done ++ done ++} ++ ;; ++ "libtool":C) ++ ++ # See if we are running on zsh, and set the options which allow our ++ # commands through without removal of \ escapes. ++ if test -n "${ZSH_VERSION+set}" ; then ++ setopt NO_GLOB_SUBST ++ fi ++ ++ cfgfile="${ofile}T" ++ trap "$RM \"$cfgfile\"; exit 1" 1 2 15 ++ $RM "$cfgfile" ++ ++ cat <<_LT_EOF >> "$cfgfile" ++#! $SHELL ++ ++# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ++# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION ++# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ++# NOTE: Changes made to this file will be lost: look at ltmain.sh. ++# ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ++# 2006, 2007, 2008 Free Software Foundation, Inc. ++# Written by Gordon Matzigkeit, 1996 ++# ++# This file is part of GNU Libtool. ++# ++# GNU Libtool is free software; you can redistribute it and/or ++# modify it under the terms of the GNU General Public License as ++# published by the Free Software Foundation; either version 2 of ++# the License, or (at your option) any later version. ++# ++# As a special exception to the GNU General Public License, ++# if you distribute this file as part of a program or library that ++# is built using GNU Libtool, you may include this file under the ++# same distribution terms that you use for the rest of that program. ++# ++# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy ++# can be downloaded from http://www.gnu.org/licenses/gpl.html, or ++# obtained by writing to the Free Software Foundation, Inc., ++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++ ++# The names of the tagged configurations supported by this script. ++available_tags="RC " ++ ++# ### BEGIN LIBTOOL CONFIG ++ ++# Which release of libtool.m4 was used? ++macro_version=$macro_version ++macro_revision=$macro_revision ++ ++# Assembler program. ++AS=$AS ++ ++# DLL creation program. ++DLLTOOL=$DLLTOOL ++ ++# Object dumper program. ++OBJDUMP=$OBJDUMP ++ ++# Whether or not to build shared libraries. ++build_libtool_libs=$enable_shared ++ ++# Whether or not to build static libraries. ++build_old_libs=$enable_static ++ ++# What type of objects to build. ++pic_mode=$pic_mode ++ ++# Whether or not to optimize for fast installation. ++fast_install=$enable_fast_install ++ ++# The host system. ++host_alias=$host_alias ++host=$host ++host_os=$host_os ++ ++# The build system. ++build_alias=$build_alias ++build=$build ++build_os=$build_os ++ ++# A sed program that does not truncate output. ++SED=$lt_SED ++ ++# Sed that helps us avoid accidentally triggering echo(1) options like -n. ++Xsed="\$SED -e 1s/^X//" ++ ++# A grep program that handles long lines. ++GREP=$lt_GREP ++ ++# An ERE matcher. ++EGREP=$lt_EGREP ++ ++# A literal string matcher. ++FGREP=$lt_FGREP ++ ++# A BSD- or MS-compatible name lister. ++NM=$lt_NM ++ ++# Whether we need soft or hard links. ++LN_S=$lt_LN_S ++ ++# What is the maximum length of a command? ++max_cmd_len=$max_cmd_len ++ ++# Object file suffix (normally "o"). ++objext=$ac_objext ++ ++# Executable file suffix (normally ""). ++exeext=$exeext ++ ++# whether the shell understands "unset". ++lt_unset=$lt_unset ++ ++# turn spaces into newlines. ++SP2NL=$lt_lt_SP2NL ++ ++# turn newlines into spaces. ++NL2SP=$lt_lt_NL2SP ++ ++# How to create reloadable object files. ++reload_flag=$lt_reload_flag ++reload_cmds=$lt_reload_cmds ++ ++# Method to check whether dependent libraries are shared objects. ++deplibs_check_method=$lt_deplibs_check_method ++ ++# Command to use when deplibs_check_method == "file_magic". ++file_magic_cmd=$lt_file_magic_cmd ++ ++# The archiver. ++AR=$lt_AR ++AR_FLAGS=$lt_AR_FLAGS ++ ++# A symbol stripping program. ++STRIP=$lt_STRIP ++ ++# Commands used to install an old-style archive. ++RANLIB=$lt_RANLIB ++old_postinstall_cmds=$lt_old_postinstall_cmds ++old_postuninstall_cmds=$lt_old_postuninstall_cmds ++ ++# A C compiler. ++LTCC=$lt_CC ++ ++# LTCC compiler flags. ++LTCFLAGS=$lt_CFLAGS ++ ++# Take the output of nm and produce a listing of raw symbols and C names. ++global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe ++ ++# Transform the output of nm in a proper C declaration. ++global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl ++ ++# Transform the output of nm in a C name address pair. ++global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address ++ ++# Transform the output of nm in a C name address pair when lib prefix is needed. ++global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix ++ ++# The name of the directory that contains temporary libtool files. ++objdir=$objdir ++ ++# Shell to use when invoking shell scripts. ++SHELL=$lt_SHELL ++ ++# An echo program that does not interpret backslashes. ++ECHO=$lt_ECHO ++ ++# Used to examine libraries when file_magic_cmd begins with "file". ++MAGIC_CMD=$MAGIC_CMD ++ ++# Must we lock files when doing compilation? ++need_locks=$lt_need_locks ++ ++# Tool to manipulate archived DWARF debug symbol files on Mac OS X. ++DSYMUTIL=$lt_DSYMUTIL ++ ++# Tool to change global to local symbols on Mac OS X. ++NMEDIT=$lt_NMEDIT ++ ++# Tool to manipulate fat objects and archives on Mac OS X. ++LIPO=$lt_LIPO ++ ++# ldd/readelf like tool for Mach-O binaries on Mac OS X. ++OTOOL=$lt_OTOOL ++ ++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. ++OTOOL64=$lt_OTOOL64 ++ ++# Old archive suffix (normally "a"). ++libext=$libext ++ ++# Shared library suffix (normally ".so"). ++shrext_cmds=$lt_shrext_cmds ++ ++# The commands to extract the exported symbol list from a shared archive. ++extract_expsyms_cmds=$lt_extract_expsyms_cmds ++ ++# Variables whose values should be saved in libtool wrapper scripts and ++# restored at link time. ++variables_saved_for_relink=$lt_variables_saved_for_relink ++ ++# Do we need the "lib" prefix for modules? ++need_lib_prefix=$need_lib_prefix ++ ++# Do we need a version for libraries? ++need_version=$need_version ++ ++# Library versioning type. ++version_type=$version_type ++ ++# Shared library runtime path variable. ++runpath_var=$runpath_var ++ ++# Shared library path variable. ++shlibpath_var=$shlibpath_var ++ ++# Is shlibpath searched before the hard-coded library search path? ++shlibpath_overrides_runpath=$shlibpath_overrides_runpath ++ ++# Format of library name prefix. ++libname_spec=$lt_libname_spec ++ ++# List of archive names. First name is the real one, the rest are links. ++# The last name is the one that the linker finds with -lNAME ++library_names_spec=$lt_library_names_spec ++ ++# The coded name of the library, if different from the real name. ++soname_spec=$lt_soname_spec ++ ++# Command to use after installation of a shared archive. ++postinstall_cmds=$lt_postinstall_cmds ++ ++# Command to use after uninstallation of a shared archive. ++postuninstall_cmds=$lt_postuninstall_cmds ++ ++# Commands used to finish a libtool library installation in a directory. ++finish_cmds=$lt_finish_cmds ++ ++# As "finish_cmds", except a single script fragment to be evaled but ++# not shown. ++finish_eval=$lt_finish_eval ++ ++# Whether we should hardcode library paths into libraries. ++hardcode_into_libs=$hardcode_into_libs ++ ++# Compile-time system search path for libraries. ++sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ++ ++# Run-time system search path for libraries. ++sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec ++ ++# Whether dlopen is supported. ++dlopen_support=$enable_dlopen ++ ++# Whether dlopen of programs is supported. ++dlopen_self=$enable_dlopen_self ++ ++# Whether dlopen of statically linked programs is supported. ++dlopen_self_static=$enable_dlopen_self_static ++ ++# Commands to strip libraries. ++old_striplib=$lt_old_striplib ++striplib=$lt_striplib ++ ++ ++# The linker used to build libraries. ++LD=$lt_LD ++ ++# Commands used to build an old-style archive. ++old_archive_cmds=$lt_old_archive_cmds ++ ++# A language specific compiler. ++CC=$lt_compiler ++ ++# Is the compiler the GNU compiler? ++with_gcc=$GCC ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_lt_prog_compiler_pic ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_lt_prog_compiler_static ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_lt_cv_prog_compiler_c_o ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$archive_cmds_need_lc ++ ++# Whether or not to disallow shared libs when runtime libs are static. ++allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec ++ ++# Whether the compiler copes with passing no objects directly. ++compiler_needs_object=$lt_compiler_needs_object ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ++ ++# Commands used to build a shared archive. ++archive_cmds=$lt_archive_cmds ++archive_expsym_cmds=$lt_archive_expsym_cmds ++ ++# Commands used to build a loadable module if different from building ++# a shared archive. ++module_cmds=$lt_module_cmds ++module_expsym_cmds=$lt_module_expsym_cmds ++ ++# Whether we are building with GNU ld or not. ++with_gnu_ld=$lt_with_gnu_ld ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag ++ ++# Flag that enforces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ++ ++# If ld is used when linking, flag to hardcode \$libdir into a binary ++# during linking. This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld ++ ++# Whether we need a single "-rpath" flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator ++ ++# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes ++# DIR into the resulting binary. ++hardcode_direct=$hardcode_direct ++ ++# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes ++# DIR into the resulting binary and the resulting library dependency is ++# "absolute",i.e impossible to change by setting \${shlibpath_var} if the ++# library is relocated. ++hardcode_direct_absolute=$hardcode_direct_absolute ++ ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++# into the resulting binary. ++hardcode_minus_L=$hardcode_minus_L ++ ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++# into the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var ++ ++# Set to "yes" if building a shared library automatically hardcodes DIR ++# into the library and all subsequent libraries and executables linked ++# against it. ++hardcode_automatic=$hardcode_automatic ++ ++# Set to yes if linker adds runtime paths of dependent libraries ++# to runtime path list. ++inherit_rpath=$inherit_rpath ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path=$lt_fix_srcfile_path ++ ++# Set to "yes" if exported symbols are required. ++always_export_symbols=$always_export_symbols ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms ++ ++# Commands necessary for linking programs (against libraries) with templates. ++prelink_cmds=$lt_prelink_cmds ++ ++# Specify filename containing input files. ++file_list_spec=$lt_file_list_spec ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action ++ ++# ### END LIBTOOL CONFIG ++ ++_LT_EOF ++ ++ case $host_os in ++ aix3*) ++ cat <<\_LT_EOF >> "$cfgfile" ++# AIX sometimes has problems with the GCC collect2 program. For some ++# reason, if we set the COLLECT_NAMES environment variable, the problems ++# vanish in a puff of smoke. ++if test "X${COLLECT_NAMES+set}" != Xset; then ++ COLLECT_NAMES= ++ export COLLECT_NAMES ++fi ++_LT_EOF ++ ;; ++ esac ++ ++ ++ltmain="$ac_aux_dir/ltmain.sh" ++ ++ ++ # We use sed instead of cat because bash on DJGPP gets confused if ++ # if finds mixed CR/LF and LF-only lines. Since sed operates in ++ # text mode, it properly converts lines to CR/LF. This bash problem ++ # is reportedly fixed, but why not run on old versions too? ++ sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ case $xsi_shell in ++ yes) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result="${1##*/}" ++} ++ ++# func_dirname_and_basename file append nondir_replacement ++# perform func_basename and func_dirname in a single function ++# call: ++# dirname: Compute the dirname of FILE. If nonempty, ++# add APPEND to the result, otherwise set result ++# to NONDIR_REPLACEMENT. ++# value returned in "$func_dirname_result" ++# basename: Compute filename of FILE. ++# value retuned in "$func_basename_result" ++# Implementation must be kept synchronized with func_dirname ++# and func_basename. For efficiency, we do not delegate to ++# those functions but instead duplicate the functionality here. ++func_dirname_and_basename () ++{ ++ case ${1} in ++ */*) func_dirname_result="${1%/*}${2}" ;; ++ * ) func_dirname_result="${3}" ;; ++ esac ++ func_basename_result="${1##*/}" ++} ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++func_stripname () ++{ ++ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are ++ # positional parameters, so assign one to ordinary parameter first. ++ func_stripname_result=${3} ++ func_stripname_result=${func_stripname_result#"${1}"} ++ func_stripname_result=${func_stripname_result%"${2}"} ++} ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=${1%%=*} ++ func_opt_split_arg=${1#*=} ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ case ${1} in ++ *.lo) func_lo2o_result=${1%.lo}.${objext} ;; ++ *) func_lo2o_result=${1} ;; ++ esac ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=${1%.*}.lo ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=$(( $* )) ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=${#1} ++} ++ ++_LT_EOF ++ ;; ++ *) # Bourne compatible functions. ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_dirname file append nondir_replacement ++# Compute the dirname of FILE. If nonempty, add APPEND to the result, ++# otherwise set result to NONDIR_REPLACEMENT. ++func_dirname () ++{ ++ # Extract subdirectory from the argument. ++ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` ++ if test "X$func_dirname_result" = "X${1}"; then ++ func_dirname_result="${3}" ++ else ++ func_dirname_result="$func_dirname_result${2}" ++ fi ++} ++ ++# func_basename file ++func_basename () ++{ ++ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` ++} ++ ++ ++# func_stripname prefix suffix name ++# strip PREFIX and SUFFIX off of NAME. ++# PREFIX and SUFFIX must not contain globbing or regex special ++# characters, hashes, percent signs, but SUFFIX may contain a leading ++# dot (in which case that matches only a dot). ++# func_strip_suffix prefix name ++func_stripname () ++{ ++ case ${2} in ++ .*) func_stripname_result=`$ECHO "X${3}" \ ++ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; ++ *) func_stripname_result=`$ECHO "X${3}" \ ++ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; ++ esac ++} ++ ++# sed scripts: ++my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' ++my_sed_long_arg='1s/^-[^=]*=//' ++ ++# func_opt_split ++func_opt_split () ++{ ++ func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` ++ func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` ++} ++ ++# func_lo2o object ++func_lo2o () ++{ ++ func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` ++} ++ ++# func_xform libobj-or-source ++func_xform () ++{ ++ func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` ++} ++ ++# func_arith arithmetic-term... ++func_arith () ++{ ++ func_arith_result=`expr "$@"` ++} ++ ++# func_len string ++# STRING may not start with a hyphen. ++func_len () ++{ ++ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` ++} ++ ++_LT_EOF ++esac ++ ++case $lt_shell_append in ++ yes) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$1+=\$2" ++} ++_LT_EOF ++ ;; ++ *) ++ cat << \_LT_EOF >> "$cfgfile" ++ ++# func_append var value ++# Append VALUE to the end of shell variable VAR. ++func_append () ++{ ++ eval "$1=\$$1\$2" ++} ++ ++_LT_EOF ++ ;; ++ esac ++ ++ ++ sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ ++ || (rm -f "$cfgfile"; exit 1) ++ ++ mv -f "$cfgfile" "$ofile" || ++ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ++ chmod +x "$ofile" ++ ++ ++ cat <<_LT_EOF >> "$ofile" ++ ++# ### BEGIN LIBTOOL TAG CONFIG: RC ++ ++# The linker used to build libraries. ++LD=$lt_LD_RC ++ ++# Commands used to build an old-style archive. ++old_archive_cmds=$lt_old_archive_cmds_RC ++ ++# A language specific compiler. ++CC=$lt_compiler_RC ++ ++# Is the compiler the GNU compiler? ++with_gcc=$GCC_RC ++ ++# Compiler flag to turn off builtin functions. ++no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC ++ ++# How to pass a linker flag through the compiler. ++wl=$lt_lt_prog_compiler_wl_RC ++ ++# Additional compiler flags for building library objects. ++pic_flag=$lt_lt_prog_compiler_pic_RC ++ ++# Compiler flag to prevent dynamic linking. ++link_static_flag=$lt_lt_prog_compiler_static_RC ++ ++# Does compiler simultaneously support -c and -o options? ++compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC ++ ++# Whether or not to add -lc for building shared libraries. ++build_libtool_need_lc=$archive_cmds_need_lc_RC ++ ++# Whether or not to disallow shared libs when runtime libs are static. ++allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC ++ ++# Compiler flag to allow reflexive dlopens. ++export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC ++ ++# Compiler flag to generate shared objects directly from archives. ++whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC ++ ++# Whether the compiler copes with passing no objects directly. ++compiler_needs_object=$lt_compiler_needs_object_RC ++ ++# Create an old-style archive from a shared archive. ++old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC ++ ++# Create a temporary old-style archive to link instead of a shared archive. ++old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC ++ ++# Commands used to build a shared archive. ++archive_cmds=$lt_archive_cmds_RC ++archive_expsym_cmds=$lt_archive_expsym_cmds_RC ++ ++# Commands used to build a loadable module if different from building ++# a shared archive. ++module_cmds=$lt_module_cmds_RC ++module_expsym_cmds=$lt_module_expsym_cmds_RC ++ ++# Whether we are building with GNU ld or not. ++with_gnu_ld=$lt_with_gnu_ld_RC ++ ++# Flag that allows shared libraries with undefined symbols to be built. ++allow_undefined_flag=$lt_allow_undefined_flag_RC ++ ++# Flag that enforces no undefined symbols. ++no_undefined_flag=$lt_no_undefined_flag_RC ++ ++# Flag to hardcode \$libdir into a binary during linking. ++# This must work even if \$libdir does not exist ++hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC ++ ++# If ld is used when linking, flag to hardcode \$libdir into a binary ++# during linking. This must work even if \$libdir does not exist. ++hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC ++ ++# Whether we need a single "-rpath" flag with a separated argument. ++hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC ++ ++# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes ++# DIR into the resulting binary. ++hardcode_direct=$hardcode_direct_RC ++ ++# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes ++# DIR into the resulting binary and the resulting library dependency is ++# "absolute",i.e impossible to change by setting \${shlibpath_var} if the ++# library is relocated. ++hardcode_direct_absolute=$hardcode_direct_absolute_RC ++ ++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR ++# into the resulting binary. ++hardcode_minus_L=$hardcode_minus_L_RC ++ ++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR ++# into the resulting binary. ++hardcode_shlibpath_var=$hardcode_shlibpath_var_RC ++ ++# Set to "yes" if building a shared library automatically hardcodes DIR ++# into the library and all subsequent libraries and executables linked ++# against it. ++hardcode_automatic=$hardcode_automatic_RC ++ ++# Set to yes if linker adds runtime paths of dependent libraries ++# to runtime path list. ++inherit_rpath=$inherit_rpath_RC ++ ++# Whether libtool must link a program against all its dependency libraries. ++link_all_deplibs=$link_all_deplibs_RC ++ ++# Fix the shell variable \$srcfile for the compiler. ++fix_srcfile_path=$lt_fix_srcfile_path_RC ++ ++# Set to "yes" if exported symbols are required. ++always_export_symbols=$always_export_symbols_RC ++ ++# The commands to list exported symbols. ++export_symbols_cmds=$lt_export_symbols_cmds_RC ++ ++# Symbols that should not be listed in the preloaded symbols. ++exclude_expsyms=$lt_exclude_expsyms_RC ++ ++# Symbols that must always be exported. ++include_expsyms=$lt_include_expsyms_RC ++ ++# Commands necessary for linking programs (against libraries) with templates. ++prelink_cmds=$lt_prelink_cmds_RC ++ ++# Specify filename containing input files. ++file_list_spec=$lt_file_list_spec_RC ++ ++# How to hardcode a shared library path into an executable. ++hardcode_action=$hardcode_action_RC ++ ++# ### END LIBTOOL TAG CONFIG: RC ++_LT_EOF ++ ++ ;; ++ "po-directories":C) ++ for ac_file in $CONFIG_FILES; do ++ # Support "outfile[:infile[:infile...]]" ++ case "$ac_file" in ++ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; ++ esac ++ # PO directories have a Makefile.in generated from Makefile.in.in. ++ case "$ac_file" in */Makefile.in) ++ # Adjust a relative srcdir. ++ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ++ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ++ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` ++ # In autoconf-2.13 it is called $ac_given_srcdir. ++ # In autoconf-2.50 it is called $srcdir. ++ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" ++ case "$ac_given_srcdir" in ++ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; ++ /*) top_srcdir="$ac_given_srcdir" ;; ++ *) top_srcdir="$ac_dots$ac_given_srcdir" ;; ++ esac ++ # Treat a directory as a PO directory if and only if it has a ++ # POTFILES.in file. This allows packages to have multiple PO ++ # directories under different names or in different locations. ++ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then ++ rm -f "$ac_dir/POTFILES" ++ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" ++ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" ++ POMAKEFILEDEPS="POTFILES.in" ++ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend ++ # on $ac_dir but don't depend on user-specified configuration ++ # parameters. ++ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then ++ # The LINGUAS file contains the set of available languages. ++ if test -n "$OBSOLETE_ALL_LINGUAS"; then ++ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" ++ fi ++ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` ++ # Hide the ALL_LINGUAS assigment from automake < 1.5. ++ eval 'ALL_LINGUAS''=$ALL_LINGUAS_' ++ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" ++ else ++ # The set of available languages was given in configure.in. ++ # Hide the ALL_LINGUAS assigment from automake < 1.5. ++ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' ++ fi ++ # Compute POFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) ++ # Compute UPDATEPOFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) ++ # Compute DUMMYPOFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) ++ # Compute GMOFILES ++ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) ++ case "$ac_given_srcdir" in ++ .) srcdirpre= ;; ++ *) srcdirpre='$(srcdir)/' ;; ++ esac ++ POFILES= ++ UPDATEPOFILES= ++ DUMMYPOFILES= ++ GMOFILES= ++ for lang in $ALL_LINGUAS; do ++ POFILES="$POFILES $srcdirpre$lang.po" ++ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" ++ DUMMYPOFILES="$DUMMYPOFILES $lang.nop" ++ GMOFILES="$GMOFILES $srcdirpre$lang.gmo" ++ done ++ # CATALOGS depends on both $ac_dir and the user's LINGUAS ++ # environment variable. ++ INST_LINGUAS= ++ if test -n "$ALL_LINGUAS"; then ++ for presentlang in $ALL_LINGUAS; do ++ useit=no ++ if test "%UNSET%" != "$LINGUAS"; then ++ desiredlanguages="$LINGUAS" ++ else ++ desiredlanguages="$ALL_LINGUAS" ++ fi ++ for desiredlang in $desiredlanguages; do ++ # Use the presentlang catalog if desiredlang is ++ # a. equal to presentlang, or ++ # b. a variant of presentlang (because in this case, ++ # presentlang can be used as a fallback for messages ++ # which are not translated in the desiredlang catalog). ++ case "$desiredlang" in ++ "$presentlang"*) useit=yes;; ++ esac ++ done ++ if test $useit = yes; then ++ INST_LINGUAS="$INST_LINGUAS $presentlang" ++ fi ++ done ++ fi ++ CATALOGS= ++ if test -n "$INST_LINGUAS"; then ++ for lang in $INST_LINGUAS; do ++ CATALOGS="$CATALOGS $lang.gmo" ++ done ++ fi ++ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" ++ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" ++ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do ++ if test -f "$f"; then ++ case "$f" in ++ *.orig | *.bak | *~) ;; ++ *) cat "$f" >> "$ac_dir/Makefile" ;; ++ esac ++ fi ++ done ++ fi ++ ;; ++ esac ++ done ;; ++ ++ esac ++done # for ac_tag ++ ++ ++{ (exit 0); exit 0; } ++_ACEOF ++chmod +x $CONFIG_STATUS ++ac_clean_files=$ac_clean_files_save ++ ++test $ac_write_fail = 0 || ++ { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 ++$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} ++ { (exit 1); exit 1; }; } ++ ++ ++# configure is writing to config.log, and then calls config.status. ++# config.status does its own redirection, appending to config.log. ++# Unfortunately, on DOS this fails, as config.log is still kept open ++# by configure, so config.status won't be able to write to it; its ++# output is simply discarded. So we exec the FD to /dev/null, ++# effectively closing config.log, so it can be properly (re)opened and ++# appended to by config.status. When coming back to configure, we ++# need to make the FD available again. ++if test "$no_create" != yes; then ++ ac_cs_success=: ++ ac_config_status_args= ++ test "$silent" = yes && ++ ac_config_status_args="$ac_config_status_args --quiet" ++ exec 5>/dev/null ++ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false ++ exec 5>>config.log ++ # Use ||, not &&, to avoid exiting from the if with $? = 1, which ++ # would make configure fail if this is the last instruction. ++ $ac_cs_success || { (exit 1); exit 1; } ++fi ++if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then ++ { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 ++$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} ++fi ++ +diff --git a/storage/tokudb/ft-index/third_party/xz-4.999.9beta/dos/Makefile b/storage/tokudb/ft-index/third_party/xz-4.999.9beta/dos/Makefile +new file mode 100644 +index 0000000..0b8a088 +--- /dev/null ++++ b/storage/tokudb/ft-index/third_party/xz-4.999.9beta/dos/Makefile +@@ -0,0 +1,255 @@ ++############################################################################### ++# ++# Makefile to build XZ Utils using DJGPP ++# ++# Make flags to alter compilation: ++# ++# DEBUG=1 Enable assertions. Don't use this for production builds! ++# You may also want to set CFLAGS="-g -O0" to disable ++# optimizations. ++# ++# The usual CPPFLAGS and CFLAGS are supported too. ++# ++############################################################################### ++# ++# Author: Lasse Collin ++# ++# This file has been put into the public domain. ++# You can do whatever you want with this file. ++# ++############################################################################### ++ ++CC = gcc ++AR = ar ++STRIP = strip ++SED = sed ++RM = rm -f ++ ++CFLAGS = -g -Wextra -Wfatal-errors -Wall -march=i386 -mtune=i686 -O2 ++ ++# NOTE: -fgnu89-inline is needed on DJGPP 2.04 beta and GCC 4.3.2 ++# because time.h uses GNU-style "extern inline". ++ALL_CFLAGS = -std=gnu99 -fgnu89-inline ++ ++ALL_CPPFLAGS = \ ++ -I. \ ++ -I../lib \ ++ -I../src/common \ ++ -I../src/liblzma/api \ ++ -I../src/liblzma/common \ ++ -I../src/liblzma/check \ ++ -I../src/liblzma/rangecoder \ ++ -I../src/liblzma/lz \ ++ -I../src/liblzma/lzma \ ++ -I../src/liblzma/delta \ ++ -I../src/liblzma/simple \ ++ -I../src/liblzma/subblock ++ ++ALL_CPPFLAGS += -DHAVE_CONFIG_H ++ ++ifdef DEBUG ++STRIP := rem Skipping strip ++else ++ALL_CPPFLAGS += -DNDEBUG ++endif ++ ++ALL_CPPFLAGS += $(CPPFLAGS) ++ALL_CFLAGS += $(CFLAGS) ++ ++ ++################ ++# Common rules # ++################ ++ ++.PHONY: all clean ++all: liblzma.a getopt.a xzdec.exe lzmadec.exe xz.exe ++clean: liblzma-clean getopt-clean xzdec-clean xz-clean ++ ++ ++############# ++# liblzma.a # ++############# ++ ++LIBLZMA_SRCS_C = \ ++ ../src/liblzma/common/alone_decoder.c \ ++ ../src/liblzma/common/alone_encoder.c \ ++ ../src/liblzma/common/auto_decoder.c \ ++ ../src/liblzma/common/block_buffer_decoder.c \ ++ ../src/liblzma/common/block_buffer_encoder.c \ ++ ../src/liblzma/common/block_decoder.c \ ++ ../src/liblzma/common/block_encoder.c \ ++ ../src/liblzma/common/block_header_decoder.c \ ++ ../src/liblzma/common/block_header_encoder.c \ ++ ../src/liblzma/common/block_util.c \ ++ ../src/liblzma/common/common.c \ ++ ../src/liblzma/common/easy_buffer_encoder.c \ ++ ../src/liblzma/common/easy_decoder_memusage.c \ ++ ../src/liblzma/common/easy_encoder.c \ ++ ../src/liblzma/common/easy_encoder_memusage.c \ ++ ../src/liblzma/common/easy_preset.c \ ++ ../src/liblzma/common/filter_common.c \ ++ ../src/liblzma/common/filter_decoder.c \ ++ ../src/liblzma/common/filter_encoder.c \ ++ ../src/liblzma/common/filter_flags_decoder.c \ ++ ../src/liblzma/common/filter_flags_encoder.c \ ++ ../src/liblzma/common/index.c \ ++ ../src/liblzma/common/index_decoder.c \ ++ ../src/liblzma/common/index_encoder.c \ ++ ../src/liblzma/common/index_hash.c \ ++ ../src/liblzma/common/stream_buffer_decoder.c \ ++ ../src/liblzma/common/stream_buffer_encoder.c \ ++ ../src/liblzma/common/stream_decoder.c \ ++ ../src/liblzma/common/stream_encoder.c \ ++ ../src/liblzma/common/stream_flags_common.c \ ++ ../src/liblzma/common/stream_flags_decoder.c \ ++ ../src/liblzma/common/stream_flags_encoder.c \ ++ ../src/liblzma/common/vli_decoder.c \ ++ ../src/liblzma/common/vli_encoder.c \ ++ ../src/liblzma/common/vli_size.c \ ++ ../src/liblzma/check/check.c \ ++ ../src/liblzma/check/crc32_table.c \ ++ ../src/liblzma/check/crc64_table.c \ ++ ../src/liblzma/check/sha256.c \ ++ ../src/liblzma/rangecoder/price_table.c \ ++ ../src/liblzma/lz/lz_decoder.c \ ++ ../src/liblzma/lz/lz_encoder.c \ ++ ../src/liblzma/lz/lz_encoder_mf.c \ ++ ../src/liblzma/lzma/fastpos_table.c \ ++ ../src/liblzma/lzma/lzma2_decoder.c \ ++ ../src/liblzma/lzma/lzma2_encoder.c \ ++ ../src/liblzma/lzma/lzma_decoder.c \ ++ ../src/liblzma/lzma/lzma_encoder.c \ ++ ../src/liblzma/lzma/lzma_encoder_optimum_fast.c \ ++ ../src/liblzma/lzma/lzma_encoder_optimum_normal.c \ ++ ../src/liblzma/lzma/lzma_encoder_presets.c \ ++ ../src/liblzma/delta/delta_common.c \ ++ ../src/liblzma/delta/delta_decoder.c \ ++ ../src/liblzma/delta/delta_encoder.c \ ++ ../src/liblzma/simple/arm.c \ ++ ../src/liblzma/simple/armthumb.c \ ++ ../src/liblzma/simple/ia64.c \ ++ ../src/liblzma/simple/powerpc.c \ ++ ../src/liblzma/simple/simple_coder.c \ ++ ../src/liblzma/simple/simple_decoder.c \ ++ ../src/liblzma/simple/simple_encoder.c \ ++ ../src/liblzma/simple/sparc.c \ ++ ../src/liblzma/simple/x86.c ++ ++LIBLZMA_SRCS_ASM = \ ++ ../src/liblzma/check/crc32_x86.S \ ++ ../src/liblzma/check/crc64_x86.S ++ ++LIBLZMA_OBJS_C = $(LIBLZMA_SRCS_C:.c=.o) ++LIBLZMA_OBJS_ASM = $(LIBLZMA_SRCS_ASM:.S=.o) ++LIBLZMA_OBJS = $(LIBLZMA_OBJS_C) $(LIBLZMA_OBJS_ASM) ++ ++$(LIBLZMA_OBJS_C): %.o: %.c ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++$(LIBLZMA_OBJS_ASM): %.o: %.S ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++liblzma.a: $(LIBLZMA_OBJS) ++ $(RM) $@ ++ $(AR) rcs $@ $(LIBLZMA_OBJS) ++ $(STRIP) --strip-unneeded $@ ++ ++# Avoid too long command lines. ++.PHONY: liblzma-clean $(LIBLZMA_OBJS:.o=-clean) ++liblzma-clean: $(LIBLZMA_OBJS:.o=-clean) ++ -$(RM) liblzma.a ++ ++$(LIBLZMA_OBJS:.o=-clean): ++ -$(RM) $(@:-clean=.o) ++ ++ ++############### ++# getopt_long # ++############### ++ ++GETOPT_SRCS = \ ++ ../lib/getopt.c \ ++ ../lib/getopt1.c ++ ++GETOPT_OBJS = $(GETOPT_SRCS:.c=.o) ++ ++GETOPT_H = ../lib/getopt.h ++ ++$(GETOPT_H): %.h: %.in.h ++ $(SED) "" $< > $@ ++ ++$(GETOPT_OBJS): %.o: %.c $(GETOPT_H) ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++getopt.a: $(GETOPT_OBJS) ++ $(RM) $@ ++ $(AR) rcs $@ $(GETOPT_OBJS) ++ $(STRIP) --strip-unneeded $@ ++ ++getopt-clean: ++ $(RM) $(GETOPT_H) $(GETOPT_OBJS) getopt.a ++ ++ ++########################### ++# xzdec.exe & lzmadec.exe # ++########################### ++ ++XZDEC_SRCS = ../src/xzdec/xzdec.c ++ ++xzdec.exe: getopt.a liblzma.a $(XZDEC_SRCS) ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(XZDEC_SRCS) -o $@ getopt.a liblzma.a ++ $(STRIP) --strip-all $@ ++ exe2coff $@ ++ $(RM) $@ ++ copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ ++ $(RM) $(@:.exe=) ++ ++lzmadec.exe: getopt.a liblzma.a $(XZDEC_SRCS) ++ $(CC) $(ALL_CPPFLAGS) -DLZMADEC $(ALL_CFLAGS) $(XZDEC_SRCS) -o $@ getopt.a liblzma.a ++ $(STRIP) --strip-all $@ ++ exe2coff $@ ++ $(RM) $@ ++ copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ ++ $(RM) $(@:.exe=) ++ ++.PHONY: xzdec-clean ++xzdec-clean: ++ -$(RM) xzdec.exe lzmadec.exe xzdec lzmadec ++ ++ ++########## ++# xz.exe # ++########## ++ ++XZ_SRCS = \ ++ ../src/xz/args.c \ ++ ../src/xz/coder.c \ ++ ../src/xz/file_io.c \ ++ ../src/xz/hardware.c \ ++ ../src/xz/main.c \ ++ ../src/xz/message.c \ ++ ../src/xz/options.c \ ++ ../src/xz/signals.c \ ++ ../src/xz/suffix.c \ ++ ../src/xz/util.c ++ ++XZ_OBJS = $(XZ_SRCS:.c=.o) ++ ++$(XZ_OBJS): %.o: %.c ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++xz.exe: getopt.a liblzma.a $(XZ_OBJS) ++ $(CC) $(ALL_CFLAGS) $(XZ_OBJS) -o $@ getopt.a liblzma.a ++ $(STRIP) --strip-all $@ ++ exe2coff $@ ++ $(RM) $@ ++ copy /b $(DJGPP:DJGPP.ENV=BIN\CWSDSTUB.EXE) + $(@:.exe=) $@ ++ $(RM) $(@:.exe=) ++ ++# Avoid too long command lines. ++.PHONY: xz-clean $(XZ_OBJS:.o=-clean) ++xz-clean: $(XZ_OBJS:.o=-clean) ++ -$(RM) xz.exe xz ++ ++$(XZ_OBJS:.o=-clean): ++ -$(RM) $(@:-clean=.o) +diff --git a/storage/tokudb/ft-index/third_party/xz-4.999.9beta/windows/Makefile b/storage/tokudb/ft-index/third_party/xz-4.999.9beta/windows/Makefile +new file mode 100644 +index 0000000..db362ef +--- /dev/null ++++ b/storage/tokudb/ft-index/third_party/xz-4.999.9beta/windows/Makefile +@@ -0,0 +1,308 @@ ++############################################################################### ++# ++# Makefile to build XZ Utils using MinGW ++# ++# Make flags to alter compilation: ++# ++# DEBUG=1 Enable assertions. Don't use this for production builds! ++# You may also want to set CFLAGS="-g -O0" to disable ++# optimizations. ++# ++# W64=1 Build for 64-bit Windows. Make sure that you have 64-bit ++# MinGW in PATH. ++# ++# WINE=1 Shortcut to set CC, AR, and STRIP to use Wine to run Windows ++# versions of MinGW binaries. ++# ++# The usual CPPFLAGS and CFLAGS are supported too. ++# ++############################################################################### ++# ++# Author: Lasse Collin ++# ++# This file has been put into the public domain. ++# You can do whatever you want with this file. ++# ++############################################################################### ++ ++ifdef W64 ++CC = x86_64-pc-mingw32-gcc ++WINDRES = x86_64-pc-mingw32-windres ++AR = x86_64-pc-mingw32-ar ++STRIP = x86_64-pc-mingw32-strip ++else ++CC = mingw32-gcc ++WINDRES = windres ++AR = ar ++STRIP = strip ++endif ++ ++SED = sed ++MKDIR = mkdir ++CP = cp ++RM = rm -f ++ ++CFLAGS = -g -Wall -Wextra -O2 ++# CFLAGS = -Wall -Wextra -O3 -fomit-frame-pointer -funroll-loops ++ ++ALL_CFLAGS = -std=gnu99 -mms-bitfields ++ ++ALL_CPPFLAGS = \ ++ -I. \ ++ -I../src/common \ ++ -I../src/liblzma/api \ ++ -I../src/liblzma/common \ ++ -I../src/liblzma/check \ ++ -I../src/liblzma/rangecoder \ ++ -I../src/liblzma/lz \ ++ -I../src/liblzma/lzma \ ++ -I../src/liblzma/delta \ ++ -I../src/liblzma/simple \ ++ -I../src/liblzma/subblock ++ ++ALL_CPPFLAGS += -DHAVE_CONFIG_H ++ ++# This works with Wine too while using native GNU make, sed, and rm. ++ifdef WINE ++ifdef W64 ++CC := wine c:/MinGW64/bin/x86_64-pc-mingw32-gcc ++WINDRES := wine c:/MinGW64/bin/x86_64-pc-mingw32-windres ++AR := wine c:/MinGW64/bin/x86_64-pc-mingw32-ar ++STRIP := wine c:/MinGW64/bin/x86_64-pc-mingw32-strip ++else ++CC := wine c:/MinGW/bin/gcc ++WINDRES := wine c:/MinGW/bin/windres ++AR := wine c:/MinGW/bin/ar ++STRIP := wine c:/MinGW/bin/strip ++endif ++endif ++ ++ifdef DEBUG ++# Use echo since it works for this purpose on both Windows and POSIX. ++STRIP := echo Skipping strip ++else ++ALL_CPPFLAGS += -DNDEBUG ++endif ++ ++ALL_CPPFLAGS += $(CPPFLAGS) ++ALL_CFLAGS += $(CFLAGS) ++ ++ ++################ ++# Common rules # ++################ ++ ++.PHONY: all clean pkg ++all: liblzma xzdec xz ++clean: liblzma-clean xzdec-clean xz-clean ++ ++pkg: all ++ $(RM) -r pkg ++ $(MKDIR) -p pkg/lib pkg/include/lzma ++ $(CP) liblzma.dll xz-dynamic.exe xz.exe xzdec-dynamic.exe xzdec.exe lzmadec-dynamic.exe lzmadec.exe pkg ++ $(CP) liblzma.a liblzma.def liblzma_static.lib pkg/lib ++ $(CP) ../src/liblzma/api/lzma.h pkg/include ++ $(CP) ../src/liblzma/api/lzma/*.h pkg/include/lzma ++ ++%.o: %.rc ++ $(WINDRES) $(ALL_CPPFLAGS) $< $@ ++ ++ ++############### ++# liblzma.dll # ++############### ++ ++.PHONY: liblzma ++liblzma: liblzma.dll liblzma_static.lib ++ ++LIBLZMA_SRCS_C = \ ++ ../src/liblzma/common/alone_decoder.c \ ++ ../src/liblzma/common/alone_encoder.c \ ++ ../src/liblzma/common/auto_decoder.c \ ++ ../src/liblzma/common/block_buffer_decoder.c \ ++ ../src/liblzma/common/block_buffer_encoder.c \ ++ ../src/liblzma/common/block_decoder.c \ ++ ../src/liblzma/common/block_encoder.c \ ++ ../src/liblzma/common/block_header_decoder.c \ ++ ../src/liblzma/common/block_header_encoder.c \ ++ ../src/liblzma/common/block_util.c \ ++ ../src/liblzma/common/common.c \ ++ ../src/liblzma/common/easy_buffer_encoder.c \ ++ ../src/liblzma/common/easy_decoder_memusage.c \ ++ ../src/liblzma/common/easy_encoder.c \ ++ ../src/liblzma/common/easy_encoder_memusage.c \ ++ ../src/liblzma/common/easy_preset.c \ ++ ../src/liblzma/common/filter_buffer_decoder.c \ ++ ../src/liblzma/common/filter_buffer_encoder.c \ ++ ../src/liblzma/common/filter_common.c \ ++ ../src/liblzma/common/filter_decoder.c \ ++ ../src/liblzma/common/filter_encoder.c \ ++ ../src/liblzma/common/filter_flags_decoder.c \ ++ ../src/liblzma/common/filter_flags_encoder.c \ ++ ../src/liblzma/common/index.c \ ++ ../src/liblzma/common/index_decoder.c \ ++ ../src/liblzma/common/index_encoder.c \ ++ ../src/liblzma/common/index_hash.c \ ++ ../src/liblzma/common/stream_buffer_decoder.c \ ++ ../src/liblzma/common/stream_buffer_encoder.c \ ++ ../src/liblzma/common/stream_decoder.c \ ++ ../src/liblzma/common/stream_encoder.c \ ++ ../src/liblzma/common/stream_flags_common.c \ ++ ../src/liblzma/common/stream_flags_decoder.c \ ++ ../src/liblzma/common/stream_flags_encoder.c \ ++ ../src/liblzma/common/vli_decoder.c \ ++ ../src/liblzma/common/vli_encoder.c \ ++ ../src/liblzma/common/vli_size.c \ ++ ../src/liblzma/check/check.c \ ++ ../src/liblzma/check/crc32_table.c \ ++ ../src/liblzma/check/crc64_table.c \ ++ ../src/liblzma/check/sha256.c \ ++ ../src/liblzma/rangecoder/price_table.c \ ++ ../src/liblzma/lz/lz_decoder.c \ ++ ../src/liblzma/lz/lz_encoder.c \ ++ ../src/liblzma/lz/lz_encoder_mf.c \ ++ ../src/liblzma/lzma/fastpos_table.c \ ++ ../src/liblzma/lzma/lzma2_decoder.c \ ++ ../src/liblzma/lzma/lzma2_encoder.c \ ++ ../src/liblzma/lzma/lzma_decoder.c \ ++ ../src/liblzma/lzma/lzma_encoder.c \ ++ ../src/liblzma/lzma/lzma_encoder_optimum_fast.c \ ++ ../src/liblzma/lzma/lzma_encoder_optimum_normal.c \ ++ ../src/liblzma/lzma/lzma_encoder_presets.c \ ++ ../src/liblzma/delta/delta_common.c \ ++ ../src/liblzma/delta/delta_decoder.c \ ++ ../src/liblzma/delta/delta_encoder.c \ ++ ../src/liblzma/simple/arm.c \ ++ ../src/liblzma/simple/armthumb.c \ ++ ../src/liblzma/simple/ia64.c \ ++ ../src/liblzma/simple/powerpc.c \ ++ ../src/liblzma/simple/simple_coder.c \ ++ ../src/liblzma/simple/simple_decoder.c \ ++ ../src/liblzma/simple/simple_encoder.c \ ++ ../src/liblzma/simple/sparc.c \ ++ ../src/liblzma/simple/x86.c ++ ++LIBLZMA_SRCS_ASM = ++ ++ifdef W64 ++LIBLZMA_SRCS_C += \ ++ ../src/liblzma/check/crc32_fast.c \ ++ ../src/liblzma/check/crc64_fast.c ++else ++LIBLZMA_SRCS_ASM += \ ++ ../src/liblzma/check/crc32_x86.S \ ++ ../src/liblzma/check/crc64_x86.S ++endif ++ ++LIBLZMA_OBJS_C = $(LIBLZMA_SRCS_C:.c=.o) ++LIBLZMA_OBJS_ASM = $(LIBLZMA_SRCS_ASM:.S=.o) ++LIBLZMA_OBJS = \ ++ $(LIBLZMA_OBJS_C) \ ++ $(LIBLZMA_OBJS_ASM) \ ++ ../src/liblzma/liblzma_w32res.o ++ ++LIBLZMA_OBJS_STATIC_C = $(LIBLZMA_SRCS_C:.c=-static.o) ++LIBLZMA_OBJS_STATIC_ASM = $(LIBLZMA_SRCS_ASM:.S=-static.o) ++LIBLZMA_OBJS_STATIC = $(LIBLZMA_OBJS_STATIC_C) $(LIBLZMA_OBJS_STATIC_ASM) ++ ++# The sed is needed to remove ordinals from the .def file. I'm not going ++# to track the ordinal numbers, so people should link against liblzma.dll ++# only by using symbol names. ++liblzma.dll: $(LIBLZMA_OBJS) ++ $(CC) $(ALL_CFLAGS) -shared -o liblzma.dll $(LIBLZMA_OBJS) -Wl,--out-implib,liblzma.a,--output-def,liblzma.def.in ++ $(SED) 's/ \+@ *[0-9]\+//' liblzma.def.in > liblzma.def ++ $(RM) liblzma.def.in ++ $(STRIP) --strip-unneeded liblzma.a ++ $(STRIP) --strip-all liblzma.dll ++ ++$(LIBLZMA_OBJS_C): %.o: %.c ++ $(CC) -DDLL_EXPORT $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++$(LIBLZMA_OBJS_ASM): %.o: %.S ++ $(CC) -DDLL_EXPORT $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++liblzma_static.lib: $(LIBLZMA_OBJS_STATIC) ++ $(RM) $@ ++ $(AR) rcs $@ $(LIBLZMA_OBJS_STATIC) ++ $(STRIP) --strip-unneeded $@ ++ ++$(LIBLZMA_OBJS_STATIC_C): %-static.o: %.c ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++$(LIBLZMA_OBJS_STATIC_ASM): %-static.o: %.S ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++.PHONY: liblzma-clean ++liblzma-clean: ++ -$(RM) $(LIBLZMA_OBJS) $(LIBLZMA_OBJS_STATIC) liblzma.def.in liblzma.def liblzma.a liblzma.dll liblzma_static.lib ++ ++ ++########################### ++# xzdec.exe & lzmadec.exe # ++########################### ++ ++.PHONY: xzdec ++xzdec: xzdec-dynamic.exe lzmadec-dynamic.exe xzdec.exe lzmadec.exe ++ ++XZDEC_SRCS = ../src/xzdec/xzdec.c ++ ++xzdec-dynamic.exe: liblzma.dll $(XZDEC_SRCS) ../src/xzdec/xzdec_w32res.o ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(XZDEC_SRCS) ../src/xzdec/xzdec_w32res.o -o $@ liblzma.a ++ $(STRIP) --strip-all $@ ++ ++lzmadec-dynamic.exe: liblzma.dll $(XZDEC_SRCS) ../src/xzdec/lzmadec_w32res.o ++ $(CC) $(ALL_CPPFLAGS) -DLZMADEC $(ALL_CFLAGS) $(XZDEC_SRCS) ../src/xzdec/lzmadec_w32res.o -o $@ liblzma.a ++ $(STRIP) --strip-all $@ ++ ++xzdec.exe: liblzma_static.lib $(XZDEC_SRCS) ../src/xzdec/xzdec_w32res.o ++ $(CC) -DLZMA_API_STATIC $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(XZDEC_SRCS) ../src/xzdec/xzdec_w32res.o -o $@ liblzma_static.lib ++ $(STRIP) --strip-all $@ ++ ++lzmadec.exe: liblzma_static.lib $(XZDEC_SRCS) ../src/xzdec/lzmadec_w32res.o ++ $(CC) -DLZMA_API_STATIC $(ALL_CPPFLAGS) -DLZMADEC $(ALL_CFLAGS) $(XZDEC_SRCS) ../src/xzdec/lzmadec_w32res.o -o $@ liblzma_static.lib ++ $(STRIP) --strip-all $@ ++ ++.PHONY: xzdec-clean ++xzdec-clean: ++ -$(RM) xzdec-dynamic.exe lzmadec-dynamic.exe xzdec.exe lzmadec.exe ../src/xzdec/xzdec_w32res.o ../src/xzdec/lzmadec_w32res.o ++ ++ ++########## ++# xz.exe # ++########## ++ ++.PHONY: xz ++xz: xz-dynamic.exe xz.exe ++ ++XZ_SRCS = \ ++ ../src/xz/args.c \ ++ ../src/xz/coder.c \ ++ ../src/xz/file_io.c \ ++ ../src/xz/hardware.c \ ++ ../src/xz/main.c \ ++ ../src/xz/message.c \ ++ ../src/xz/options.c \ ++ ../src/xz/signals.c \ ++ ../src/xz/suffix.c \ ++ ../src/xz/util.c ++ ++XZ_OBJS = $(XZ_SRCS:.c=.o) ++XZ_OBJS_STATIC = $(XZ_SRCS:.c=-static.o) ++ ++$(XZ_OBJS): %.o: %.c ++ $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++xz-dynamic.exe: liblzma.dll $(XZ_OBJS) ../src/xz/xz_w32res.o ++ $(CC) $(ALL_CFLAGS) $(XZ_OBJS) ../src/xz/xz_w32res.o -o $@ liblzma.a ++ $(STRIP) --strip-all $@ ++ ++$(XZ_OBJS_STATIC): %-static.o: %.c ++ $(CC) -DLZMA_API_STATIC $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c -o $@ $< ++ ++xz.exe: liblzma_static.lib $(XZ_OBJS_STATIC) ../src/xz/xz_w32res.o ++ $(CC) $(ALL_CFLAGS) $(XZ_OBJS_STATIC) ../src/xz/xz_w32res.o -o $@ liblzma_static.lib ++ $(STRIP) --strip-all $@ ++ ++.PHONY: xz-clean ++xz-clean: ++ -$(RM) $(XZ_OBJS) $(XZ_OBJS_STATIC) ../src/xz/xz_w32res.o xz-dynamic.exe xz.exe +diff --git a/storage/tokudb/tests/Makefile b/storage/tokudb/tests/Makefile +new file mode 100644 +index 0000000..47e2027 +--- /dev/null ++++ b/storage/tokudb/tests/Makefile +@@ -0,0 +1,53 @@ ++SRCS = $(wildcard *.cc) ++TARGETS = $(patsubst %.cc,%,$(SRCS)) ++CHECKS = $(patsubst %,%.check,$(TARGETS)) ++CPPFLAGS = -I.. -D__STDC_FORMAT_MACROS ++CXXFLAGS = -g -Wall -Wextra -Wno-missing-field-initializers -Wshadow ++ifdef USE_OPENMP ++CPPFLAGS += -DUSE_OPENMP ++CXXFLAGS += -fopenmp ++endif ++ ++FRACTALTREE_BASE_DIR = ../ft-index ++FRACTALTREE_INSTALL_DIR = $(FRACTALTREE_BASE_DIR)/install.debug ++VALGRIND = valgrind -q --leak-check=full --show-reachable=yes --suppressions=$(FRACTALTREE_BASE_DIR)/ft/valgrind.suppressions --soname-synonyms=somalloc=*tokuportability* ++ ++ifeq ($(GCOV),1) ++CXXFLAGS += -fprofile-arcs -ftest-coverage ++else ++CXXFLAGS += -O3 ++endif ++ ++all: $(TARGETS) ++ ++clean: ++ rm -rf $(TARGETS) *.gcov *.gcno *.gcda *.testdir *.dSYM ++ ++%.check: % ++ LD_LIBRARY_PATH=$(FRACTALTREE_INSTALL_DIR)/lib $(VALGRIND) ./$< ++ ++card.check: $(patsubst %.cc,%.check,$(wildcard card*.cc)) ++ true ++ ++ifndef USE_OPENMP ++# unravel vlq_test_uint64 8 times ++vlq_test_uint64_%.check: ++ LD_LIBRARY_PATH=$(FRACTALTREE_INSTALL_DIR)/lib $(VALGRIND) ./vlq_test_uint64 $(patsubst vlq_test_uint64_%.check,%,$@) 8 ++vlq_test_uint64.check: $(foreach i,0 1 2 3 4 5 6 7,vlq_test_uint64_$(i).check) ++ true ++endif ++ ++vlq.check: $(patsubst %.cc,%.check,$(wildcard vlq*.cc)) ++ true ++ ++max_test.check: max_test ++ $(VALGRIND) ./$< 1 2 ++ ++check: $(CHECKS) ++ true ++ ++%: %.cc ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -g -o $@ $< ++ ++card_%: card_%.cc ++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -g -o $@ $< -I.. -I$(FRACTALTREE_INSTALL_DIR)/include -L$(FRACTALTREE_INSTALL_DIR)/lib -ltokufractaltree -ltokuportability diff --git a/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch index 7516619..ad9f056 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch @@ -1,4 +1,4 @@ -From 6db2a606196fb38a6d106dc409eee1cb9a40a440 Mon Sep 17 00:00:00 2001 +From 4b8219492d04c45acb0f8c53c4d0f00057235d0a Mon Sep 17 00:00:00 2001 From: Tor Didriksen Date: Mon, 24 Jun 2013 17:15:35 +0200 Subject: [PATCH] Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18 @@ -25,12 +25,11 @@ Signed-off-by: Paul Eggleton --- cmake/install_macros.cmake | 25 +++++++++++++++---------- - cmake/mysql_version.cmake | 3 ++- - libmysql/CMakeLists.txt | 36 ++++++++++++++++++++++++++++-------- - 3 files changed, 45 insertions(+), 19 deletions(-) + libmysql/CMakeLists.txt | 34 +++++++++++++++++++++++++++------- + 2 files changed, 42 insertions(+), 17 deletions(-) diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake -index b8efdf8..a0d0e68 100644 +index 22a525d..f25ecc7 100644 --- a/cmake/install_macros.cmake +++ b/cmake/install_macros.cmake @@ -1,4 +1,4 @@ @@ -39,8 +38,8 @@ index b8efdf8..a0d0e68 100644 # # 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 -@@ -111,28 +111,33 @@ FUNCTION(INSTALL_SCRIPT) - ENDFUNCTION() +@@ -167,28 +167,33 @@ ENDFUNCTION() + # Install symbolic link to CMake target. -# the link is created in the same directory as target @@ -83,11 +82,11 @@ index b8efdf8..a0d0e68 100644 # For Xcode, replace project config with install config STRING(REPLACE "${CMAKE_CFG_INTDIR}" diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt -index be5760f..96286ff 100644 +index 7615630..df5d996 100644 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt -@@ -180,6 +180,12 @@ IF(MSVC) - INSTALL_DEBUG_TARGET(mysqlclient DESTINATION ${INSTALL_LIBDIR}/debug) +@@ -433,6 +433,12 @@ IF(MSVC) + INSTALL_DEBUG_TARGET(clientlib DESTINATION ${INSTALL_LIBDIR}/debug) ENDIF() +MACRO(GET_TARGET_NAME target out_name) @@ -99,7 +98,7 @@ index be5760f..96286ff 100644 IF(UNIX) MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME) SET(DOT_VERSION ".${VERSION}") -@@ -192,7 +198,13 @@ IF(UNIX) +@@ -445,7 +451,13 @@ IF(UNIX) SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION}) ENDIF() ENDMACRO() @@ -114,7 +113,7 @@ index be5760f..96286ff 100644 ENDIF() IF(NOT DISABLE_SHARED) -@@ -205,10 +217,9 @@ IF(NOT DISABLE_SHARED) +@@ -456,10 +468,9 @@ IF(NOT DISABLE_SHARED) # libtool compatability IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") @@ -127,7 +126,7 @@ index be5760f..96286ff 100644 ENDIF() # Name of shared library is mysqlclient on Unix SET_TARGET_PROPERTIES(libmysql PROPERTIES -@@ -239,8 +250,13 @@ IF(NOT DISABLE_SHARED) +@@ -482,8 +493,13 @@ IF(NOT DISABLE_SHARED) "${CMAKE_SHARED_LIBRARY_SUFFIX}" "" linkname) @@ -143,7 +142,7 @@ index be5760f..96286ff 100644 LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS) FOREACH(ver ${OS_SHARED_LIB_SYMLINKS}) GET_VERSIONED_LIBNAME( -@@ -248,7 +264,11 @@ IF(NOT DISABLE_SHARED) +@@ -491,7 +507,11 @@ IF(NOT DISABLE_SHARED) "${CMAKE_SHARED_LIBRARY_SUFFIX}" "${ver}" linkname) @@ -156,6 +155,3 @@ index be5760f..96286ff 100644 ENDFOREACH() ENDIF() ENDIF() --- -2.0.3 - diff --git a/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch b/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch index ff26b0b..eaafddf 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch @@ -1,4 +1,7 @@ -Remove host path from include directories +From 2935a6c4419ad61ae56b4d1ab5c2f979fe7f73f0 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton +Date: Fri, 8 Aug 2014 15:16:40 +0100 +Subject: [PATCH] Remove host path from include directories Naturally this breaks cross-compilation if present. @@ -6,9 +9,15 @@ Upstream-Status: Pending Signed-off-by: Paul Eggleton ---- mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:37:04.529327998 +0100 -+++ mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:43:56.991337895 +0100 -@@ -39,7 +39,6 @@ +--- + storage/tokudb/ft-index/CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/storage/tokudb/ft-index/CMakeLists.txt b/storage/tokudb/ft-index/CMakeLists.txt +index c6846da..bb4d573 100644 +--- a/storage/tokudb/ft-index/CMakeLists.txt ++++ b/storage/tokudb/ft-index/CMakeLists.txt +@@ -64,7 +64,6 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/buildheader) ## default includes and libraries include_directories(SYSTEM