From 74def22213846b1f90a26c86670035079dea032c Mon Sep 17 00:00:00 2001 From: DrKLO Date: Fri, 27 Nov 2015 00:04:02 +0300 Subject: [PATCH] Update to 3.3.1 --- TMessagesProj/build.gradle | 20 +- .../config/debug/AndroidManifest.xml | 4 +- TMessagesProj/jni/Android.mk | 2 +- TMessagesProj/jni/TgNetWrapper.cpp | 2 +- TMessagesProj/jni/sqlite/sqlite3.c | 27932 ++++++++++++++-- TMessagesProj/jni/sqlite/sqlite3.h | 607 +- TMessagesProj/jni/tgnet/Config.cpp | 53 +- .../jni/tgnet/ConnectionsManager.cpp | 81 +- TMessagesProj/jni/tgnet/ConnectionsManager.h | 4 +- TMessagesProj/jni/tgnet/Datacenter.cpp | 6 +- TMessagesProj/jni/tgnet/FileLog.cpp | 4 +- TMessagesProj/jni/tgnet/MTProtoScheme.cpp | 4 +- TMessagesProj/jni/tgnet/MTProtoScheme.h | 4 +- TMessagesProj/jni/tgnet/Request.h | 2 +- ...{libtmessages.14.so => libtmessages.15.so} | Bin 1873428 -> 1873592 bytes TMessagesProj/libs/armeabi/libtmessages.14.so | Bin 1611252 -> 0 bytes TMessagesProj/libs/armeabi/libtmessages.15.so | Bin 0 -> 1611416 bytes ...{libtmessages.14.so => libtmessages.15.so} | Bin 2484708 -> 2484876 bytes TMessagesProj/src/main/AndroidManifest.xml | 3 +- TMessagesProj/src/main/assets/countries.txt | 352 +- .../telegram/messenger/AndroidUtilities.java | 35 +- .../telegram/messenger/ApplicationLoader.java | 25 +- .../messenger/AutoMessageHeardReceiver.java | 2 +- .../messenger/AutoMessageReplyReceiver.java | 2 +- .../org/telegram/messenger/BuildVars.java | 3 +- .../org/telegram/messenger/ChatObject.java | 11 +- .../messenger/ContactsController.java | 64 +- .../org/telegram/messenger/DispatchQueue.java | 68 +- .../java/org/telegram/messenger/Emoji.java | 5 +- .../telegram/messenger/FileLoadOperation.java | 2 +- .../org/telegram/messenger/FileLoader.java | 13 +- .../java/org/telegram/messenger/FileLog.java | 3 + .../org/telegram/messenger/ImageLoader.java | 45 +- .../telegram/messenger/LocaleController.java | 42 +- .../telegram/messenger/MediaController.java | 26 +- .../org/telegram/messenger/MessageObject.java | 262 +- .../messenger/MessagesController.java | 1141 +- .../telegram/messenger/MessagesStorage.java | 654 +- .../messenger/NativeCrashManager.java | 47 +- .../org/telegram/messenger/NativeLoader.java | 2 +- .../messenger/NotificationsController.java | 193 +- .../telegram/messenger/SecretChatHelper.java | 10 +- .../messenger/SendMessagesHelper.java | 196 +- .../messenger/TgChooserTargetService.java | 22 +- .../org/telegram/messenger/UserConfig.java | 36 +- .../org/telegram/messenger/UserObject.java | 6 +- .../telegram/messenger/WearReplyReceiver.java | 2 +- .../messenger/query/MessagesSearchQuery.java | 58 +- .../messenger/query/ReplyMessageQuery.java | 54 +- .../messenger/query/SharedMediaQuery.java | 43 +- .../messenger/query/StickersQuery.java | 64 +- .../telegram/tgnet/ConnectionsManager.java | 7 +- .../main/java/org/telegram/tgnet/TLRPC.java | 5526 +-- .../ui/ActionBar/ActionBarLayout.java | 16 +- .../ui/ActionBar/ActionBarMenuItem.java | 1 - .../ui/ActionBar/ActionBarPopupWindow.java | 23 +- .../telegram/ui/ActionBar/BottomSheet.java | 47 +- .../ui/Adapters/BaseSearchAdapter.java | 5 +- .../telegram/ui/Adapters/ContactsAdapter.java | 2 +- .../telegram/ui/Adapters/DialogsAdapter.java | 2 +- .../ui/Adapters/DialogsSearchAdapter.java | 73 +- .../telegram/ui/Adapters/MentionsAdapter.java | 21 +- .../ui/Adapters/PhotoAttachAdapter.java | 13 +- .../telegram/ui/Adapters/SearchAdapter.java | 15 +- .../org/telegram/ui/AudioSelectActivity.java | 2 +- .../org/telegram/ui/BlockedUsersActivity.java | 2 +- .../org/telegram/ui/Cells/AboutLinkCell.java | 187 + .../org/telegram/ui/Cells/AddMemberCell.java | 61 - .../org/telegram/ui/Cells/BotHelpCell.java | 2 + .../org/telegram/ui/Cells/ChatBaseCell.java | 75 +- .../telegram/ui/Cells/ChatContactCell.java | 3 + .../org/telegram/ui/Cells/ChatMediaCell.java | 20 +- .../telegram/ui/Cells/ChatMessageCell.java | 39 +- .../org/telegram/ui/Cells/DialogCell.java | 49 +- .../telegram/ui/Cells/DrawerActionCell.java | 9 +- .../ui/Cells/PhotoAttachPhotoCell.java | 57 +- .../telegram/ui/Cells/ProfileSearchCell.java | 44 +- .../telegram/ui/Cells/ShareDialogCell.java | 101 + .../telegram/ui/Cells/SharedDocumentCell.java | 2 +- .../org/telegram/ui/Cells/StickerSetCell.java | 2 +- .../java/org/telegram/ui/Cells/TextCell.java | 32 +- .../java/org/telegram/ui/Cells/UserCell.java | 38 +- .../telegram/ui/ChangeChatNameActivity.java | 11 +- .../org/telegram/ui/ChangeNameActivity.java | 11 +- .../org/telegram/ui/ChangePhoneActivity.java | 267 +- .../telegram/ui/ChannelCreateActivity.java | 4 +- .../org/telegram/ui/ChannelEditActivity.java | 201 +- .../org/telegram/ui/ChannelUsersActivity.java | 52 +- .../java/org/telegram/ui/ChatActivity.java | 1417 +- .../telegram/ui/Components/AlertsCreator.java | 34 +- .../ui/Components/AvatarDrawable.java | 6 +- .../ui/Components/BotKeyboardView.java | 2 +- .../ui/Components/ChatActivityEnterView.java | 41 +- .../ui/Components/CheckBoxSquare.java | 222 + .../org/telegram/ui/Components/EmojiView.java | 2 +- .../ui/Components/FrameLayoutFixed.java | 6 +- .../telegram/ui/Components/HintEditText.java | 73 + .../telegram/ui/Components/LayoutHelper.java | 7 +- .../ui/Components/PickerBottomLayout.java | 29 +- .../telegram/ui/Components/RadioButton.java | 56 +- .../ui/Components/ResourceLoader.java | 7 + .../ui/Components/ShareFrameLayout.java | 635 + .../SizeNotifierFrameLayoutPhoto.java | 11 +- .../ui/Components/WebFrameLayout.java | 10 +- .../org/telegram/ui/ContactsActivity.java | 8 +- .../telegram/ui/CountrySelectActivity.java | 2 +- .../java/org/telegram/ui/DialogsActivity.java | 57 +- .../org/telegram/ui/GroupCreateActivity.java | 2 +- .../telegram/ui/GroupCreateFinalActivity.java | 2 +- .../org/telegram/ui/GroupInviteActivity.java | 6 +- .../java/org/telegram/ui/IntroActivity.java | 40 +- .../telegram/ui/LastSeenUsersActivity.java | 2 +- .../java/org/telegram/ui/LaunchActivity.java | 41 +- .../java/org/telegram/ui/LoginActivity.java | 422 +- .../java/org/telegram/ui/MediaActivity.java | 237 +- .../java/org/telegram/ui/PhotoViewer.java | 176 +- .../ui/PopupNotificationActivity.java | 2 +- .../telegram/ui/PrivacySettingsActivity.java | 2 +- .../java/org/telegram/ui/ProfileActivity.java | 1071 +- .../ui/ProfileNotificationsActivity.java | 3 + .../org/telegram/ui/SetAdminsActivity.java | 673 + .../org/telegram/ui/StickersActivity.java | 10 +- .../src/main/res/drawable-hdpi/bot_list.png | Bin 0 -> 1142 bytes .../main/res/drawable-hdpi/list_circle.png | Bin 0 -> 994 bytes .../main/res/drawable-hdpi/search_share.png | Bin 0 -> 1503 bytes .../src/main/res/drawable-hdpi/shareblack.png | Bin 0 -> 1840 bytes .../res/drawable-hdpi/shareblack_pressed.png | Bin 0 -> 1855 bytes .../src/main/res/drawable-hdpi/shareblue.png | Bin 0 -> 1883 bytes .../res/drawable-hdpi/shareblue_pressed.png | Bin 0 -> 1897 bytes .../src/main/res/drawable-mdpi/bot_list.png | Bin 0 -> 1088 bytes .../main/res/drawable-mdpi/list_circle.png | Bin 0 -> 965 bytes .../main/res/drawable-mdpi/search_share.png | Bin 0 -> 1256 bytes .../src/main/res/drawable-mdpi/shareblack.png | Bin 0 -> 1532 bytes .../res/drawable-mdpi/shareblack_pressed.png | Bin 0 -> 1526 bytes .../src/main/res/drawable-mdpi/shareblue.png | Bin 0 -> 1559 bytes .../res/drawable-mdpi/shareblue_pressed.png | Bin 0 -> 1568 bytes .../src/main/res/drawable-xhdpi/bot_list.png | Bin 0 -> 1269 bytes .../main/res/drawable-xhdpi/list_circle.png | Bin 0 -> 1036 bytes .../main/res/drawable-xhdpi/search_share.png | Bin 0 -> 1640 bytes .../main/res/drawable-xhdpi/shareblack.png | Bin 0 -> 2057 bytes .../res/drawable-xhdpi/shareblack_pressed.png | Bin 0 -> 2112 bytes .../src/main/res/drawable-xhdpi/shareblue.png | Bin 0 -> 2155 bytes .../res/drawable-xhdpi/shareblue_pressed.png | Bin 0 -> 2184 bytes .../src/main/res/drawable-xxhdpi/bot_list.png | Bin 0 -> 1379 bytes .../main/res/drawable-xxhdpi/list_circle.png | Bin 0 -> 1096 bytes .../main/res/drawable-xxhdpi/search_share.png | Bin 0 -> 2072 bytes .../main/res/drawable-xxhdpi/shareblack.png | Bin 0 -> 2582 bytes .../drawable-xxhdpi/shareblack_pressed.png | Bin 0 -> 2617 bytes .../main/res/drawable-xxhdpi/shareblue.png | Bin 0 -> 2604 bytes .../res/drawable-xxhdpi/shareblue_pressed.png | Bin 0 -> 2630 bytes .../res/drawable-xxhdpi/sheet_shadow.9.png | Bin 703 -> 703 bytes .../src/main/res/values-ar/strings.xml | 48 +- .../src/main/res/values-de/strings.xml | 48 +- .../src/main/res/values-es/strings.xml | 48 +- .../src/main/res/values-it/strings.xml | 48 +- .../src/main/res/values-ko/strings.xml | 60 +- .../src/main/res/values-nl/strings.xml | 58 +- .../src/main/res/values-pt-rBR/strings.xml | 60 +- .../src/main/res/values-pt-rPT/strings.xml | 60 +- TMessagesProj/src/main/res/values/strings.xml | 50 +- 160 files changed, 36825 insertions(+), 8207 deletions(-) rename TMessagesProj/libs/armeabi-v7a/{libtmessages.14.so => libtmessages.15.so} (54%) delete mode 100755 TMessagesProj/libs/armeabi/libtmessages.14.so create mode 100755 TMessagesProj/libs/armeabi/libtmessages.15.so rename TMessagesProj/libs/x86/{libtmessages.14.so => libtmessages.15.so} (51%) create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Cells/AboutLinkCell.java delete mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Cells/AddMemberCell.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Cells/ShareDialogCell.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/CheckBoxSquare.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/HintEditText.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/Components/ShareFrameLayout.java create mode 100644 TMessagesProj/src/main/java/org/telegram/ui/SetAdminsActivity.java create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/bot_list.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/list_circle.png create mode 100755 TMessagesProj/src/main/res/drawable-hdpi/search_share.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/shareblack.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/shareblack_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/shareblue.png create mode 100644 TMessagesProj/src/main/res/drawable-hdpi/shareblue_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/bot_list.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/list_circle.png create mode 100755 TMessagesProj/src/main/res/drawable-mdpi/search_share.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/shareblack.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/shareblack_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/shareblue.png create mode 100644 TMessagesProj/src/main/res/drawable-mdpi/shareblue_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/bot_list.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/list_circle.png create mode 100755 TMessagesProj/src/main/res/drawable-xhdpi/search_share.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/shareblack.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/shareblack_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/shareblue.png create mode 100644 TMessagesProj/src/main/res/drawable-xhdpi/shareblue_pressed.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/bot_list.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/list_circle.png create mode 100755 TMessagesProj/src/main/res/drawable-xxhdpi/search_share.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/shareblack.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/shareblack_pressed.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/shareblue.png create mode 100644 TMessagesProj/src/main/res/drawable-xxhdpi/shareblue_pressed.png diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 1d10d14f7..00e4e0621 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -7,22 +7,16 @@ repositories { dependencies { compile 'com.android.support:support-v4:23.1.+' compile 'com.google.android.gms:play-services:3.2.+' - compile 'net.hockeyapp.android:HockeySDK:3.5.+' + compile 'net.hockeyapp.android:HockeySDK:3.6.+' compile 'com.googlecode.mp4parser:isoparser:1.0.+' - compile 'org.apache.httpcomponents:httpmime:4.2.1' } android { compileSdkVersion 23 - buildToolsVersion '23.0.1' + buildToolsVersion '23.0.2' useLibrary 'org.apache.http.legacy' - packagingOptions { - exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/LICENSE.txt' - } - compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 @@ -30,7 +24,10 @@ android { signingConfigs { debug { - storeFile file("config/debug.keystore") + storeFile file("config/release.keystore") + storePassword RELEASE_STORE_PASSWORD + keyAlias RELEASE_KEY_ALIAS + keyPassword RELEASE_KEY_PASSWORD } release { @@ -46,6 +43,7 @@ android { debuggable true jniDebuggable true signingConfig signingConfigs.debug + applicationIdSuffix ".beta" } release { @@ -81,7 +79,7 @@ android { defaultConfig { minSdkVersion 8 targetSdkVersion 23 - versionCode 654 - versionName "3.2.6" + versionCode 685 + versionName "3.3.1" } } diff --git a/TMessagesProj/config/debug/AndroidManifest.xml b/TMessagesProj/config/debug/AndroidManifest.xml index d194a973e..e902ed135 100644 --- a/TMessagesProj/config/debug/AndroidManifest.xml +++ b/TMessagesProj/config/debug/AndroidManifest.xml @@ -21,13 +21,13 @@ - + diff --git a/TMessagesProj/jni/Android.mk b/TMessagesProj/jni/Android.mk index 7953965a6..6bcfa754d 100755 --- a/TMessagesProj/jni/Android.mk +++ b/TMessagesProj/jni/Android.mk @@ -187,7 +187,7 @@ include $(CLEAR_VARS) LOCAL_PRELINK_MODULE := false LOCAL_STATIC_LIBRARIES := webp sqlite tgnet breakpad -LOCAL_MODULE := tmessages.14 +LOCAL_MODULE := tmessages.15 LOCAL_CFLAGS := -w -std=c11 -Os -DNULL=0 -DSOCKLEN_T=socklen_t -DLOCALE_NOT_USED -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA -DHAVE_LRINT -DHAVE_LRINTF -fno-math-errno LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -ffast-math diff --git a/TMessagesProj/jni/TgNetWrapper.cpp b/TMessagesProj/jni/TgNetWrapper.cpp index 15591be98..a83920bf4 100644 --- a/TMessagesProj/jni/TgNetWrapper.cpp +++ b/TMessagesProj/jni/TgNetWrapper.cpp @@ -96,7 +96,7 @@ void sendRequest(JNIEnv *env, jclass c, jint object, jobject onComplete, jobject if (onQuickAck != nullptr) { jniEnv->CallVoidMethod(onQuickAck, jclass_QuickAckDelegate_run); } - }), flags, datacenterId, (ConnectionType) connetionType, immediate, onComplete, onQuickAck); + }), flags, datacenterId, (ConnectionType) connetionType, immediate, token, onComplete, onQuickAck); } void cancelRequest(JNIEnv *env, jclass c, jint token, jboolean notifyServer) { diff --git a/TMessagesProj/jni/sqlite/sqlite3.c b/TMessagesProj/jni/sqlite/sqlite3.c index 134493887..73ee2685c 100644 --- a/TMessagesProj/jni/sqlite/sqlite3.c +++ b/TMessagesProj/jni/sqlite/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.8.11.1. By combining all the individual C code files into this +** version 3.9.2. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -37,7 +37,7 @@ ** Internal interface definitions for SQLite. ** */ -#ifndef _SQLITEINT_H_ +#ifndef _SQLITEINT_H_ #define _SQLITEINT_H_ /* @@ -325,9 +325,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.8.11.1" -#define SQLITE_VERSION_NUMBER 3008011 -#define SQLITE_SOURCE_ID "2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f" +#define SQLITE_VERSION "3.9.2" +#define SQLITE_VERSION_NUMBER 3009002 +#define SQLITE_SOURCE_ID "2015-11-02 18:31:45 bda77dda9697c463c3d0704014d51627fceee328" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -338,7 +338,7 @@ extern "C" { ** but are associated with the library instead of the header file. ^(Cautious ** programmers might include assert() statements in their application to ** verify that values returned by these interfaces match the macros in -** the header, and thus insure that the application is +** the header, and thus ensure that the application is ** compiled with matching library and header files. ** **
@@ -588,7 +588,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
 ** Restrictions:
 **
 ** 
    -**
  • The application must insure that the 1st parameter to sqlite3_exec() +**
  • The application must ensure that the 1st parameter to sqlite3_exec() ** is a valid and open [database connection]. **
  • The application must not close the [database connection] specified by ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. @@ -691,6 +691,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_exec( #define SQLITE_IOERR_MMAP (SQLITE_IOERR | (24<<8)) #define SQLITE_IOERR_GETTEMPPATH (SQLITE_IOERR | (25<<8)) #define SQLITE_IOERR_CONVPATH (SQLITE_IOERR | (26<<8)) +#define SQLITE_IOERR_VNODE (SQLITE_IOERR | (27<<8)) #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) #define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8)) @@ -1580,9 +1581,11 @@ SQLITE_API int SQLITE_STDCALL sqlite3_os_end(void); ** applications and so this routine is usually not necessary. It is ** provided to support rare applications with unusual needs. ** -** The sqlite3_config() interface is not threadsafe. The application -** must insure that no other SQLite interfaces are invoked by other -** threads while sqlite3_config() is running. Furthermore, sqlite3_config() +** The sqlite3_config() interface is not threadsafe. The application +** must ensure that no other SQLite interfaces are invoked by other +** threads while sqlite3_config() is running. +** +** The sqlite3_config() interface ** may only be invoked prior to library initialization using ** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. ** ^If sqlite3_config() is called after [sqlite3_initialize()] and before @@ -3587,7 +3590,8 @@ SQLITE_API int SQLITE_STDCALL sqlite3_stmt_readonly(sqlite3_stmt *pStmt); ** ** ^The sqlite3_stmt_busy(S) interface returns true (non-zero) if the ** [prepared statement] S has been stepped at least once using -** [sqlite3_step(S)] but has not run to completion and/or has not +** [sqlite3_step(S)] but has neither run to completion (returned +** [SQLITE_DONE] from [sqlite3_step(S)]) nor ** been reset using [sqlite3_reset(S)]. ^The sqlite3_stmt_busy(S) ** interface returns false if S is a NULL pointer. If S is not a ** NULL pointer and is not a pointer to a valid [prepared statement] @@ -3840,7 +3844,7 @@ SQLITE_API const char *SQLITE_STDCALL sqlite3_bind_parameter_name(sqlite3_stmt*, ** ** See also: [sqlite3_bind_blob|sqlite3_bind()], ** [sqlite3_bind_parameter_count()], and -** [sqlite3_bind_parameter_index()]. +** [sqlite3_bind_parameter_name()]. */ SQLITE_API int SQLITE_STDCALL sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); @@ -4569,6 +4573,22 @@ SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16be(sqlite3_value*); SQLITE_API int SQLITE_STDCALL sqlite3_value_type(sqlite3_value*); SQLITE_API int SQLITE_STDCALL sqlite3_value_numeric_type(sqlite3_value*); +/* +** CAPI3REF: Finding The Subtype Of SQL Values +** METHOD: sqlite3_value +** +** The sqlite3_value_subtype(V) function returns the subtype for +** an [application-defined SQL function] argument V. The subtype +** information can be used to pass a limited amount of context from +** one SQL function to another. Use the [sqlite3_result_subtype()] +** routine to set the subtype for the return value of an SQL function. +** +** SQLite makes no use of subtype itself. It merely passes the subtype +** from the result of one [application-defined SQL function] into the +** input of another. +*/ +SQLITE_API unsigned int SQLITE_STDCALL sqlite3_value_subtype(sqlite3_value*); + /* ** CAPI3REF: Copy And Free SQL Values ** METHOD: sqlite3_value @@ -4868,6 +4888,21 @@ SQLITE_API void SQLITE_STDCALL sqlite3_result_value(sqlite3_context*, sqlite3_va SQLITE_API void SQLITE_STDCALL sqlite3_result_zeroblob(sqlite3_context*, int n); SQLITE_API int SQLITE_STDCALL sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n); + +/* +** CAPI3REF: Setting The Subtype Of An SQL Function +** METHOD: sqlite3_context +** +** The sqlite3_result_subtype(C,T) function causes the subtype of +** the result from the [application-defined SQL function] with +** [sqlite3_context] C to be the value T. Only the lower 8 bits +** of the subtype T are preserved in current versions of SQLite; +** higher order bits are discarded. +** The number of subtype bytes preserved by SQLite might increase +** in future releases of SQLite. +*/ +SQLITE_API void SQLITE_STDCALL sqlite3_result_subtype(sqlite3_context*,unsigned int); + /* ** CAPI3REF: Define New Collating Sequences ** METHOD: sqlite3 @@ -5813,13 +5848,31 @@ struct sqlite3_module { ** ^The estimatedRows value is an estimate of the number of rows that ** will be returned by the strategy. ** +** The xBestIndex method may optionally populate the idxFlags field with a +** mask of SQLITE_INDEX_SCAN_* flags. Currently there is only one such flag - +** SQLITE_INDEX_SCAN_UNIQUE. If the xBestIndex method sets this flag, SQLite +** assumes that the strategy may visit at most one row. +** +** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then +** SQLite also assumes that if a call to the xUpdate() method is made as +** part of the same statement to delete or update a virtual table row and the +** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback +** any database changes. In other words, if the xUpdate() returns +** SQLITE_CONSTRAINT, the database contents must be exactly as they were +** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not +** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by +** the xUpdate method are automatically rolled back by SQLite. +** ** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info ** structure for SQLite version 3.8.2. If a virtual table extension is ** used with an SQLite version earlier than 3.8.2, the results of attempting ** to read or write the estimatedRows field are undefined (but are likely ** to included crashing the application). The estimatedRows field should ** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. +** value greater than or equal to 3008002. Similarly, the idxFlags field +** was added for version 3.9.0. It may therefore only be used if +** sqlite3_libversion_number() returns a value greater than or equal to +** 3009000. */ struct sqlite3_index_info { /* Inputs */ @@ -5847,8 +5900,15 @@ struct sqlite3_index_info { double estimatedCost; /* Estimated cost of using this index */ /* Fields below are only available in SQLite 3.8.2 and later */ sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + /* Fields below are only available in SQLite 3.9.0 and later */ + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ }; +/* +** CAPI3REF: Virtual Table Scan Flags +*/ +#define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + /* ** CAPI3REF: Virtual Table Constraint Operator Codes ** @@ -6306,6 +6366,9 @@ SQLITE_API int SQLITE_STDCALL sqlite3_vfs_unregister(sqlite3_vfs*); **
  • SQLITE_MUTEX_STATIC_APP1 **
  • SQLITE_MUTEX_STATIC_APP2 **
  • SQLITE_MUTEX_STATIC_APP3 +**
  • SQLITE_MUTEX_STATIC_VFS1 +**
  • SQLITE_MUTEX_STATIC_VFS2 +**
  • SQLITE_MUTEX_STATIC_VFS3 **
** ** ^The first two constants (SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) @@ -8072,6 +8135,526 @@ struct sqlite3_rtree_query_info { #endif /* ifndef _SQLITE3RTREE_H_ */ +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** Interfaces to extend FTS5. Using the interfaces defined in this file, +** FTS5 may be extended with: +** +** * custom tokenizers, and +** * custom auxiliary functions. +*/ + + +#ifndef _FTS5_H +#define _FTS5_H + + +#if 0 +extern "C" { +#endif + +/************************************************************************* +** CUSTOM AUXILIARY FUNCTIONS +** +** Virtual table implementations may overload SQL functions by implementing +** the sqlite3_module.xFindFunction() method. +*/ + +typedef struct Fts5ExtensionApi Fts5ExtensionApi; +typedef struct Fts5Context Fts5Context; +typedef struct Fts5PhraseIter Fts5PhraseIter; + +typedef void (*fts5_extension_function)( + const Fts5ExtensionApi *pApi, /* API offered by current FTS version */ + Fts5Context *pFts, /* First arg to pass to pApi functions */ + sqlite3_context *pCtx, /* Context for returning result/error */ + int nVal, /* Number of values in apVal[] array */ + sqlite3_value **apVal /* Array of trailing arguments */ +); + +struct Fts5PhraseIter { + const unsigned char *a; + const unsigned char *b; +}; + +/* +** EXTENSION API FUNCTIONS +** +** xUserData(pFts): +** Return a copy of the context pointer the extension function was +** registered with. +** +** xColumnTotalSize(pFts, iCol, pnToken): +** If parameter iCol is less than zero, set output variable *pnToken +** to the total number of tokens in the FTS5 table. Or, if iCol is +** non-negative but less than the number of columns in the table, return +** the total number of tokens in column iCol, considering all rows in +** the FTS5 table. +** +** If parameter iCol is greater than or equal to the number of columns +** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. +** an OOM condition or IO error), an appropriate SQLite error code is +** returned. +** +** xColumnCount(pFts): +** Return the number of columns in the table. +** +** xColumnSize(pFts, iCol, pnToken): +** If parameter iCol is less than zero, set output variable *pnToken +** to the total number of tokens in the current row. Or, if iCol is +** non-negative but less than the number of columns in the table, set +** *pnToken to the number of tokens in column iCol of the current row. +** +** If parameter iCol is greater than or equal to the number of columns +** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. +** an OOM condition or IO error), an appropriate SQLite error code is +** returned. +** +** xColumnText: +** This function attempts to retrieve the text of column iCol of the +** current document. If successful, (*pz) is set to point to a buffer +** containing the text in utf-8 encoding, (*pn) is set to the size in bytes +** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, +** if an error occurs, an SQLite error code is returned and the final values +** of (*pz) and (*pn) are undefined. +** +** xPhraseCount: +** Returns the number of phrases in the current query expression. +** +** xPhraseSize: +** Returns the number of tokens in phrase iPhrase of the query. Phrases +** are numbered starting from zero. +** +** xInstCount: +** Set *pnInst to the total number of occurrences of all phrases within +** the query within the current row. Return SQLITE_OK if successful, or +** an error code (i.e. SQLITE_NOMEM) if an error occurs. +** +** xInst: +** Query for the details of phrase match iIdx within the current row. +** Phrase matches are numbered starting from zero, so the iIdx argument +** should be greater than or equal to zero and smaller than the value +** output by xInstCount(). +** +** Returns SQLITE_OK if successful, or an error code (i.e. SQLITE_NOMEM) +** if an error occurs. +** +** xRowid: +** Returns the rowid of the current row. +** +** xTokenize: +** Tokenize text using the tokenizer belonging to the FTS5 table. +** +** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): +** This API function is used to query the FTS table for phrase iPhrase +** of the current query. Specifically, a query equivalent to: +** +** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid +** +** with $p set to a phrase equivalent to the phrase iPhrase of the +** current query is executed. For each row visited, the callback function +** passed as the fourth argument is invoked. The context and API objects +** passed to the callback function may be used to access the properties of +** each matched row. Invoking Api.xUserData() returns a copy of the pointer +** passed as the third argument to pUserData. +** +** If the callback function returns any value other than SQLITE_OK, the +** query is abandoned and the xQueryPhrase function returns immediately. +** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. +** Otherwise, the error code is propagated upwards. +** +** If the query runs to completion without incident, SQLITE_OK is returned. +** Or, if some error occurs before the query completes or is aborted by +** the callback, an SQLite error code is returned. +** +** +** xSetAuxdata(pFts5, pAux, xDelete) +** +** Save the pointer passed as the second argument as the extension functions +** "auxiliary data". The pointer may then be retrieved by the current or any +** future invocation of the same fts5 extension function made as part of +** of the same MATCH query using the xGetAuxdata() API. +** +** Each extension function is allocated a single auxiliary data slot for +** each FTS query (MATCH expression). If the extension function is invoked +** more than once for a single FTS query, then all invocations share a +** single auxiliary data context. +** +** If there is already an auxiliary data pointer when this function is +** invoked, then it is replaced by the new pointer. If an xDelete callback +** was specified along with the original pointer, it is invoked at this +** point. +** +** The xDelete callback, if one is specified, is also invoked on the +** auxiliary data pointer after the FTS5 query has finished. +** +** If an error (e.g. an OOM condition) occurs within this function, an +** the auxiliary data is set to NULL and an error code returned. If the +** xDelete parameter was not NULL, it is invoked on the auxiliary data +** pointer before returning. +** +** +** xGetAuxdata(pFts5, bClear) +** +** Returns the current auxiliary data pointer for the fts5 extension +** function. See the xSetAuxdata() method for details. +** +** If the bClear argument is non-zero, then the auxiliary data is cleared +** (set to NULL) before this function returns. In this case the xDelete, +** if any, is not invoked. +** +** +** xRowCount(pFts5, pnRow) +** +** This function is used to retrieve the total number of rows in the table. +** In other words, the same value that would be returned by: +** +** SELECT count(*) FROM ftstable; +** +** xPhraseFirst() +** This function is used, along with type Fts5PhraseIter and the xPhraseNext +** method, to iterate through all instances of a single query phrase within +** the current row. This is the same information as is accessible via the +** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient +** to use, this API may be faster under some circumstances. To iterate +** through instances of phrase iPhrase, use the following code: +** +** Fts5PhraseIter iter; +** int iCol, iOff; +** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); +** iOff>=0; +** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) +** ){ +** // An instance of phrase iPhrase at offset iOff of column iCol +** } +** +** The Fts5PhraseIter structure is defined above. Applications should not +** modify this structure directly - it should only be used as shown above +** with the xPhraseFirst() and xPhraseNext() API methods. +** +** xPhraseNext() +** See xPhraseFirst above. +*/ +struct Fts5ExtensionApi { + int iVersion; /* Currently always set to 1 */ + + void *(*xUserData)(Fts5Context*); + + int (*xColumnCount)(Fts5Context*); + int (*xRowCount)(Fts5Context*, sqlite3_int64 *pnRow); + int (*xColumnTotalSize)(Fts5Context*, int iCol, sqlite3_int64 *pnToken); + + int (*xTokenize)(Fts5Context*, + const char *pText, int nText, /* Text to tokenize */ + void *pCtx, /* Context passed to xToken() */ + int (*xToken)(void*, int, const char*, int, int, int) /* Callback */ + ); + + int (*xPhraseCount)(Fts5Context*); + int (*xPhraseSize)(Fts5Context*, int iPhrase); + + int (*xInstCount)(Fts5Context*, int *pnInst); + int (*xInst)(Fts5Context*, int iIdx, int *piPhrase, int *piCol, int *piOff); + + sqlite3_int64 (*xRowid)(Fts5Context*); + int (*xColumnText)(Fts5Context*, int iCol, const char **pz, int *pn); + int (*xColumnSize)(Fts5Context*, int iCol, int *pnToken); + + int (*xQueryPhrase)(Fts5Context*, int iPhrase, void *pUserData, + int(*)(const Fts5ExtensionApi*,Fts5Context*,void*) + ); + int (*xSetAuxdata)(Fts5Context*, void *pAux, void(*xDelete)(void*)); + void *(*xGetAuxdata)(Fts5Context*, int bClear); + + void (*xPhraseFirst)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*, int*); + void (*xPhraseNext)(Fts5Context*, Fts5PhraseIter*, int *piCol, int *piOff); +}; + +/* +** CUSTOM AUXILIARY FUNCTIONS +*************************************************************************/ + +/************************************************************************* +** CUSTOM TOKENIZERS +** +** Applications may also register custom tokenizer types. A tokenizer +** is registered by providing fts5 with a populated instance of the +** following structure. All structure methods must be defined, setting +** any member of the fts5_tokenizer struct to NULL leads to undefined +** behaviour. The structure methods are expected to function as follows: +** +** xCreate: +** This function is used to allocate and inititalize a tokenizer instance. +** A tokenizer instance is required to actually tokenize text. +** +** The first argument passed to this function is a copy of the (void*) +** pointer provided by the application when the fts5_tokenizer object +** was registered with FTS5 (the third argument to xCreateTokenizer()). +** The second and third arguments are an array of nul-terminated strings +** containing the tokenizer arguments, if any, specified following the +** tokenizer name as part of the CREATE VIRTUAL TABLE statement used +** to create the FTS5 table. +** +** The final argument is an output variable. If successful, (*ppOut) +** should be set to point to the new tokenizer handle and SQLITE_OK +** returned. If an error occurs, some value other than SQLITE_OK should +** be returned. In this case, fts5 assumes that the final value of *ppOut +** is undefined. +** +** xDelete: +** This function is invoked to delete a tokenizer handle previously +** allocated using xCreate(). Fts5 guarantees that this function will +** be invoked exactly once for each successful call to xCreate(). +** +** xTokenize: +** This function is expected to tokenize the nText byte string indicated +** by argument pText. pText may or may not be nul-terminated. The first +** argument passed to this function is a pointer to an Fts5Tokenizer object +** returned by an earlier call to xCreate(). +** +** The second argument indicates the reason that FTS5 is requesting +** tokenization of the supplied text. This is always one of the following +** four values: +** +**
  • FTS5_TOKENIZE_DOCUMENT - A document is being inserted into +** or removed from the FTS table. The tokenizer is being invoked to +** determine the set of tokens to add to (or delete from) the +** FTS index. +** +**
  • FTS5_TOKENIZE_QUERY - A MATCH query is being executed +** against the FTS index. The tokenizer is being called to tokenize +** a bareword or quoted string specified as part of the query. +** +**
  • (FTS5_TOKENIZE_QUERY | FTS5_TOKENIZE_PREFIX) - Same as +** FTS5_TOKENIZE_QUERY, except that the bareword or quoted string is +** followed by a "*" character, indicating that the last token +** returned by the tokenizer will be treated as a token prefix. +** +**
  • FTS5_TOKENIZE_AUX - The tokenizer is being invoked to +** satisfy an fts5_api.xTokenize() request made by an auxiliary +** function. Or an fts5_api.xColumnSize() request made by the same +** on a columnsize=0 database. +**
+** +** For each token in the input string, the supplied callback xToken() must +** be invoked. The first argument to it should be a copy of the pointer +** passed as the second argument to xTokenize(). The third and fourth +** arguments are a pointer to a buffer containing the token text, and the +** size of the token in bytes. The 4th and 5th arguments are the byte offsets +** of the first byte of and first byte immediately following the text from +** which the token is derived within the input. +** +** The second argument passed to the xToken() callback ("tflags") should +** normally be set to 0. The exception is if the tokenizer supports +** synonyms. In this case see the discussion below for details. +** +** FTS5 assumes the xToken() callback is invoked for each token in the +** order that they occur within the input text. +** +** If an xToken() callback returns any value other than SQLITE_OK, then +** the tokenization should be abandoned and the xTokenize() method should +** immediately return a copy of the xToken() return value. Or, if the +** input buffer is exhausted, xTokenize() should return SQLITE_OK. Finally, +** if an error occurs with the xTokenize() implementation itself, it +** may abandon the tokenization and return any error code other than +** SQLITE_OK or SQLITE_DONE. +** +** SYNONYM SUPPORT +** +** Custom tokenizers may also support synonyms. Consider a case in which a +** user wishes to query for a phrase such as "first place". Using the +** built-in tokenizers, the FTS5 query 'first + place' will match instances +** of "first place" within the document set, but not alternative forms +** such as "1st place". In some applications, it would be better to match +** all instances of "first place" or "1st place" regardless of which form +** the user specified in the MATCH query text. +** +** There are several ways to approach this in FTS5: +** +**
  1. By mapping all synonyms to a single token. In this case, the +** In the above example, this means that the tokenizer returns the +** same token for inputs "first" and "1st". Say that token is in +** fact "first", so that when the user inserts the document "I won +** 1st place" entries are added to the index for tokens "i", "won", +** "first" and "place". If the user then queries for '1st + place', +** the tokenizer substitutes "first" for "1st" and the query works +** as expected. +** +**
  2. By adding multiple synonyms for a single term to the FTS index. +** In this case, when tokenizing query text, the tokenizer may +** provide multiple synonyms for a single term within the document. +** FTS5 then queries the index for each synonym individually. For +** example, faced with the query: +** +** +** ... MATCH 'first place' +** +** the tokenizer offers both "1st" and "first" as synonyms for the +** first token in the MATCH query and FTS5 effectively runs a query +** similar to: +** +** +** ... MATCH '(first OR 1st) place' +** +** except that, for the purposes of auxiliary functions, the query +** still appears to contain just two phrases - "(first OR 1st)" +** being treated as a single phrase. +** +**
  3. By adding multiple synonyms for a single term to the FTS index. +** Using this method, when tokenizing document text, the tokenizer +** provides multiple synonyms for each token. So that when a +** document such as "I won first place" is tokenized, entries are +** added to the FTS index for "i", "won", "first", "1st" and +** "place". +** +** This way, even if the tokenizer does not provide synonyms +** when tokenizing query text (it should not - to do would be +** inefficient), it doesn't matter if the user queries for +** 'first + place' or '1st + place', as there are entires in the +** FTS index corresponding to both forms of the first token. +**
+** +** Whether it is parsing document or query text, any call to xToken that +** specifies a tflags argument with the FTS5_TOKEN_COLOCATED bit +** is considered to supply a synonym for the previous token. For example, +** when parsing the document "I won first place", a tokenizer that supports +** synonyms would call xToken() 5 times, as follows: +** +** +** xToken(pCtx, 0, "i", 1, 0, 1); +** xToken(pCtx, 0, "won", 3, 2, 5); +** xToken(pCtx, 0, "first", 5, 6, 11); +** xToken(pCtx, FTS5_TOKEN_COLOCATED, "1st", 3, 6, 11); +** xToken(pCtx, 0, "place", 5, 12, 17); +** +** +** It is an error to specify the FTS5_TOKEN_COLOCATED flag the first time +** xToken() is called. Multiple synonyms may be specified for a single token +** by making multiple calls to xToken(FTS5_TOKEN_COLOCATED) in sequence. +** There is no limit to the number of synonyms that may be provided for a +** single token. +** +** In many cases, method (1) above is the best approach. It does not add +** extra data to the FTS index or require FTS5 to query for multiple terms, +** so it is efficient in terms of disk space and query speed. However, it +** does not support prefix queries very well. If, as suggested above, the +** token "first" is subsituted for "1st" by the tokenizer, then the query: +** +** +** ... MATCH '1s*' +** +** will not match documents that contain the token "1st" (as the tokenizer +** will probably not map "1s" to any prefix of "first"). +** +** For full prefix support, method (3) may be preferred. In this case, +** because the index contains entries for both "first" and "1st", prefix +** queries such as 'fi*' or '1s*' will match correctly. However, because +** extra entries are added to the FTS index, this method uses more space +** within the database. +** +** Method (2) offers a midpoint between (1) and (3). Using this method, +** a query such as '1s*' will match documents that contain the literal +** token "1st", but not "first" (assuming the tokenizer is not able to +** provide synonyms for prefixes). However, a non-prefix query like '1st' +** will match against "1st" and "first". This method does not require +** extra disk space, as no extra entries are added to the FTS index. +** On the other hand, it may require more CPU cycles to run MATCH queries, +** as separate queries of the FTS index are required for each synonym. +** +** When using methods (2) or (3), it is important that the tokenizer only +** provide synonyms when tokenizing document text (method (2)) or query +** text (method (3)), not both. Doing so will not cause any errors, but is +** inefficient. +*/ +typedef struct Fts5Tokenizer Fts5Tokenizer; +typedef struct fts5_tokenizer fts5_tokenizer; +struct fts5_tokenizer { + int (*xCreate)(void*, const char **azArg, int nArg, Fts5Tokenizer **ppOut); + void (*xDelete)(Fts5Tokenizer*); + int (*xTokenize)(Fts5Tokenizer*, + void *pCtx, + int flags, /* Mask of FTS5_TOKENIZE_* flags */ + const char *pText, int nText, + int (*xToken)( + void *pCtx, /* Copy of 2nd argument to xTokenize() */ + int tflags, /* Mask of FTS5_TOKEN_* flags */ + const char *pToken, /* Pointer to buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStart, /* Byte offset of token within input text */ + int iEnd /* Byte offset of end of token within input text */ + ) + ); +}; + +/* Flags that may be passed as the third argument to xTokenize() */ +#define FTS5_TOKENIZE_QUERY 0x0001 +#define FTS5_TOKENIZE_PREFIX 0x0002 +#define FTS5_TOKENIZE_DOCUMENT 0x0004 +#define FTS5_TOKENIZE_AUX 0x0008 + +/* Flags that may be passed by the tokenizer implementation back to FTS5 +** as the third argument to the supplied xToken callback. */ +#define FTS5_TOKEN_COLOCATED 0x0001 /* Same position as prev. token */ + +/* +** END OF CUSTOM TOKENIZERS +*************************************************************************/ + +/************************************************************************* +** FTS5 EXTENSION REGISTRATION API +*/ +typedef struct fts5_api fts5_api; +struct fts5_api { + int iVersion; /* Currently always set to 2 */ + + /* Create a new tokenizer */ + int (*xCreateTokenizer)( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_tokenizer *pTokenizer, + void (*xDestroy)(void*) + ); + + /* Find an existing tokenizer */ + int (*xFindTokenizer)( + fts5_api *pApi, + const char *zName, + void **ppContext, + fts5_tokenizer *pTokenizer + ); + + /* Create a new auxiliary function */ + int (*xCreateFunction)( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_extension_function xFunction, + void (*xDestroy)(void*) + ); +}; + +/* +** END OF REGISTRATION API +*************************************************************************/ + +#if 0 +} /* end of the 'extern "C"' block */ +#endif + +#endif /* _FTS5_H */ + + /************** End of sqlite3.h *********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ @@ -8363,15 +8946,19 @@ struct sqlite3_rtree_query_info { /* ** Make sure that the compiler intrinsics we desire are enabled when -** compiling with an appropriate version of MSVC. +** compiling with an appropriate version of MSVC unless prevented by +** the SQLITE_DISABLE_INTRINSIC define. */ -#if defined(_MSC_VER) && _MSC_VER>=1300 -# if !defined(_WIN32_WCE) -# include -# pragma intrinsic(_byteswap_ushort) -# pragma intrinsic(_byteswap_ulong) -# else -# include +#if !defined(SQLITE_DISABLE_INTRINSIC) +# if defined(_MSC_VER) && _MSC_VER>=1300 +# if !defined(_WIN32_WCE) +# include +# pragma intrinsic(_byteswap_ushort) +# pragma intrinsic(_byteswap_ulong) +# pragma intrinsic(_ReadWriteBarrier) +# else +# include +# endif # endif #endif @@ -9589,7 +10176,7 @@ SQLITE_PRIVATE int sqlite3BtreeMovetoUnpacked( ); SQLITE_PRIVATE int sqlite3BtreeCursorHasMoved(BtCursor*); SQLITE_PRIVATE int sqlite3BtreeCursorRestore(BtCursor*, int*); -SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor*); +SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor*, int); SQLITE_PRIVATE int sqlite3BtreeInsert(BtCursor*, const void *pKey, i64 nKey, const void *pData, int nData, int nZero, int bias, int seekResult); @@ -9983,9 +10570,9 @@ typedef struct VdbeOpList VdbeOpList; #define OP_FkCounter 135 /* synopsis: fkctr[P1]+=P2 */ #define OP_FkIfZero 136 /* synopsis: if fkctr[P1]==0 goto P2 */ #define OP_MemMax 137 /* synopsis: r[P1]=max(r[P1],r[P2]) */ -#define OP_IfPos 138 /* synopsis: if r[P1]>0 goto P2 */ -#define OP_IfNeg 139 /* synopsis: r[P1]+=P3, if r[P1]<0 goto P2 */ -#define OP_IfNotZero 140 /* synopsis: if r[P1]!=0 then r[P1]+=P3, goto P2 */ +#define OP_IfPos 138 /* synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ +#define OP_SetIfNotPos 139 /* synopsis: if r[P1]<=0 then r[P2]=P3 */ +#define OP_IfNotZero 140 /* synopsis: if r[P1]!=0 then r[P1]-=P3, goto P2 */ #define OP_DecrJumpZero 141 /* synopsis: if (--r[P1])==0 goto P2 */ #define OP_JumpZeroIncr 142 /* synopsis: if (r[P1]++)==0 ) goto P2 */ #define OP_AggStep0 143 /* synopsis: accum=r[P3] step(r[P2@P5]) */ @@ -10036,7 +10623,7 @@ typedef struct VdbeOpList VdbeOpList; /* 112 */ 0x00, 0x10, 0x01, 0x01, 0x01, 0x01, 0x10, 0x00,\ /* 120 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 128 */ 0x00, 0x06, 0x23, 0x0b, 0x01, 0x10, 0x10, 0x00,\ -/* 136 */ 0x01, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00,\ +/* 136 */ 0x01, 0x04, 0x03, 0x06, 0x03, 0x03, 0x03, 0x00,\ /* 144 */ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 152 */ 0x00, 0x00, 0x01, 0x00, 0x10, 0x10, 0x01, 0x00,\ /* 160 */ 0x00,} @@ -10052,12 +10639,16 @@ SQLITE_PRIVATE Vdbe *sqlite3VdbeCreate(Parse*); SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe*,int); SQLITE_PRIVATE int sqlite3VdbeAddOp1(Vdbe*,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe*,int,int,int); +SQLITE_PRIVATE int sqlite3VdbeGoto(Vdbe*,int); +SQLITE_PRIVATE int sqlite3VdbeLoadString(Vdbe*,int,const char*); +SQLITE_PRIVATE void sqlite3VdbeMultiLoad(Vdbe*,int,const char*,...); SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe*,int,int,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOp4(Vdbe*,int,int,int,int,const char *zP4,int); SQLITE_PRIVATE int sqlite3VdbeAddOp4Dup8(Vdbe*,int,int,int,int,const u8*,int); SQLITE_PRIVATE int sqlite3VdbeAddOp4Int(Vdbe*,int,int,int,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOpList(Vdbe*, int nOp, VdbeOpList const *aOp, int iLineno); SQLITE_PRIVATE void sqlite3VdbeAddParseSchemaOp(Vdbe*,int,char*); +SQLITE_PRIVATE void sqlite3VdbeChangeOpcode(Vdbe*, u32 addr, u8); SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe*, u32 addr, int P1); SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe*, u32 addr, int P2); SQLITE_PRIVATE void sqlite3VdbeChangeP3(Vdbe*, u32 addr, int P3); @@ -10301,6 +10892,9 @@ SQLITE_PRIVATE int sqlite3PagerReadFileheader(Pager*, int, unsigned char*); /* Functions used to configure a Pager object. */ SQLITE_PRIVATE void sqlite3PagerSetBusyhandler(Pager*, int(*)(void *), void *); SQLITE_PRIVATE int sqlite3PagerSetPagesize(Pager*, u32*, int); +#ifdef SQLITE_HAS_CODEC +SQLITE_PRIVATE void sqlite3PagerAlignReserve(Pager*,Pager*); +#endif SQLITE_PRIVATE int sqlite3PagerMaxPageCount(Pager*, int); SQLITE_PRIVATE void sqlite3PagerSetCachesize(Pager*, int); SQLITE_PRIVATE void sqlite3PagerSetMmapLimit(Pager *, sqlite3_int64); @@ -11335,18 +11929,20 @@ struct FuncDestructor { ** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. There ** are assert() statements in the code to verify this. */ -#define SQLITE_FUNC_ENCMASK 0x003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */ -#define SQLITE_FUNC_LIKE 0x004 /* Candidate for the LIKE optimization */ -#define SQLITE_FUNC_CASE 0x008 /* Case-sensitive LIKE-type function */ -#define SQLITE_FUNC_EPHEM 0x010 /* Ephemeral. Delete with VDBE */ -#define SQLITE_FUNC_NEEDCOLL 0x020 /* sqlite3GetFuncCollSeq() might be called */ -#define SQLITE_FUNC_LENGTH 0x040 /* Built-in length() function */ -#define SQLITE_FUNC_TYPEOF 0x080 /* Built-in typeof() function */ -#define SQLITE_FUNC_COUNT 0x100 /* Built-in count(*) aggregate */ -#define SQLITE_FUNC_COALESCE 0x200 /* Built-in coalesce() or ifnull() */ -#define SQLITE_FUNC_UNLIKELY 0x400 /* Built-in unlikely() function */ -#define SQLITE_FUNC_CONSTANT 0x800 /* Constant inputs give a constant output */ -#define SQLITE_FUNC_MINMAX 0x1000 /* True for min() and max() aggregates */ +#define SQLITE_FUNC_ENCMASK 0x0003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */ +#define SQLITE_FUNC_LIKE 0x0004 /* Candidate for the LIKE optimization */ +#define SQLITE_FUNC_CASE 0x0008 /* Case-sensitive LIKE-type function */ +#define SQLITE_FUNC_EPHEM 0x0010 /* Ephemeral. Delete with VDBE */ +#define SQLITE_FUNC_NEEDCOLL 0x0020 /* sqlite3GetFuncCollSeq() might be called*/ +#define SQLITE_FUNC_LENGTH 0x0040 /* Built-in length() function */ +#define SQLITE_FUNC_TYPEOF 0x0080 /* Built-in typeof() function */ +#define SQLITE_FUNC_COUNT 0x0100 /* Built-in count(*) aggregate */ +#define SQLITE_FUNC_COALESCE 0x0200 /* Built-in coalesce() or ifnull() */ +#define SQLITE_FUNC_UNLIKELY 0x0400 /* Built-in unlikely() function */ +#define SQLITE_FUNC_CONSTANT 0x0800 /* Constant inputs give a constant output */ +#define SQLITE_FUNC_MINMAX 0x1000 /* True for min() and max() aggregates */ +#define SQLITE_FUNC_SLOCHNG 0x2000 /* "Slow Change". Value constant during a + ** single query - might change over time */ /* ** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are @@ -11362,6 +11958,12 @@ struct FuncDestructor { ** VFUNCTION(zName, nArg, iArg, bNC, xFunc) ** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. ** +** DFUNCTION(zName, nArg, iArg, bNC, xFunc) +** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and +** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions +** and functions like sqlite_version() that can change, but not during +** a single query. +** ** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) ** Used to create an aggregate function definition implemented by ** the C functions xStep and xFinal. The first four parameters @@ -11382,11 +11984,14 @@ struct FuncDestructor { #define VFUNCTION(zName, nArg, iArg, bNC, xFunc) \ {nArg, SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0} +#define DFUNCTION(zName, nArg, iArg, bNC, xFunc) \ + {nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ + SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0} #define FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags) \ {nArg,SQLITE_FUNC_CONSTANT|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL)|extraFlags,\ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0} #define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc) \ - {nArg, SQLITE_FUNC_CONSTANT|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ + {nArg, SQLITE_FUNC_SLOCHNG|SQLITE_UTF8|(bNC*SQLITE_FUNC_NEEDCOLL), \ pArg, 0, xFunc, 0, 0, #zName, 0, 0} #define LIKEFUNC(zName, nArg, arg, flags) \ {nArg, SQLITE_FUNC_CONSTANT|SQLITE_UTF8|flags, \ @@ -11430,6 +12035,7 @@ struct Module { const char *zName; /* Name passed to create_module() */ void *pAux; /* pAux passed to create_module() */ void (*xDestroy)(void *); /* Module destructor function */ + Table *pEpoTab; /* Eponymous table for this module */ }; /* @@ -11475,6 +12081,7 @@ struct CollSeq { */ #define SQLITE_SO_ASC 0 /* Sort in ascending order */ #define SQLITE_SO_DESC 1 /* Sort in ascending order */ +#define SQLITE_SO_UNDEFINED -1 /* No sort order specified */ /* ** Column affinity types. @@ -11581,9 +12188,8 @@ struct Table { Select *pSelect; /* NULL for tables. Points to definition if a view. */ FKey *pFKey; /* Linked list of all foreign keys in this table */ char *zColAff; /* String defining the affinity of each column */ -#ifndef SQLITE_OMIT_CHECK ExprList *pCheck; /* All CHECK constraints */ -#endif + /* ... also used as column name list in a VIEW */ int tnum; /* Root BTree page for this table */ i16 iPKey; /* If not negative, use aCol[iPKey] as the rowid */ i16 nCol; /* Number of columns in this table */ @@ -11600,7 +12206,7 @@ struct Table { #endif #ifndef SQLITE_OMIT_VIRTUALTABLE int nModuleArg; /* Number of arguments to the module */ - char **azModuleArg; /* Text of all module args. [0] is module name */ + char **azModuleArg; /* 0: module 1: schema 2: vtab name 3...: args */ VTable *pVTable; /* List of VTable objects. */ #endif Trigger *pTrigger; /* List of triggers stored in pSchema */ @@ -11821,6 +12427,7 @@ struct Index { u8 *aSortOrder; /* for each column: True==DESC, False==ASC */ char **azColl; /* Array of collation sequence names for index */ Expr *pPartIdxWhere; /* WHERE clause for partial indices */ + ExprList *aColExpr; /* Column expressions */ int tnum; /* DB Page containing root of this index */ LogEst szIdxRow; /* Estimated average row size in bytes */ u16 nKeyCol; /* Number of columns forming the key */ @@ -11855,6 +12462,12 @@ struct Index { /* Return true if index X is a UNIQUE index */ #define IsUniqueIndex(X) ((X)->onError!=OE_None) +/* The Index.aiColumn[] values are normally positive integer. But +** there are some negative values that have special meaning: +*/ +#define XN_ROWID (-1) /* Indexed column is the rowid */ +#define XN_EXPR (-2) /* Indexed column is an expression */ + /* ** Each sample stored in the sqlite_stat3 table is represented in memory ** using a structure of this type. See documentation at the top of the @@ -12070,9 +12683,10 @@ struct Expr { #define EP_MemToken 0x010000 /* Need to sqlite3DbFree() Expr.zToken */ #define EP_NoReduce 0x020000 /* Cannot EXPRDUP_REDUCE this Expr */ #define EP_Unlikely 0x040000 /* unlikely() or likelihood() function */ -#define EP_ConstFunc 0x080000 /* Node is a SQLITE_FUNC_CONSTANT function */ +#define EP_ConstFunc 0x080000 /* A SQLITE_FUNC_CONSTANT or _SLOCHNG function */ #define EP_CanBeNull 0x100000 /* Can be null despite NOT NULL constraint */ #define EP_Subquery 0x200000 /* Tree contains a TK_SELECT operator */ +#define EP_Alias 0x400000 /* Is an alias for a result set column */ /* ** Combinations of two or more EP_* flags @@ -12235,11 +12849,15 @@ struct SrcList { int addrFillSub; /* Address of subroutine to manifest a subquery */ int regReturn; /* Register holding return address of addrFillSub */ int regResult; /* Registers holding results of a co-routine */ - u8 jointype; /* Type of join between this able and the previous */ - unsigned notIndexed :1; /* True if there is a NOT INDEXED clause */ - unsigned isCorrelated :1; /* True if sub-query is correlated */ - unsigned viaCoroutine :1; /* Implemented as a co-routine */ - unsigned isRecursive :1; /* True for recursive reference in WITH */ + struct { + u8 jointype; /* Type of join between this able and the previous */ + unsigned notIndexed :1; /* True if there is a NOT INDEXED clause */ + unsigned isIndexedBy :1; /* True if there is an INDEXED BY clause */ + unsigned isTabFunc :1; /* True if table-valued-function syntax */ + unsigned isCorrelated :1; /* True if sub-query is correlated */ + unsigned viaCoroutine :1; /* Implemented as a co-routine */ + unsigned isRecursive :1; /* True for recursive reference in WITH */ + } fg; #ifndef SQLITE_OMIT_EXPLAIN u8 iSelectId; /* If pSelect!=0, the id of the sub-select in EQP */ #endif @@ -12247,8 +12865,11 @@ struct SrcList { Expr *pOn; /* The ON clause of a join */ IdList *pUsing; /* The USING clause of a join */ Bitmask colUsed; /* Bit N (1<" clause */ - Index *pIndex; /* Index structure corresponding to zIndex, if any */ + union { + char *zIndexedBy; /* Identifier from "INDEXED BY " clause */ + ExprList *pFuncArg; /* Arguments to table-valued-function */ + } u1; + Index *pIBIndex; /* Index structure corresponding to u1.zIndexedBy */ } a[1]; /* One entry for each identifier on the list */ }; @@ -12282,6 +12903,7 @@ struct SrcList { #define WHERE_WANT_DISTINCT 0x0400 /* All output needs to be distinct */ #define WHERE_SORTBYGROUP 0x0800 /* Support sqlite3WhereIsSorted() */ #define WHERE_REOPEN_IDX 0x1000 /* Try to use OP_ReopenIdx */ +#define WHERE_ONEPASS_MULTIROW 0x2000 /* ONEPASS is ok with multiple rows */ /* Allowed return values from sqlite3WhereIsDistinct() */ @@ -12334,6 +12956,7 @@ struct NameContext { #define NC_IsCheck 0x0004 /* True if resolving names in a CHECK constraint */ #define NC_InAggFunc 0x0008 /* True if analyzing arguments to an agg func */ #define NC_PartIdx 0x0010 /* True if resolving a partial index WHERE */ +#define NC_IdxExpr 0x0020 /* True if resolving columns of CREATE INDEX */ #define NC_MinMaxAgg 0x1000 /* min/max aggregates seen. See note above */ /* @@ -12603,7 +13226,7 @@ struct Parse { int nOpAlloc; /* Number of slots allocated for Vdbe.aOp[] */ int iFixedOp; /* Never back out opcodes iFixedOp-1 or earlier */ int ckBase; /* Base register of data during check constraints */ - int iPartIdxTab; /* Table corresponding to a partial index */ + int iSelfTab; /* Table of an index whose exprs are being coded */ int iCacheLevel; /* ColCache valid when aColCache[].iLevel<=iCacheLevel */ int iCacheCnt; /* Counter used to generate aColCache[].lru values */ int nLabel; /* Number of labels used */ @@ -12973,7 +13596,7 @@ struct With { char *zName; /* Name of this CTE */ ExprList *pCols; /* List of explicit column names, or NULL */ Select *pSelect; /* The definition of this CTE */ - const char *zErr; /* Error message for circular references */ + const char *zCteErr; /* Error message for circular references */ } a[1]; }; @@ -13121,6 +13744,11 @@ SQLITE_PRIVATE sqlite3_mutex *sqlite3MutexAlloc(int); SQLITE_PRIVATE int sqlite3MutexInit(void); SQLITE_PRIVATE int sqlite3MutexEnd(void); #endif +#if !defined(SQLITE_MUTEX_OMIT) && !defined(SQLITE_MUTEX_NOOP) +SQLITE_PRIVATE void sqlite3MemoryBarrier(void); +#else +# define sqlite3MemoryBarrier() +#endif SQLITE_PRIVATE sqlite3_int64 sqlite3StatusValue(int); SQLITE_PRIVATE void sqlite3StatusUp(int, int); @@ -13187,6 +13815,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse*,ExprList*, Token*); SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse*, Expr*); SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3*, Expr*); SQLITE_PRIVATE ExprList *sqlite3ExprListAppend(Parse*,ExprList*,Expr*); +SQLITE_PRIVATE void sqlite3ExprListSetSortOrder(ExprList*,int); SQLITE_PRIVATE void sqlite3ExprListSetName(Parse*,ExprList*,Token*,int); SQLITE_PRIVATE void sqlite3ExprListSetSpan(Parse*,ExprList*,ExprSpan*); SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3*, ExprList*); @@ -13199,6 +13828,8 @@ SQLITE_PRIVATE void sqlite3ResetOneSchema(sqlite3*,int); SQLITE_PRIVATE void sqlite3CollapseDatabaseArray(sqlite3*); SQLITE_PRIVATE void sqlite3BeginParse(Parse*,int); SQLITE_PRIVATE void sqlite3CommitInternalChanges(sqlite3*); +SQLITE_PRIVATE void sqlite3DeleteColumnNames(sqlite3*,Table*); +SQLITE_PRIVATE int sqlite3ColumnsFromExprList(Parse*,ExprList*,i16*,Column**); SQLITE_PRIVATE Table *sqlite3ResultSetOfSelect(Parse*,Select*); SQLITE_PRIVATE void sqlite3OpenMasterTable(Parse *, int); SQLITE_PRIVATE Index *sqlite3PrimaryKeyIndex(Table*); @@ -13240,7 +13871,7 @@ SQLITE_PRIVATE void sqlite3RowSetInsert(RowSet*, i64); SQLITE_PRIVATE int sqlite3RowSetTest(RowSet*, int iBatch, i64); SQLITE_PRIVATE int sqlite3RowSetNext(RowSet*, i64*); -SQLITE_PRIVATE void sqlite3CreateView(Parse*,Token*,Token*,Token*,Select*,int,int); +SQLITE_PRIVATE void sqlite3CreateView(Parse*,Token*,Token*,Token*,ExprList*,Select*,int,int); #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse*,Table*); @@ -13270,6 +13901,7 @@ SQLITE_PRIVATE SrcList *sqlite3SrcListAppend(sqlite3*, SrcList*, Token*, Token*) SQLITE_PRIVATE SrcList *sqlite3SrcListAppendFromTerm(Parse*, SrcList*, Token*, Token*, Token*, Select*, Expr*, IdList*); SQLITE_PRIVATE void sqlite3SrcListIndexedBy(Parse *, SrcList *, Token *); +SQLITE_PRIVATE void sqlite3SrcListFuncArgs(Parse*, SrcList*, ExprList*); SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *, struct SrcList_item *); SQLITE_PRIVATE void sqlite3SrcListShiftJoinType(SrcList*); SQLITE_PRIVATE void sqlite3SrcListAssignCursors(Parse*, SrcList*); @@ -13300,6 +13932,10 @@ SQLITE_PRIVATE int sqlite3WhereIsSorted(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereContinueLabel(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereBreakLabel(WhereInfo*); SQLITE_PRIVATE int sqlite3WhereOkOnePass(WhereInfo*, int*); +#define ONEPASS_OFF 0 /* Use of ONEPASS not allowed */ +#define ONEPASS_SINGLE 1 /* ONEPASS valid for a single row update */ +#define ONEPASS_MULTI 2 /* ONEPASS is valid for multiple rows */ +SQLITE_PRIVATE void sqlite3ExprCodeLoadIndexColumn(Parse*, Index*, int, int, int); SQLITE_PRIVATE int sqlite3ExprCodeGetColumn(Parse*, Table*, int, int, int, u8); SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable(Vdbe*, Table*, int, int, int); SQLITE_PRIVATE void sqlite3ExprCodeMove(Parse*, int, int, int); @@ -13315,9 +13951,10 @@ SQLITE_PRIVATE void sqlite3ExprCodeAtInit(Parse*, Expr*, int, u8); SQLITE_PRIVATE int sqlite3ExprCodeTemp(Parse*, Expr*, int*); SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse*, Expr*, int); SQLITE_PRIVATE void sqlite3ExprCodeAndCache(Parse*, Expr*, int); -SQLITE_PRIVATE int sqlite3ExprCodeExprList(Parse*, ExprList*, int, u8); +SQLITE_PRIVATE int sqlite3ExprCodeExprList(Parse*, ExprList*, int, int, u8); #define SQLITE_ECEL_DUP 0x01 /* Deep, not shallow copies */ #define SQLITE_ECEL_FACTOR 0x02 /* Factor out constant terms */ +#define SQLITE_ECEL_REF 0x04 /* Use ExprList.u.x.iOrderByCol */ SQLITE_PRIVATE void sqlite3ExprIfTrue(Parse*, Expr*, int, int); SQLITE_PRIVATE void sqlite3ExprIfFalse(Parse*, Expr*, int, int); SQLITE_PRIVATE void sqlite3ExprIfFalseDup(Parse*, Expr*, int, int); @@ -13358,8 +13995,9 @@ SQLITE_PRIVATE int sqlite3ExprIsInteger(Expr*, int*); SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr*); SQLITE_PRIVATE int sqlite3ExprNeedsNoAffinityChange(const Expr*, char); SQLITE_PRIVATE int sqlite3IsRowid(const char*); -SQLITE_PRIVATE void sqlite3GenerateRowDelete(Parse*,Table*,Trigger*,int,int,int,i16,u8,u8,u8); -SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete(Parse*, Table*, int, int, int*); +SQLITE_PRIVATE void sqlite3GenerateRowDelete( + Parse*,Table*,Trigger*,int,int,int,i16,u8,u8,u8,int); +SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete(Parse*, Table*, int, int, int*, int); SQLITE_PRIVATE int sqlite3GenerateIndexKey(Parse*, Index*, int, int, int, int*,Index*,int); SQLITE_PRIVATE void sqlite3ResolvePartIdxLabel(Parse*,int); SQLITE_PRIVATE void sqlite3GenerateConstraintChecks(Parse*,Table*,int*,int,int,int,int, @@ -13417,6 +14055,7 @@ SQLITE_PRIVATE void sqlite3DeleteTrigger(sqlite3*, Trigger*); SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTrigger(sqlite3*,int,const char*); SQLITE_PRIVATE u32 sqlite3TriggerColmask(Parse*,Trigger*,ExprList*,int,int,Table*,int); # define sqlite3ParseToplevel(p) ((p)->pToplevel ? (p)->pToplevel : (p)) +# define sqlite3IsToplevel(p) ((p)->pToplevel==0) #else # define sqlite3TriggersExist(B,C,D,E,F) 0 # define sqlite3DeleteTrigger(A,B) @@ -13426,6 +14065,7 @@ SQLITE_PRIVATE u32 sqlite3TriggerColmask(Parse*,Trigger*,ExprList*,int,int,Tab # define sqlite3CodeRowTriggerDirect(A,B,C,D,E,F) # define sqlite3TriggerList(X, Y) 0 # define sqlite3ParseToplevel(p) p +# define sqlite3IsToplevel(p) 1 # define sqlite3TriggerColmask(A,B,C,D,E,F,G) 0 #endif @@ -13489,7 +14129,7 @@ SQLITE_PRIVATE int sqlite3VarintLen(u64 v); #define putVarint sqlite3PutVarint -SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(Vdbe *, Index *); +SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(sqlite3*, Index*); SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe*, Table*, int); SQLITE_PRIVATE char sqlite3CompareAffinity(Expr *pExpr, char aff2); SQLITE_PRIVATE int sqlite3IndexAffinityOk(Expr *pExpr, char idx_affinity); @@ -13561,6 +14201,7 @@ SQLITE_PRIVATE void sqlite3SelectPrep(Parse*, Select*, NameContext*); SQLITE_PRIVATE void sqlite3SelectWrongNumTermsError(Parse *pParse, Select *p); SQLITE_PRIVATE int sqlite3MatchSpanName(const char*, const char*, const char*, const char*); SQLITE_PRIVATE int sqlite3ResolveExprNames(NameContext*, Expr*); +SQLITE_PRIVATE int sqlite3ResolveExprListNames(NameContext*, ExprList*); SQLITE_PRIVATE void sqlite3ResolveSelectNames(Parse*, Select*, NameContext*); SQLITE_PRIVATE void sqlite3ResolveSelfReference(Parse*,Table*,int,Expr*,ExprList*); SQLITE_PRIVATE int sqlite3ResolveOrderGroupBy(Parse*, Select*, ExprList*, const char*); @@ -13669,6 +14310,8 @@ SQLITE_PRIVATE void sqlite3VtabImportErrmsg(Vdbe*, sqlite3_vtab*); SQLITE_PRIVATE VTable *sqlite3GetVTable(sqlite3*, Table*); # define sqlite3VtabInSync(db) ((db)->nVTrans>0 && (db)->aVTrans==0) #endif +SQLITE_PRIVATE int sqlite3VtabEponymousTableInit(Parse*,Module*); +SQLITE_PRIVATE void sqlite3VtabEponymousTableClear(sqlite3*,Module*); SQLITE_PRIVATE void sqlite3VtabMakeWritable(Parse*,Table*); SQLITE_PRIVATE void sqlite3VtabBeginParse(Parse*, Token*, Token*, Token*, int); SQLITE_PRIVATE void sqlite3VtabFinishParse(Parse*, Token*); @@ -14242,12 +14885,18 @@ static const char * const azCompileOpt[] = { #if SQLITE_ENABLE_FTS4 "ENABLE_FTS4", #endif +#if SQLITE_ENABLE_FTS5 + "ENABLE_FTS5", +#endif #if SQLITE_ENABLE_ICU "ENABLE_ICU", #endif #if SQLITE_ENABLE_IOTRACE "ENABLE_IOTRACE", #endif +#if SQLITE_ENABLE_JSON1 + "ENABLE_JSON1", +#endif #if SQLITE_ENABLE_LOAD_EXTENSION "ENABLE_LOAD_EXTENSION", #endif @@ -14772,6 +15421,7 @@ struct Mem { } u; u16 flags; /* Some combination of MEM_Null, MEM_Str, MEM_Dyn, etc. */ u8 enc; /* SQLITE_UTF8, SQLITE_UTF16BE, SQLITE_UTF16LE */ + u8 eSubtype; /* Subtype for this value */ int n; /* Number of characters in string value, excluding '\0' */ char *z; /* String or BLOB value */ /* ShallowCopy only needs to copy the information above */ @@ -16548,14 +17198,14 @@ static void currentTimeFunc( SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void){ static SQLITE_WSD FuncDef aDateTimeFuncs[] = { #ifndef SQLITE_OMIT_DATETIME_FUNCS - FUNCTION(julianday, -1, 0, 0, juliandayFunc ), - FUNCTION(date, -1, 0, 0, dateFunc ), - FUNCTION(time, -1, 0, 0, timeFunc ), - FUNCTION(datetime, -1, 0, 0, datetimeFunc ), - FUNCTION(strftime, -1, 0, 0, strftimeFunc ), - FUNCTION(current_time, 0, 0, 0, ctimeFunc ), - FUNCTION(current_timestamp, 0, 0, 0, ctimestampFunc), - FUNCTION(current_date, 0, 0, 0, cdateFunc ), + DFUNCTION(julianday, -1, 0, 0, juliandayFunc ), + DFUNCTION(date, -1, 0, 0, dateFunc ), + DFUNCTION(time, -1, 0, 0, timeFunc ), + DFUNCTION(datetime, -1, 0, 0, datetimeFunc ), + DFUNCTION(strftime, -1, 0, 0, strftimeFunc ), + DFUNCTION(current_time, 0, 0, 0, ctimeFunc ), + DFUNCTION(current_timestamp, 0, 0, 0, ctimestampFunc), + DFUNCTION(current_date, 0, 0, 0, cdateFunc ), #else STR_FUNCTION(current_time, 0, "%H:%M:%S", 0, currentTimeFunc), STR_FUNCTION(current_date, 0, "%Y-%m-%d", 0, currentTimeFunc), @@ -19244,7 +19894,7 @@ SQLITE_PRIVATE const sqlite3_mem_methods *sqlite3MemGetMemsys5(void){ ** allocate a mutex while the system is uninitialized. */ static SQLITE_WSD int mutexIsInit = 0; -#endif /* SQLITE_DEBUG */ +#endif /* SQLITE_DEBUG && !defined(SQLITE_MUTEX_OMIT) */ #ifndef SQLITE_MUTEX_OMIT @@ -19275,8 +19925,10 @@ SQLITE_PRIVATE int sqlite3MutexInit(void){ pTo->xMutexLeave = pFrom->xMutexLeave; pTo->xMutexHeld = pFrom->xMutexHeld; pTo->xMutexNotheld = pFrom->xMutexNotheld; + sqlite3MemoryBarrier(); pTo->xMutexAlloc = pFrom->xMutexAlloc; } + assert( sqlite3GlobalConfig.mutex.xMutexInit ); rc = sqlite3GlobalConfig.mutex.xMutexInit(); #ifdef SQLITE_DEBUG @@ -19311,6 +19963,7 @@ SQLITE_API sqlite3_mutex *SQLITE_STDCALL sqlite3_mutex_alloc(int id){ if( id<=SQLITE_MUTEX_RECURSIVE && sqlite3_initialize() ) return 0; if( id>SQLITE_MUTEX_RECURSIVE && sqlite3MutexInit() ) return 0; #endif + assert( sqlite3GlobalConfig.mutex.xMutexAlloc ); return sqlite3GlobalConfig.mutex.xMutexAlloc(id); } @@ -19319,6 +19972,7 @@ SQLITE_PRIVATE sqlite3_mutex *sqlite3MutexAlloc(int id){ return 0; } assert( GLOBAL(int, mutexIsInit) ); + assert( sqlite3GlobalConfig.mutex.xMutexAlloc ); return sqlite3GlobalConfig.mutex.xMutexAlloc(id); } @@ -19327,6 +19981,7 @@ SQLITE_PRIVATE sqlite3_mutex *sqlite3MutexAlloc(int id){ */ SQLITE_API void SQLITE_STDCALL sqlite3_mutex_free(sqlite3_mutex *p){ if( p ){ + assert( sqlite3GlobalConfig.mutex.xMutexFree ); sqlite3GlobalConfig.mutex.xMutexFree(p); } } @@ -19337,6 +19992,7 @@ SQLITE_API void SQLITE_STDCALL sqlite3_mutex_free(sqlite3_mutex *p){ */ SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *p){ if( p ){ + assert( sqlite3GlobalConfig.mutex.xMutexEnter ); sqlite3GlobalConfig.mutex.xMutexEnter(p); } } @@ -19348,6 +20004,7 @@ SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *p){ SQLITE_API int SQLITE_STDCALL sqlite3_mutex_try(sqlite3_mutex *p){ int rc = SQLITE_OK; if( p ){ + assert( sqlite3GlobalConfig.mutex.xMutexTry ); return sqlite3GlobalConfig.mutex.xMutexTry(p); } return rc; @@ -19361,6 +20018,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_mutex_try(sqlite3_mutex *p){ */ SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *p){ if( p ){ + assert( sqlite3GlobalConfig.mutex.xMutexLeave ); sqlite3GlobalConfig.mutex.xMutexLeave(p); } } @@ -19371,9 +20029,11 @@ SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *p){ ** intended for use inside assert() statements. */ SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *p){ + assert( p==0 || sqlite3GlobalConfig.mutex.xMutexHeld ); return p==0 || sqlite3GlobalConfig.mutex.xMutexHeld(p); } SQLITE_API int SQLITE_STDCALL sqlite3_mutex_notheld(sqlite3_mutex *p){ + assert( p==0 || sqlite3GlobalConfig.mutex.xMutexNotheld ); return p==0 || sqlite3GlobalConfig.mutex.xMutexNotheld(p); } #endif @@ -19682,6 +20342,19 @@ static int pthreadMutexNotheld(sqlite3_mutex *p){ } #endif +/* +** Try to provide a memory barrier operation, needed for initialization +** and also for the implementation of xShmBarrier in the VFS in cases +** where SQLite is compiled without mutexes. +*/ +SQLITE_PRIVATE void sqlite3MemoryBarrier(void){ +#if defined(SQLITE_MEMORY_BARRIER) + SQLITE_MEMORY_BARRIER; +#elif defined(__GNUC__) && GCC_VERSION>=4001000 + __sync_synchronize(); +#endif +} + /* ** Initialize and deinitialize the mutex subsystem. */ @@ -20344,6 +21017,24 @@ static int winMutexNotheld(sqlite3_mutex *p){ } #endif +/* +** Try to provide a memory barrier operation, needed for initialization +** and also for the xShmBarrier method of the VFS in cases when SQLite is +** compiled without mutexes (SQLITE_THREADSAFE=0). +*/ +SQLITE_PRIVATE void sqlite3MemoryBarrier(void){ +#if defined(SQLITE_MEMORY_BARRIER) + SQLITE_MEMORY_BARRIER; +#elif defined(__GNUC__) + __sync_synchronize(); +#elif !defined(SQLITE_DISABLE_INTRINSIC) && \ + defined(_MSC_VER) && _MSC_VER>=1300 + _ReadWriteBarrier(); +#elif defined(MemoryBarrier) + MemoryBarrier(); +#endif +} + /* ** Initialize and deinitialize the mutex subsystem. */ @@ -20697,16 +21388,7 @@ typedef struct ScratchFreeslot { */ static SQLITE_WSD struct Mem0Global { sqlite3_mutex *mutex; /* Mutex to serialize access */ - - /* - ** The alarm callback and its arguments. The mem0.mutex lock will - ** be held while the callback is running. Recursive calls into - ** the memory subsystem are allowed, but no new callbacks will be - ** issued. - */ - sqlite3_int64 alarmThreshold; - void (*alarmCallback)(void*, sqlite3_int64,int); - void *alarmArg; + sqlite3_int64 alarmThreshold; /* The soft heap limit */ /* ** Pointers to the end of sqlite3GlobalConfig.pScratch memory @@ -20723,7 +21405,7 @@ static SQLITE_WSD struct Mem0Global { ** sqlite3_soft_heap_limit() setting. */ int nearlyFull; -} mem0 = { 0, 0, 0, 0, 0, 0, 0, 0 }; +} mem0 = { 0, 0, 0, 0, 0, 0 }; #define mem0 GLOBAL(struct Mem0Global, mem0) @@ -20734,50 +21416,21 @@ SQLITE_PRIVATE sqlite3_mutex *sqlite3MallocMutex(void){ return mem0.mutex; } -/* -** This routine runs when the memory allocator sees that the -** total memory allocation is about to exceed the soft heap -** limit. -*/ -static void softHeapLimitEnforcer( - void *NotUsed, - sqlite3_int64 NotUsed2, - int allocSize -){ - UNUSED_PARAMETER2(NotUsed, NotUsed2); - sqlite3_release_memory(allocSize); -} - -/* -** Change the alarm callback -*/ -static int sqlite3MemoryAlarm( - void(*xCallback)(void *pArg, sqlite3_int64 used,int N), - void *pArg, - sqlite3_int64 iThreshold -){ - sqlite3_int64 nUsed; - sqlite3_mutex_enter(mem0.mutex); - mem0.alarmCallback = xCallback; - mem0.alarmArg = pArg; - mem0.alarmThreshold = iThreshold; - nUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED); - mem0.nearlyFull = (iThreshold>0 && iThreshold<=nUsed); - sqlite3_mutex_leave(mem0.mutex); - return SQLITE_OK; -} - #ifndef SQLITE_OMIT_DEPRECATED /* -** Deprecated external interface. Internal/core SQLite code -** should call sqlite3MemoryAlarm. +** Deprecated external interface. It used to set an alarm callback +** that was invoked when memory usage grew too large. Now it is a +** no-op. */ SQLITE_API int SQLITE_STDCALL sqlite3_memory_alarm( void(*xCallback)(void *pArg, sqlite3_int64 used,int N), void *pArg, sqlite3_int64 iThreshold ){ - return sqlite3MemoryAlarm(xCallback, pArg, iThreshold); + (void)xCallback; + (void)pArg; + (void)iThreshold; + return SQLITE_OK; } #endif @@ -20788,19 +21441,21 @@ SQLITE_API int SQLITE_STDCALL sqlite3_memory_alarm( SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_soft_heap_limit64(sqlite3_int64 n){ sqlite3_int64 priorLimit; sqlite3_int64 excess; + sqlite3_int64 nUsed; #ifndef SQLITE_OMIT_AUTOINIT int rc = sqlite3_initialize(); if( rc ) return -1; #endif sqlite3_mutex_enter(mem0.mutex); priorLimit = mem0.alarmThreshold; - sqlite3_mutex_leave(mem0.mutex); - if( n<0 ) return priorLimit; - if( n>0 ){ - sqlite3MemoryAlarm(softHeapLimitEnforcer, 0, n); - }else{ - sqlite3MemoryAlarm(0, 0, 0); + if( n<0 ){ + sqlite3_mutex_leave(mem0.mutex); + return priorLimit; } + mem0.alarmThreshold = n; + nUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED); + mem0.nearlyFull = (n>0 && n<=nUsed); + sqlite3_mutex_leave(mem0.mutex); excess = sqlite3_memory_used() - n; if( excess>0 ) sqlite3_release_memory((int)(excess & 0x7fffffff)); return priorLimit; @@ -20897,19 +21552,10 @@ SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_memory_highwater(int resetFlag){ ** Trigger the alarm */ static void sqlite3MallocAlarm(int nByte){ - void (*xCallback)(void*,sqlite3_int64,int); - sqlite3_int64 nowUsed; - void *pArg; - if( mem0.alarmCallback==0 ) return; - xCallback = mem0.alarmCallback; - nowUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED); - pArg = mem0.alarmArg; - mem0.alarmCallback = 0; + if( mem0.alarmThreshold<=0 ) return; sqlite3_mutex_leave(mem0.mutex); - xCallback(pArg, nowUsed, nByte); + sqlite3_release_memory(nByte); sqlite3_mutex_enter(mem0.mutex); - mem0.alarmCallback = xCallback; - mem0.alarmArg = pArg; } /* @@ -20922,7 +21568,7 @@ static int mallocWithAlarm(int n, void **pp){ assert( sqlite3_mutex_held(mem0.mutex) ); nFull = sqlite3GlobalConfig.m.xRoundup(n); sqlite3StatusSet(SQLITE_STATUS_MALLOC_SIZE, n); - if( mem0.alarmCallback!=0 ){ + if( mem0.alarmThreshold>0 ){ sqlite3_int64 nUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED); if( nUsed >= mem0.alarmThreshold - nFull ){ mem0.nearlyFull = 1; @@ -20933,7 +21579,7 @@ static int mallocWithAlarm(int n, void **pp){ } p = sqlite3GlobalConfig.m.xMalloc(nFull); #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT - if( p==0 && mem0.alarmCallback ){ + if( p==0 && mem0.alarmThreshold>0 ){ sqlite3MallocAlarm(nFull); p = sqlite3GlobalConfig.m.xMalloc(nFull); } @@ -21108,19 +21754,20 @@ SQLITE_PRIVATE int sqlite3MallocSize(void *p){ return sqlite3GlobalConfig.m.xSize(p); } SQLITE_PRIVATE int sqlite3DbMallocSize(sqlite3 *db, void *p){ - if( db==0 ){ - assert( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) ); - assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) ); - return sqlite3MallocSize(p); - }else{ - assert( sqlite3_mutex_held(db->mutex) ); - if( isLookaside(db, p) ){ - return db->lookaside.sz; + if( db==0 || !isLookaside(db,p) ){ +#if SQLITE_DEBUG + if( db==0 ){ + assert( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) ); + assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) ); }else{ assert( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); assert( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); - return sqlite3GlobalConfig.m.xSize(p); } +#endif + return sqlite3GlobalConfig.m.xSize(p); + }else{ + assert( sqlite3_mutex_held(db->mutex) ); + return db->lookaside.sz; } } SQLITE_API sqlite3_uint64 SQLITE_STDCALL sqlite3_msize(void *p){ @@ -21221,7 +21868,7 @@ SQLITE_PRIVATE void *sqlite3Realloc(void *pOld, u64 nBytes){ sqlite3MallocAlarm(nDiff); } pNew = sqlite3GlobalConfig.m.xRealloc(pOld, nNew); - if( pNew==0 && mem0.alarmCallback ){ + if( pNew==0 && mem0.alarmThreshold>0 ){ sqlite3MallocAlarm((int)nBytes); pNew = sqlite3GlobalConfig.m.xRealloc(pOld, nNew); } @@ -21935,21 +22582,16 @@ SQLITE_PRIVATE void sqlite3VXPrintf( if( realvalue>0.0 ){ LONGDOUBLE_TYPE scale = 1.0; while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;} - while( realvalue>=1e64*scale && exp<=350 ){ scale *= 1e64; exp+=64; } - while( realvalue>=1e8*scale && exp<=350 ){ scale *= 1e8; exp+=8; } + while( realvalue>=1e10*scale && exp<=350 ){ scale *= 1e10; exp+=10; } while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; } realvalue /= scale; while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; } while( realvalue<1.0 ){ realvalue *= 10.0; exp--; } if( exp>350 ){ - if( prefix=='-' ){ - bufpt = "-Inf"; - }else if( prefix=='+' ){ - bufpt = "+Inf"; - }else{ - bufpt = "Inf"; - } - length = sqlite3Strlen30(bufpt); + bufpt = buf; + buf[0] = prefix; + memcpy(buf+(prefix!=0),"Inf",4); + length = 3+(prefix!=0); break; } } @@ -22098,12 +22740,13 @@ SQLITE_PRIVATE void sqlite3VXPrintf( case etDYNSTRING: if( bArgList ){ bufpt = getTextArg(pArgList); + xtype = etSTRING; }else{ bufpt = va_arg(ap,char*); } if( bufpt==0 ){ bufpt = ""; - }else if( xtype==etDYNSTRING && !bArgList ){ + }else if( xtype==etDYNSTRING ){ zExtra = bufpt; } if( precision>=0 ){ @@ -22112,9 +22755,9 @@ SQLITE_PRIVATE void sqlite3VXPrintf( length = sqlite3Strlen30(bufpt); } break; - case etSQLESCAPE: - case etSQLESCAPE2: - case etSQLESCAPE3: { + case etSQLESCAPE: /* Escape ' characters */ + case etSQLESCAPE2: /* Escape ' and enclose in '...' */ + case etSQLESCAPE3: { /* Escape " characters */ int i, j, k, n, isnull; int needQuote; char ch; @@ -22133,7 +22776,7 @@ SQLITE_PRIVATE void sqlite3VXPrintf( if( ch==q ) n++; } needQuote = !isnull && xtype==etSQLESCAPE2; - n += i + 1 + needQuote*2; + n += i + 3; if( n>etBUFSIZE ){ bufpt = zExtra = sqlite3Malloc( n ); if( bufpt==0 ){ @@ -22529,7 +23172,8 @@ SQLITE_PRIVATE void sqlite3DebugPrintf(const char *zFormat, ...){ /* -** variable-argument wrapper around sqlite3VXPrintf(). +** variable-argument wrapper around sqlite3VXPrintf(). The bFlags argument +** can contain the bit SQLITE_PRINTF_INTERNAL enable internal formats. */ SQLITE_PRIVATE void sqlite3XPrintf(StrAccum *p, u32 bFlags, const char *zFormat, ...){ va_list ap; @@ -22627,90 +23271,100 @@ static void sqlite3TreeViewItem(TreeView *p, const char *zLabel,u8 moreFollows){ */ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 moreToFollow){ int n = 0; + int cnt = 0; pView = sqlite3TreeViewPush(pView, moreToFollow); - sqlite3TreeViewLine(pView, "SELECT%s%s (0x%p) selFlags=0x%x", - ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""), - ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""), p, p->selFlags - ); - if( p->pSrc && p->pSrc->nSrc ) n++; - if( p->pWhere ) n++; - if( p->pGroupBy ) n++; - if( p->pHaving ) n++; - if( p->pOrderBy ) n++; - if( p->pLimit ) n++; - if( p->pOffset ) n++; - if( p->pPrior ) n++; - sqlite3TreeViewExprList(pView, p->pEList, (n--)>0, "result-set"); - if( p->pSrc && p->pSrc->nSrc ){ - int i; - pView = sqlite3TreeViewPush(pView, (n--)>0); - sqlite3TreeViewLine(pView, "FROM"); - for(i=0; ipSrc->nSrc; i++){ - struct SrcList_item *pItem = &p->pSrc->a[i]; - StrAccum x; - char zLine[100]; - sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); - sqlite3XPrintf(&x, 0, "{%d,*}", pItem->iCursor); - if( pItem->zDatabase ){ - sqlite3XPrintf(&x, 0, " %s.%s", pItem->zDatabase, pItem->zName); - }else if( pItem->zName ){ - sqlite3XPrintf(&x, 0, " %s", pItem->zName); - } - if( pItem->pTab ){ - sqlite3XPrintf(&x, 0, " tabname=%Q", pItem->pTab->zName); - } - if( pItem->zAlias ){ - sqlite3XPrintf(&x, 0, " (AS %s)", pItem->zAlias); - } - if( pItem->jointype & JT_LEFT ){ - sqlite3XPrintf(&x, 0, " LEFT-JOIN"); - } - sqlite3StrAccumFinish(&x); - sqlite3TreeViewItem(pView, zLine, ipSrc->nSrc-1); - if( pItem->pSelect ){ - sqlite3TreeViewSelect(pView, pItem->pSelect, 0); + do{ + sqlite3TreeViewLine(pView, "SELECT%s%s (0x%p) selFlags=0x%x", + ((p->selFlags & SF_Distinct) ? " DISTINCT" : ""), + ((p->selFlags & SF_Aggregate) ? " agg_flag" : ""), p, p->selFlags + ); + if( cnt++ ) sqlite3TreeViewPop(pView); + if( p->pPrior ){ + n = 1000; + }else{ + n = 0; + if( p->pSrc && p->pSrc->nSrc ) n++; + if( p->pWhere ) n++; + if( p->pGroupBy ) n++; + if( p->pHaving ) n++; + if( p->pOrderBy ) n++; + if( p->pLimit ) n++; + if( p->pOffset ) n++; + } + sqlite3TreeViewExprList(pView, p->pEList, (n--)>0, "result-set"); + if( p->pSrc && p->pSrc->nSrc ){ + int i; + pView = sqlite3TreeViewPush(pView, (n--)>0); + sqlite3TreeViewLine(pView, "FROM"); + for(i=0; ipSrc->nSrc; i++){ + struct SrcList_item *pItem = &p->pSrc->a[i]; + StrAccum x; + char zLine[100]; + sqlite3StrAccumInit(&x, 0, zLine, sizeof(zLine), 0); + sqlite3XPrintf(&x, 0, "{%d,*}", pItem->iCursor); + if( pItem->zDatabase ){ + sqlite3XPrintf(&x, 0, " %s.%s", pItem->zDatabase, pItem->zName); + }else if( pItem->zName ){ + sqlite3XPrintf(&x, 0, " %s", pItem->zName); + } + if( pItem->pTab ){ + sqlite3XPrintf(&x, 0, " tabname=%Q", pItem->pTab->zName); + } + if( pItem->zAlias ){ + sqlite3XPrintf(&x, 0, " (AS %s)", pItem->zAlias); + } + if( pItem->fg.jointype & JT_LEFT ){ + sqlite3XPrintf(&x, 0, " LEFT-JOIN"); + } + sqlite3StrAccumFinish(&x); + sqlite3TreeViewItem(pView, zLine, ipSrc->nSrc-1); + if( pItem->pSelect ){ + sqlite3TreeViewSelect(pView, pItem->pSelect, 0); + } + if( pItem->fg.isTabFunc ){ + sqlite3TreeViewExprList(pView, pItem->u1.pFuncArg, 0, "func-args:"); + } + sqlite3TreeViewPop(pView); } sqlite3TreeViewPop(pView); } - sqlite3TreeViewPop(pView); - } - if( p->pWhere ){ - sqlite3TreeViewItem(pView, "WHERE", (n--)>0); - sqlite3TreeViewExpr(pView, p->pWhere, 0); - sqlite3TreeViewPop(pView); - } - if( p->pGroupBy ){ - sqlite3TreeViewExprList(pView, p->pGroupBy, (n--)>0, "GROUPBY"); - } - if( p->pHaving ){ - sqlite3TreeViewItem(pView, "HAVING", (n--)>0); - sqlite3TreeViewExpr(pView, p->pHaving, 0); - sqlite3TreeViewPop(pView); - } - if( p->pOrderBy ){ - sqlite3TreeViewExprList(pView, p->pOrderBy, (n--)>0, "ORDERBY"); - } - if( p->pLimit ){ - sqlite3TreeViewItem(pView, "LIMIT", (n--)>0); - sqlite3TreeViewExpr(pView, p->pLimit, 0); - sqlite3TreeViewPop(pView); - } - if( p->pOffset ){ - sqlite3TreeViewItem(pView, "OFFSET", (n--)>0); - sqlite3TreeViewExpr(pView, p->pOffset, 0); - sqlite3TreeViewPop(pView); - } - if( p->pPrior ){ - const char *zOp = "UNION"; - switch( p->op ){ - case TK_ALL: zOp = "UNION ALL"; break; - case TK_INTERSECT: zOp = "INTERSECT"; break; - case TK_EXCEPT: zOp = "EXCEPT"; break; + if( p->pWhere ){ + sqlite3TreeViewItem(pView, "WHERE", (n--)>0); + sqlite3TreeViewExpr(pView, p->pWhere, 0); + sqlite3TreeViewPop(pView); } - sqlite3TreeViewItem(pView, zOp, (n--)>0); - sqlite3TreeViewSelect(pView, p->pPrior, 0); - sqlite3TreeViewPop(pView); - } + if( p->pGroupBy ){ + sqlite3TreeViewExprList(pView, p->pGroupBy, (n--)>0, "GROUPBY"); + } + if( p->pHaving ){ + sqlite3TreeViewItem(pView, "HAVING", (n--)>0); + sqlite3TreeViewExpr(pView, p->pHaving, 0); + sqlite3TreeViewPop(pView); + } + if( p->pOrderBy ){ + sqlite3TreeViewExprList(pView, p->pOrderBy, (n--)>0, "ORDERBY"); + } + if( p->pLimit ){ + sqlite3TreeViewItem(pView, "LIMIT", (n--)>0); + sqlite3TreeViewExpr(pView, p->pLimit, 0); + sqlite3TreeViewPop(pView); + } + if( p->pOffset ){ + sqlite3TreeViewItem(pView, "OFFSET", (n--)>0); + sqlite3TreeViewExpr(pView, p->pOffset, 0); + sqlite3TreeViewPop(pView); + } + if( p->pPrior ){ + const char *zOp = "UNION"; + switch( p->op ){ + case TK_ALL: zOp = "UNION ALL"; break; + case TK_INTERSECT: zOp = "INTERSECT"; break; + case TK_EXCEPT: zOp = "EXCEPT"; break; + } + sqlite3TreeViewItem(pView, zOp, 1); + } + p = p->pPrior; + }while( p!=0 ); sqlite3TreeViewPop(pView); } @@ -22785,11 +23439,6 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m sqlite3TreeViewLine(pView,"REGISTER(%d)", pExpr->iTable); break; } - case TK_AS: { - sqlite3TreeViewLine(pView,"AS %Q", pExpr->u.zToken); - sqlite3TreeViewExpr(pView, pExpr->pLeft, 0); - break; - } case TK_ID: { sqlite3TreeViewLine(pView,"ID \"%w\"", pExpr->u.zToken); break; @@ -22964,7 +23613,13 @@ SQLITE_PRIVATE void sqlite3TreeViewExprList( }else{ sqlite3TreeViewLine(pView, "%s", zLabel); for(i=0; inExpr; i++){ + int j = pList->a[i].u.x.iOrderByCol; + if( j ){ + sqlite3TreeViewPush(pView, 0); + sqlite3TreeViewLine(pView, "iOrderByCol=%d", j); + } sqlite3TreeViewExpr(pView, pList->a[i].pExpr, inExpr-1); + if( j ) sqlite3TreeViewPop(pView); } } sqlite3TreeViewPop(pView); @@ -23180,6 +23835,10 @@ SQLITE_PRIVATE int sqlite3ThreadCreate( memset(p, 0, sizeof(*p)); p->xTask = xTask; p->pIn = pIn; + /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a + ** function that returns SQLITE_ERROR when passed the argument 200, that + ** forces worker threads to run sequentially and deterministically + ** for testing purposes. */ if( sqlite3FaultSim(200) ){ rc = 1; }else{ @@ -23264,7 +23923,12 @@ SQLITE_PRIVATE int sqlite3ThreadCreate( *ppThread = 0; p = sqlite3Malloc(sizeof(*p)); if( p==0 ) return SQLITE_NOMEM; - if( sqlite3GlobalConfig.bCoreMutex==0 ){ + /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a + ** function that returns SQLITE_ERROR when passed the argument 200, that + ** forces worker threads to run sequentially and deterministically + ** (via the sqlite3FaultSim() term of the conditional) for testing + ** purposes. */ + if( sqlite3GlobalConfig.bCoreMutex==0 || sqlite3FaultSim(200) ){ memset(p, 0, sizeof(*p)); }else{ p->xTask = xTask; @@ -23292,7 +23956,7 @@ SQLITE_PRIVATE int sqlite3ThreadJoin(SQLiteThread *p, void **ppOut){ assert( ppOut!=0 ); if( NEVER(p==0) ) return SQLITE_NOMEM; if( p->xTask==0 ){ - assert( p->id==GetCurrentThreadId() ); + /* assert( p->id==GetCurrentThreadId() ); */ rc = WAIT_OBJECT_0; assert( p->tid==0 ); }else{ @@ -24979,11 +25643,8 @@ SQLITE_PRIVATE u8 sqlite3GetVarint32(const unsigned char *p, u32 *v){ ** 64-bit integer. */ SQLITE_PRIVATE int sqlite3VarintLen(u64 v){ - int i = 0; - do{ - i++; - v >>= 7; - }while( v!=0 && ALWAYS(i<9) ); + int i; + for(i=1; (v >>= 7)!=0; i++){ assert( i<9 ); } return i; } @@ -24996,11 +25657,13 @@ SQLITE_PRIVATE u32 sqlite3Get4byte(const u8 *p){ u32 x; memcpy(&x,p,4); return x; -#elif SQLITE_BYTEORDER==1234 && defined(__GNUC__) && GCC_VERSION>=4003000 +#elif SQLITE_BYTEORDER==1234 && !defined(SQLITE_DISABLE_INTRINSIC) \ + && defined(__GNUC__) && GCC_VERSION>=4003000 u32 x; memcpy(&x,p,4); return __builtin_bswap32(x); -#elif SQLITE_BYTEORDER==1234 && defined(_MSC_VER) && _MSC_VER>=1300 +#elif SQLITE_BYTEORDER==1234 && !defined(SQLITE_DISABLE_INTRINSIC) \ + && defined(_MSC_VER) && _MSC_VER>=1300 u32 x; memcpy(&x,p,4); return _byteswap_ulong(x); @@ -25729,9 +26392,9 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 135 */ "FkCounter" OpHelp("fkctr[P1]+=P2"), /* 136 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), /* 137 */ "MemMax" OpHelp("r[P1]=max(r[P1],r[P2])"), - /* 138 */ "IfPos" OpHelp("if r[P1]>0 goto P2"), - /* 139 */ "IfNeg" OpHelp("r[P1]+=P3, if r[P1]<0 goto P2"), - /* 140 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]+=P3, goto P2"), + /* 138 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), + /* 139 */ "SetIfNotPos" OpHelp("if r[P1]<=0 then r[P2]=P3"), + /* 140 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]-=P3, goto P2"), /* 141 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), /* 142 */ "JumpZeroIncr" OpHelp("if (r[P1]++)==0 ) goto P2"), /* 143 */ "AggStep0" OpHelp("accum=r[P3] step(r[P2@P5])"), @@ -29105,7 +29768,6 @@ static int seekAndRead(unixFile *id, sqlite3_int64 offset, void *pBuf, int cnt){ TIMER_START; assert( cnt==(cnt&0x1ffff) ); assert( id->h>2 ); - cnt &= 0x1ffff; do{ #if defined(USE_PREAD) got = osPread(id->h, pBuf, cnt, offset); @@ -29322,8 +29984,8 @@ static int unixWrite( } } #endif - - while( amt>0 && (wrote = seekAndWrite(pFile, offset, pBuf, amt))>0 ){ + + while( (wrote = seekAndWrite(pFile, offset, pBuf, amt))0 ){ amt -= wrote; offset += wrote; pBuf = &((char*)pBuf)[wrote]; @@ -29331,7 +29993,7 @@ static int unixWrite( SimulateIOError(( wrote=(-1), amt=1 )); SimulateDiskfullError(( wrote=0, amt=1 )); - if( amt>0 ){ + if( amt>wrote ){ if( wrote<0 && pFile->lastErrno!=ENOSPC ){ /* lastErrno set by seekAndWrite */ return SQLITE_IOERR_WRITE; @@ -30620,7 +31282,8 @@ static void unixShmBarrier( sqlite3_file *fd /* Database file holding the shared memory */ ){ UNUSED_PARAMETER(fd); - unixEnterMutex(); + sqlite3MemoryBarrier(); /* compiler-defined memory barrier */ + unixEnterMutex(); /* Also mutex, for redundancy */ unixLeaveMutex(); } @@ -37575,8 +38238,8 @@ static void winShmBarrier( sqlite3_file *fd /* Database holding the shared memory */ ){ UNUSED_PARAMETER(fd); - /* MemoryBarrier(); // does not work -- do not know why not */ - winShmEnterMutex(); + sqlite3MemoryBarrier(); /* compiler-defined memory barrier */ + winShmEnterMutex(); /* Also mutex, for redundancy */ winShmLeaveMutex(); } @@ -39800,7 +40463,7 @@ bitvec_end: struct PCache { PgHdr *pDirty, *pDirtyTail; /* List of dirty pages in LRU order */ PgHdr *pSynced; /* Last synced page in dirty page list */ - int nRef; /* Number of referenced pages */ + int nRefSum; /* Sum of ref counts over all pages */ int szCache; /* Configured cache size */ int szPage; /* Size of every page in this cache */ int szExtra; /* Size of extra space for each page */ @@ -39965,7 +40628,7 @@ SQLITE_PRIVATE int sqlite3PcacheOpen( ** are no outstanding page references when this function is called. */ SQLITE_PRIVATE int sqlite3PcacheSetPageSize(PCache *pCache, int szPage){ - assert( pCache->nRef==0 && pCache->pDirty==0 ); + assert( pCache->nRefSum==0 && pCache->pDirty==0 ); if( pCache->szPage ){ sqlite3_pcache *pNew; pNew = sqlite3GlobalConfig.pcache2.xCreate( @@ -40132,9 +40795,7 @@ SQLITE_PRIVATE PgHdr *sqlite3PcacheFetchFinish( if( !pPgHdr->pPage ){ return pcacheFetchFinishWithInit(pCache, pgno, pPage); } - if( 0==pPgHdr->nRef ){ - pCache->nRef++; - } + pCache->nRefSum++; pPgHdr->nRef++; return pPgHdr; } @@ -40145,9 +40806,8 @@ SQLITE_PRIVATE PgHdr *sqlite3PcacheFetchFinish( */ SQLITE_PRIVATE void SQLITE_NOINLINE sqlite3PcacheRelease(PgHdr *p){ assert( p->nRef>0 ); - p->nRef--; - if( p->nRef==0 ){ - p->pCache->nRef--; + p->pCache->nRefSum--; + if( (--p->nRef)==0 ){ if( p->flags&PGHDR_CLEAN ){ pcacheUnpin(p); }else if( p->pDirtyPrev!=0 ){ @@ -40163,6 +40823,7 @@ SQLITE_PRIVATE void SQLITE_NOINLINE sqlite3PcacheRelease(PgHdr *p){ SQLITE_PRIVATE void sqlite3PcacheRef(PgHdr *p){ assert(p->nRef>0); p->nRef++; + p->pCache->nRefSum++; } /* @@ -40175,7 +40836,7 @@ SQLITE_PRIVATE void sqlite3PcacheDrop(PgHdr *p){ if( p->flags&PGHDR_DIRTY ){ pcacheManageDirtyList(p, PCACHE_DIRTYLIST_REMOVE); } - p->pCache->nRef--; + p->pCache->nRefSum--; sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 1); } @@ -40271,11 +40932,11 @@ SQLITE_PRIVATE void sqlite3PcacheTruncate(PCache *pCache, Pgno pgno){ sqlite3PcacheMakeClean(p); } } - if( pgno==0 && pCache->nRef ){ + if( pgno==0 && pCache->nRefSum ){ sqlite3_pcache_page *pPage1; pPage1 = sqlite3GlobalConfig.pcache2.xFetch(pCache->pCache,1,0); if( ALWAYS(pPage1) ){ /* Page 1 is always available in cache, because - ** pCache->nRef>0 */ + ** pCache->nRefSum>0 */ memset(pPage1->pBuf, 0, pCache->szPage); pgno = 1; } @@ -40381,10 +41042,13 @@ SQLITE_PRIVATE PgHdr *sqlite3PcacheDirtyList(PCache *pCache){ } /* -** Return the total number of referenced pages held by the cache. +** Return the total number of references to all pages held by the cache. +** +** This is not the total number of pages referenced, but the sum of the +** reference count for all pages. */ SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache *pCache){ - return pCache->nRef; + return pCache->nRefSum; } /* @@ -40519,7 +41183,7 @@ SQLITE_PRIVATE void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHd ** that is allocated when the page cache is created. The size of the local ** bulk allocation can be adjusted using ** -** sqlite3_config(SQLITE_CONFIG_PCACHE, 0, 0, N). +** sqlite3_config(SQLITE_CONFIG_PAGECACHE, 0, 0, N). ** ** If N is positive, then N pages worth of memory are allocated using a single ** sqlite3Malloc() call and that memory is used for the first N pages allocated. @@ -40541,6 +41205,24 @@ typedef struct PgHdr1 PgHdr1; typedef struct PgFreeslot PgFreeslot; typedef struct PGroup PGroup; +/* +** Each cache entry is represented by an instance of the following +** structure. Unless SQLITE_PCACHE_SEPARATE_HEADER is defined, a buffer of +** PgHdr1.pCache->szPage bytes is allocated directly before this structure +** in memory. +*/ +struct PgHdr1 { + sqlite3_pcache_page page; /* Base class. Must be first. pBuf & pExtra */ + unsigned int iKey; /* Key value (page number) */ + u8 isPinned; /* Page in use, not on the LRU list */ + u8 isBulkLocal; /* This page from bulk local storage */ + u8 isAnchor; /* This is the PGroup.lru element */ + PgHdr1 *pNext; /* Next in hash table chain */ + PCache1 *pCache; /* Cache that currently owns this page */ + PgHdr1 *pLruNext; /* Next in LRU list of unpinned pages */ + PgHdr1 *pLruPrev; /* Previous in LRU list of unpinned pages */ +}; + /* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set ** of one or more PCaches that are able to recycle each other's unpinned ** pages when they are under memory pressure. A PGroup is an instance of @@ -40569,7 +41251,7 @@ struct PGroup { unsigned int nMinPage; /* Sum of nMin for purgeable caches */ unsigned int mxPinned; /* nMaxpage + 10 - nMinPage */ unsigned int nCurrentPage; /* Number of purgeable pages allocated */ - PgHdr1 *pLruHead, *pLruTail; /* LRU list of unpinned pages */ + PgHdr1 lru; /* The beginning and end of the LRU list */ }; /* Each page cache is an instance of the following object. Every @@ -40607,23 +41289,6 @@ struct PCache1 { void *pBulk; /* Bulk memory used by pcache-local */ }; -/* -** Each cache entry is represented by an instance of the following -** structure. Unless SQLITE_PCACHE_SEPARATE_HEADER is defined, a buffer of -** PgHdr1.pCache->szPage bytes is allocated directly before this structure -** in memory. -*/ -struct PgHdr1 { - sqlite3_pcache_page page; - unsigned int iKey; /* Key value (page number) */ - u8 isPinned; /* Page in use, not on the LRU list */ - u8 isBulkLocal; /* This page from bulk local storage */ - PgHdr1 *pNext; /* Next in hash table chain */ - PCache1 *pCache; /* Cache that currently owns this page */ - PgHdr1 *pLruNext; /* Next in LRU list of unpinned pages */ - PgHdr1 *pLruPrev; /* Previous in LRU list of unpinned pages */ -}; - /* ** Free slots in the allocator used to divide up the global page cache ** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. @@ -40684,6 +41349,7 @@ static SQLITE_WSD struct PCacheGlobal { /******************************************************************************/ /******** Page Allocation/SQLITE_CONFIG_PCACHE Related Functions **************/ + /* ** This function is called during initialization if a static buffer is ** supplied to use for the page-cache by passing the SQLITE_CONFIG_PAGECACHE @@ -40743,6 +41409,7 @@ static int pcache1InitBulk(PCache1 *pCache){ pX->page.pBuf = zBulk; pX->page.pExtra = &pX[1]; pX->isBulkLocal = 1; + pX->isAnchor = 0; pX->pNext = pCache->pFree; pCache->pFree = pX; zBulk += pCache->szAlloc; @@ -40846,7 +41513,7 @@ static int pcache1MemSize(void *p){ /* ** Allocate a new page object initially associated with cache pCache. */ -static PgHdr1 *pcache1AllocPage(PCache1 *pCache){ +static PgHdr1 *pcache1AllocPage(PCache1 *pCache, int benignMalloc){ PgHdr1 *p = 0; void *pPg; @@ -40864,6 +41531,7 @@ static PgHdr1 *pcache1AllocPage(PCache1 *pCache){ assert( pCache->pGroup==&pcache1.grp ); pcache1LeaveMutex(pCache->pGroup); #endif + if( benignMalloc ){ sqlite3BeginBenignMalloc(); } #ifdef SQLITE_PCACHE_SEPARATE_HEADER pPg = pcache1Alloc(pCache->szPage); p = sqlite3Malloc(sizeof(PgHdr1) + pCache->szExtra); @@ -40876,6 +41544,7 @@ static PgHdr1 *pcache1AllocPage(PCache1 *pCache){ pPg = pcache1Alloc(pCache->szAlloc); p = (PgHdr1 *)&((u8 *)pPg)[pCache->szPage]; #endif + if( benignMalloc ){ sqlite3EndBenignMalloc(); } #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT pcache1EnterMutex(pCache->pGroup); #endif @@ -40883,6 +41552,7 @@ static PgHdr1 *pcache1AllocPage(PCache1 *pCache){ p->page.pBuf = pPg; p->page.pExtra = &p[1]; p->isBulkLocal = 0; + p->isAnchor = 0; } if( pCache->bPurgeable ){ pCache->pGroup->nCurrentPage++; @@ -41009,22 +41679,16 @@ static PgHdr1 *pcache1PinPage(PgHdr1 *pPage){ assert( pPage!=0 ); assert( pPage->isPinned==0 ); pCache = pPage->pCache; - assert( pPage->pLruNext || pPage==pCache->pGroup->pLruTail ); - assert( pPage->pLruPrev || pPage==pCache->pGroup->pLruHead ); + assert( pPage->pLruNext ); + assert( pPage->pLruPrev ); assert( sqlite3_mutex_held(pCache->pGroup->mutex) ); - if( pPage->pLruPrev ){ - pPage->pLruPrev->pLruNext = pPage->pLruNext; - }else{ - pCache->pGroup->pLruHead = pPage->pLruNext; - } - if( pPage->pLruNext ){ - pPage->pLruNext->pLruPrev = pPage->pLruPrev; - }else{ - pCache->pGroup->pLruTail = pPage->pLruPrev; - } + pPage->pLruPrev->pLruNext = pPage->pLruNext; + pPage->pLruNext->pLruPrev = pPage->pLruPrev; pPage->pLruNext = 0; pPage->pLruPrev = 0; pPage->isPinned = 1; + assert( pPage->isAnchor==0 ); + assert( pCache->pGroup->lru.isAnchor==1 ); pCache->nRecyclable--; return pPage; } @@ -41057,9 +41721,11 @@ static void pcache1RemoveFromHash(PgHdr1 *pPage, int freeFlag){ */ static void pcache1EnforceMaxPage(PCache1 *pCache){ PGroup *pGroup = pCache->pGroup; + PgHdr1 *p; assert( sqlite3_mutex_held(pGroup->mutex) ); - while( pGroup->nCurrentPage>pGroup->nMaxPage && pGroup->pLruTail ){ - PgHdr1 *p = pGroup->pLruTail; + while( pGroup->nCurrentPage>pGroup->nMaxPage + && (p=pGroup->lru.pLruPrev)->isAnchor==0 + ){ assert( p->pCache->pGroup==pGroup ); assert( p->isPinned==0 ); pcache1PinPage(p); @@ -41193,6 +41859,10 @@ static sqlite3_pcache *pcache1Create(int szPage, int szExtra, int bPurgeable){ }else{ pGroup = &pcache1.grp; } + if( pGroup->lru.isAnchor==0 ){ + pGroup->lru.isAnchor = 1; + pGroup->lru.pLruPrev = pGroup->lru.pLruNext = &pGroup->lru; + } pCache->pGroup = pGroup; pCache->szPage = szPage; pCache->szExtra = szExtra; @@ -41300,11 +41970,11 @@ static SQLITE_NOINLINE PgHdr1 *pcache1FetchStage2( /* Step 4. Try to recycle a page. */ if( pCache->bPurgeable - && pGroup->pLruTail + && !pGroup->lru.pLruPrev->isAnchor && ((pCache->nPage+1>=pCache->nMax) || pcache1UnderMemoryPressure(pCache)) ){ PCache1 *pOther; - pPage = pGroup->pLruTail; + pPage = pGroup->lru.pLruPrev; assert( pPage->isPinned==0 ); pcache1RemoveFromHash(pPage, 0); pcache1PinPage(pPage); @@ -41321,9 +41991,7 @@ static SQLITE_NOINLINE PgHdr1 *pcache1FetchStage2( ** attempt to allocate a new one. */ if( !pPage ){ - if( createFlag==1 ){ sqlite3BeginBenignMalloc(); } - pPage = pcache1AllocPage(pCache); - if( createFlag==1 ){ sqlite3EndBenignMalloc(); } + pPage = pcache1AllocPage(pCache, createFlag==1); } if( pPage ){ @@ -41415,7 +42083,10 @@ static PgHdr1 *pcache1FetchNoMutex( pPage = pCache->apHash[iKey % pCache->nHash]; while( pPage && pPage->iKey!=iKey ){ pPage = pPage->pNext; } - /* Step 2: Abort if no existing page is found and createFlag is 0 */ + /* Step 2: If the page was found in the hash table, then return it. + ** If the page was not in the hash table and createFlag is 0, abort. + ** Otherwise (page not in hash and createFlag!=0) continue with + ** subsequent steps to try to create the page. */ if( pPage ){ if( !pPage->isPinned ){ return pcache1PinPage(pPage); @@ -41492,21 +42163,16 @@ static void pcache1Unpin( ** part of the PGroup LRU list. */ assert( pPage->pLruPrev==0 && pPage->pLruNext==0 ); - assert( pGroup->pLruHead!=pPage && pGroup->pLruTail!=pPage ); assert( pPage->isPinned==1 ); if( reuseUnlikely || pGroup->nCurrentPage>pGroup->nMaxPage ){ pcache1RemoveFromHash(pPage, 1); }else{ /* Add the page to the PGroup LRU list. */ - if( pGroup->pLruHead ){ - pGroup->pLruHead->pLruPrev = pPage; - pPage->pLruNext = pGroup->pLruHead; - pGroup->pLruHead = pPage; - }else{ - pGroup->pLruTail = pPage; - pGroup->pLruHead = pPage; - } + PgHdr1 **ppFirst = &pGroup->lru.pLruNext; + pPage->pLruPrev = &pGroup->lru; + (pPage->pLruNext = *ppFirst)->pLruPrev = pPage; + *ppFirst = pPage; pCache->nRecyclable++; pPage->isPinned = 0; } @@ -41644,7 +42310,10 @@ SQLITE_PRIVATE int sqlite3PcacheReleaseMemory(int nReq){ if( sqlite3GlobalConfig.nPage==0 ){ PgHdr1 *p; pcache1EnterMutex(&pcache1.grp); - while( (nReq<0 || nFreeisAnchor==0 + ){ nFree += pcache1MemSize(p->page.pBuf); #ifdef SQLITE_PCACHE_SEPARATE_HEADER nFree += sqlite3MemSize(p); @@ -41672,7 +42341,7 @@ SQLITE_PRIVATE void sqlite3PcacheStats( ){ PgHdr1 *p; int nRecyclable = 0; - for(p=pcache1.grp.pLruHead; p; p=p->pLruNext){ + for(p=pcache1.grp.lru.pLruNext; p && !p->isAnchor; p=p->pLruNext){ assert( p->isPinned==0 ); nRecyclable++; } @@ -42986,7 +43655,7 @@ struct Pager { u8 doNotSpill; /* Do not spill the cache when non-zero */ u8 subjInMemory; /* True to use in-memory sub-journals */ u8 bUseFetch; /* True to use xFetch() */ - u8 hasBeenUsed; /* True if any content previously read */ + u8 hasHeldSharedLock; /* True if a shared lock has ever been held */ Pgno dbSize; /* Number of pages in the database */ Pgno dbOrigSize; /* dbSize before the current transaction */ Pgno dbFileSize; /* Number of pages in the database file */ @@ -44455,6 +45124,20 @@ static void pagerReportSize(Pager *pPager){ # define pagerReportSize(X) /* No-op if we do not support a codec */ #endif +#ifdef SQLITE_HAS_CODEC +/* +** Make sure the number of reserved bits is the same in the destination +** pager as it is in the source. This comes up when a VACUUM changes the +** number of reserved bits to the "optimal" amount. +*/ +SQLITE_PRIVATE void sqlite3PagerAlignReserve(Pager *pDest, Pager *pSrc){ + if( pDest->nReserve!=pSrc->nReserve ){ + pDest->nReserve = pSrc->nReserve; + pagerReportSize(pDest); + } +} +#endif + /* ** Read a single page from either the journal file (if isMainJrnl==1) or ** from the sub-journal (if isMainJrnl==0) and playback that page. @@ -47436,10 +48119,10 @@ SQLITE_PRIVATE int sqlite3PagerSharedLock(Pager *pPager){ ); } - if( !pPager->tempFile && pPager->hasBeenUsed ){ + if( !pPager->tempFile && pPager->hasHeldSharedLock ){ /* The shared-lock has just been acquired then check to ** see if the database has been modified. If the database has changed, - ** flush the cache. The pPager->hasBeenUsed flag prevents this from + ** flush the cache. The hasHeldSharedLock flag prevents this from ** occurring on the very first access to a file, in order to save a ** single unnecessary sqlite3OsRead() call at the start-up. ** @@ -47509,6 +48192,7 @@ SQLITE_PRIVATE int sqlite3PagerSharedLock(Pager *pPager){ assert( pPager->eState==PAGER_OPEN ); }else{ pPager->eState = PAGER_READER; + pPager->hasHeldSharedLock = 1; } return rc; } @@ -47592,21 +48276,25 @@ SQLITE_PRIVATE int sqlite3PagerAcquire( ** page 1 if there is no write-transaction open or the ACQUIRE_READONLY ** flag was specified by the caller. And so long as the db is not a ** temporary or in-memory database. */ - const int bMmapOk = (pgno!=1 && USEFETCH(pPager) + const int bMmapOk = (pgno>1 && USEFETCH(pPager) && (pPager->eState==PAGER_READER || (flags & PAGER_GET_READONLY)) #ifdef SQLITE_HAS_CODEC && pPager->xCodec==0 #endif ); + /* Optimization note: Adding the "pgno<=1" term before "pgno==0" here + ** allows the compiler optimizer to reuse the results of the "pgno>1" + ** test in the previous statement, and avoid testing pgno==0 in the + ** common case where pgno is large. */ + if( pgno<=1 && pgno==0 ){ + return SQLITE_CORRUPT_BKPT; + } assert( pPager->eState>=PAGER_READER ); assert( assert_pager_state(pPager) ); assert( noContent==0 || bMmapOk==0 ); - if( pgno==0 ){ - return SQLITE_CORRUPT_BKPT; - } - pPager->hasBeenUsed = 1; + assert( pPager->hasHeldSharedLock==1 ); /* If the pager is in the error state, return an error immediately. ** Otherwise, request the page from the PCache layer. */ @@ -47761,7 +48449,7 @@ SQLITE_PRIVATE DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno){ assert( pgno!=0 ); assert( pPager->pPCache!=0 ); pPage = sqlite3PcacheFetch(pPager->pPCache, pgno, 0); - assert( pPage==0 || pPager->hasBeenUsed ); + assert( pPage==0 || pPager->hasHeldSharedLock ); if( pPage==0 ) return 0; return sqlite3PcacheFetchFinish(pPager->pPCache, pgno, pPage); } @@ -48728,7 +49416,7 @@ SQLITE_PRIVATE u8 sqlite3PagerIsreadonly(Pager *pPager){ #ifdef SQLITE_DEBUG /* -** Return the number of references to the pager. +** Return the sum of the reference counts for all pages held by pPager. */ SQLITE_PRIVATE int sqlite3PagerRefcount(Pager *pPager){ return sqlite3PcacheRefCount(pPager->pPCache); @@ -50040,6 +50728,7 @@ struct Wal { u8 syncHeader; /* Fsync the WAL header if true */ u8 padToSectorBoundary; /* Pad transactions out to the next sector */ WalIndexHdr hdr; /* Wal-index header for current transaction */ + u32 minFrame; /* Ignore wal frames before this one */ const char *zWalName; /* Name of WAL file */ u32 nCkpt; /* Checkpoint sequence counter in the wal-header */ #ifdef SQLITE_DEBUG @@ -51908,12 +52597,27 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ ** pWal->hdr.mxFrame risks reading a corrupted snapshot. So, retry ** instead. ** - ** This does not guarantee that the copy of the wal-index header is up to - ** date before proceeding. That would not be possible without somehow - ** blocking writers. It only guarantees that a dangerous checkpoint or - ** log-wrap (either of which would require an exclusive lock on - ** WAL_READ_LOCK(mxI)) has not occurred since the snapshot was valid. + ** Before checking that the live wal-index header has not changed + ** since it was read, set Wal.minFrame to the first frame in the wal + ** file that has not yet been checkpointed. This client will not need + ** to read any frames earlier than minFrame from the wal file - they + ** can be safely read directly from the database file. + ** + ** Because a ShmBarrier() call is made between taking the copy of + ** nBackfill and checking that the wal-header in shared-memory still + ** matches the one cached in pWal->hdr, it is guaranteed that the + ** checkpointer that set nBackfill was not working with a wal-index + ** header newer than that cached in pWal->hdr. If it were, that could + ** cause a problem. The checkpointer could omit to checkpoint + ** a version of page X that lies before pWal->minFrame (call that version + ** A) on the basis that there is a newer version (version B) of the same + ** page later in the wal file. But if version B happens to like past + ** frame pWal->hdr.mxFrame - then the client would incorrectly assume + ** that it can read version A from the database file. However, since + ** we can guarantee that the checkpointer that set nBackfill could not + ** see any pages past pWal->hdr.mxFrame, this problem does not come up. */ + pWal->minFrame = pInfo->nBackfill+1; walShmBarrier(pWal); if( pInfo->aReadMark[mxI]!=mxReadMark || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) @@ -51984,6 +52688,7 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( u32 iRead = 0; /* If !=0, WAL frame to return data from */ u32 iLast = pWal->hdr.mxFrame; /* Last page in WAL for this reader */ int iHash; /* Used to loop through N hash tables */ + int iMinHash; /* This routine is only be called from within a read transaction. */ assert( pWal->readLock>=0 || pWal->lockError ); @@ -52024,7 +52729,8 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( ** This condition filters out entries that were added to the hash ** table after the current read-transaction had started. */ - for(iHash=walFramePage(iLast); iHash>=0 && iRead==0; iHash--){ + iMinHash = walFramePage(pWal->minFrame); + for(iHash=walFramePage(iLast); iHash>=iMinHash && iRead==0; iHash--){ volatile ht_slot *aHash; /* Pointer to hash table */ volatile u32 *aPgno; /* Pointer to array of page numbers */ u32 iZero; /* Frame number corresponding to aPgno[0] */ @@ -52039,7 +52745,7 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( nCollide = HASHTABLE_NSLOT; for(iKey=walHash(pgno); aHash[iKey]; iKey=walNextHash(iKey)){ u32 iFrame = aHash[iKey] + iZero; - if( iFrame<=iLast && aPgno[aHash[iKey]]==pgno ){ + if( iFrame<=iLast && iFrame>=pWal->minFrame && aPgno[aHash[iKey]]==pgno ){ assert( iFrame>iRead || CORRUPT_DB ); iRead = iFrame; } @@ -52056,7 +52762,8 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( { u32 iRead2 = 0; u32 iTest; - for(iTest=iLast; iTest>0; iTest--){ + assert( pWal->minFrame>0 ); + for(iTest=iLast; iTest>=pWal->minFrame; iTest--){ if( walFramePgno(pWal, iTest)==pgno ){ iRead2 = iTest; break; @@ -53496,9 +54203,11 @@ struct IntegrityCk { */ #if SQLITE_BYTEORDER==4321 # define get2byteAligned(x) (*(u16*)(x)) -#elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4008000 +#elif SQLITE_BYTEORDER==1234 && !defined(SQLITE_DISABLE_INTRINSIC) \ + && GCC_VERSION>=4008000 # define get2byteAligned(x) __builtin_bswap16(*(u16*)(x)) -#elif SQLITE_BYTEORDER==1234 && defined(_MSC_VER) && _MSC_VER>=1300 +#elif SQLITE_BYTEORDER==1234 && !defined(SQLITE_DISABLE_INTRINSIC) \ + && defined(_MSC_VER) && _MSC_VER>=1300 # define get2byteAligned(x) _byteswap_ushort(*(u16*)(x)) #else # define get2byteAligned(x) ((x)[0]<<8 | (x)[1]) @@ -54385,6 +55094,49 @@ static void btreeReleaseAllCursorPages(BtCursor *pCur){ pCur->iPage = -1; } +/* +** The cursor passed as the only argument must point to a valid entry +** when this function is called (i.e. have eState==CURSOR_VALID). This +** function saves the current cursor key in variables pCur->nKey and +** pCur->pKey. SQLITE_OK is returned if successful or an SQLite error +** code otherwise. +** +** If the cursor is open on an intkey table, then the integer key +** (the rowid) is stored in pCur->nKey and pCur->pKey is left set to +** NULL. If the cursor is open on a non-intkey table, then pCur->pKey is +** set to point to a malloced buffer pCur->nKey bytes in size containing +** the key. +*/ +static int saveCursorKey(BtCursor *pCur){ + int rc; + assert( CURSOR_VALID==pCur->eState ); + assert( 0==pCur->pKey ); + assert( cursorHoldsMutex(pCur) ); + + rc = sqlite3BtreeKeySize(pCur, &pCur->nKey); + assert( rc==SQLITE_OK ); /* KeySize() cannot fail */ + + /* If this is an intKey table, then the above call to BtreeKeySize() + ** stores the integer key in pCur->nKey. In this case this value is + ** all that is required. Otherwise, if pCur is not open on an intKey + ** table, then malloc space for and store the pCur->nKey bytes of key + ** data. */ + if( 0==pCur->curIntKey ){ + void *pKey = sqlite3Malloc( pCur->nKey ); + if( pKey ){ + rc = sqlite3BtreeKey(pCur, 0, (int)pCur->nKey, pKey); + if( rc==SQLITE_OK ){ + pCur->pKey = pKey; + }else{ + sqlite3_free(pKey); + } + }else{ + rc = SQLITE_NOMEM; + } + } + assert( !pCur->curIntKey || !pCur->pKey ); + return rc; +} /* ** Save the current cursor position in the variables BtCursor.nKey @@ -54405,36 +55157,14 @@ static int saveCursorPosition(BtCursor *pCur){ }else{ pCur->skipNext = 0; } - rc = sqlite3BtreeKeySize(pCur, &pCur->nKey); - assert( rc==SQLITE_OK ); /* KeySize() cannot fail */ - - /* If this is an intKey table, then the above call to BtreeKeySize() - ** stores the integer key in pCur->nKey. In this case this value is - ** all that is required. Otherwise, if pCur is not open on an intKey - ** table, then malloc space for and store the pCur->nKey bytes of key - ** data. - */ - if( 0==pCur->curIntKey ){ - void *pKey = sqlite3Malloc( pCur->nKey ); - if( pKey ){ - rc = sqlite3BtreeKey(pCur, 0, (int)pCur->nKey, pKey); - if( rc==SQLITE_OK ){ - pCur->pKey = pKey; - }else{ - sqlite3_free(pKey); - } - }else{ - rc = SQLITE_NOMEM; - } - } - assert( !pCur->curIntKey || !pCur->pKey ); + rc = saveCursorKey(pCur); if( rc==SQLITE_OK ){ btreeReleaseAllCursorPages(pCur); pCur->eState = CURSOR_REQUIRESEEK; } - invalidateOverflowCache(pCur); + pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl|BTCF_AtLast); return rc; } @@ -60272,7 +61002,13 @@ static int pageInsertArray( if( pDataapCell[i], sz); + /* pSlot and pCArray->apCell[i] will never overlap on a well-formed + ** database. But they might for a corrupt database. Hence use memmove() + ** since memcpy() sends SIGABORT with overlapping buffers on OpenBSD */ + assert( (pSlot+sz)<=pCArray->apCell[i] + || pSlot>=(pCArray->apCell[i]+sz) + || CORRUPT_DB ); + memmove(pSlot, pCArray->apCell[i], sz); put2byte(pCellptr, (pSlot - aData)); pCellptr += 2; } @@ -61397,7 +62133,7 @@ static int balance_nonroot( ** by smaller than the child due to the database header, and so all the ** free space needs to be up front. */ - assert( nNew==1 ); + assert( nNew==1 || CORRUPT_DB ); rc = defragmentPage(apNew[0]); testcase( rc!=SQLITE_OK ); assert( apNew[0]->nFree == @@ -61820,10 +62556,15 @@ end_insert: } /* -** Delete the entry that the cursor is pointing to. The cursor -** is left pointing at an arbitrary location. +** Delete the entry that the cursor is pointing to. +** +** If the second parameter is zero, then the cursor is left pointing at an +** arbitrary location after the delete. If it is non-zero, then the cursor +** is left in a state such that the next call to BtreeNext() or BtreePrev() +** moves it to the same row as it would if the call to BtreeDelete() had +** been omitted. */ -SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur){ +SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur, int bPreserve){ Btree *p = pCur->pBtree; BtShared *pBt = p->pBt; int rc; /* Return code */ @@ -61832,6 +62573,7 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur){ int iCellIdx; /* Index of cell to delete */ int iCellDepth; /* Depth of node containing pCell */ u16 szCell; /* Size of the cell being deleted */ + int bSkipnext = 0; /* Leaf cursor in SKIPNEXT state */ assert( cursorHoldsMutex(pCur) ); assert( pBt->inTransaction==TRANS_WRITE ); @@ -61861,10 +62603,7 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur){ } /* Save the positions of any other cursors open on this table before - ** making any modifications. Make the page containing the entry to be - ** deleted writable. Then free any overflow pages associated with the - ** entry and finally remove the cell itself from within the page. - */ + ** making any modifications. */ if( pCur->curFlags & BTCF_Multiple ){ rc = saveAllCursors(pBt, pCur->pgnoRoot, pCur); if( rc ) return rc; @@ -61876,6 +62615,31 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur){ invalidateIncrblobCursors(p, pCur->info.nKey, 0); } + /* If the bPreserve flag is set to true, then the cursor position must + ** be preserved following this delete operation. If the current delete + ** will cause a b-tree rebalance, then this is done by saving the cursor + ** key and leaving the cursor in CURSOR_REQUIRESEEK state before + ** returning. + ** + ** Or, if the current delete will not cause a rebalance, then the cursor + ** will be left in CURSOR_SKIPNEXT state pointing to the entry immediately + ** before or after the deleted entry. In this case set bSkipnext to true. */ + if( bPreserve ){ + if( !pPage->leaf + || (pPage->nFree+cellSizePtr(pPage,pCell)+2)>(int)(pBt->usableSize*2/3) + ){ + /* A b-tree rebalance will be required after deleting this entry. + ** Save the cursor key. */ + rc = saveCursorKey(pCur); + if( rc ) return rc; + }else{ + bSkipnext = 1; + } + } + + /* Make the page containing the entry to be deleted writable. Then free any + ** overflow pages associated with the entry and finally remove the cell + ** itself from within the page. */ rc = sqlite3PagerWrite(pPage->pDbPage); if( rc ) return rc; rc = clearCell(pPage, pCell, &szCell); @@ -61929,7 +62693,23 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur){ } if( rc==SQLITE_OK ){ - moveToRoot(pCur); + if( bSkipnext ){ + assert( bPreserve && pCur->iPage==iCellDepth ); + assert( pPage==pCur->apPage[pCur->iPage] ); + assert( (pPage->nCell>0 || CORRUPT_DB) && iCellIdx<=pPage->nCell ); + pCur->eState = CURSOR_SKIPNEXT; + if( iCellIdx>=pPage->nCell ){ + pCur->skipNext = -1; + pCur->aiIdx[iCellDepth] = pPage->nCell-1; + }else{ + pCur->skipNext = 1; + } + }else{ + rc = moveToRoot(pCur); + if( bPreserve ){ + pCur->eState = CURSOR_REQUIRESEEK; + } + } } return rc; } @@ -62494,7 +63274,6 @@ static void checkAppendMsg( ... ){ va_list ap; - char zBuf[200]; if( !pCheck->mxErr ) return; pCheck->mxErr--; pCheck->nErr++; @@ -62503,8 +63282,7 @@ static void checkAppendMsg( sqlite3StrAccumAppend(&pCheck->errMsg, "\n", 1); } if( pCheck->zPfx ){ - sqlite3_snprintf(sizeof(zBuf), zBuf, pCheck->zPfx, pCheck->v1, pCheck->v2); - sqlite3StrAccumAppendAll(&pCheck->errMsg, zBuf); + sqlite3XPrintf(&pCheck->errMsg, 0, pCheck->zPfx, pCheck->v1, pCheck->v2); } sqlite3VXPrintf(&pCheck->errMsg, 1, zFormat, ap); va_end(ap); @@ -62653,6 +63431,10 @@ static void checkList( #endif iPage = get4byte(pOvflData); sqlite3PagerUnref(pOvflPage); + + if( isFreeList && N<(iPage!=0) ){ + checkAppendMsg(pCheck, "free-page count in header is too small"); + } } } #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ @@ -64146,6 +64928,10 @@ SQLITE_PRIVATE int sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom){ b.pDest = pTo; b.iNext = 1; +#ifdef SQLITE_HAS_CODEC + sqlite3PagerAlignReserve(sqlite3BtreePager(pTo), sqlite3BtreePager(pFrom)); +#endif + /* 0x7FFFFFFF is the hard limit for the number of pages in a database ** file. By passing this as the number of pages to copy to ** sqlite3_backup_step(), we can guarantee that the copy finishes @@ -65329,7 +66115,7 @@ static sqlite3_value *valueNew(sqlite3 *db, struct ValueNewStat4Ctx *p){ ** to be a scalar SQL function. If ** ** * all function arguments are SQL literals, -** * the SQLITE_FUNC_CONSTANT function flag is set, and +** * one of the SQLITE_FUNC_CONSTANT or _SLOCHNG function flags is set, and ** * the SQLITE_FUNC_NEEDCOLL function flag is not set, ** ** then this routine attempts to invoke the SQL function. Assuming no @@ -65370,7 +66156,7 @@ static int valueFromFunction( nName = sqlite3Strlen30(p->u.zToken); pFunc = sqlite3FindFunction(db, p->u.zToken, nName, nVal, enc, 0); assert( pFunc ); - if( (pFunc->funcFlags & SQLITE_FUNC_CONSTANT)==0 + if( (pFunc->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG))==0 || (pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL) ){ return SQLITE_OK; @@ -65964,7 +66750,7 @@ SQLITE_PRIVATE void sqlite3VdbeSetSql(Vdbe *p, const char *z, int n, int isPrepa */ SQLITE_API const char *SQLITE_STDCALL sqlite3_sql(sqlite3_stmt *pStmt){ Vdbe *p = (Vdbe *)pStmt; - return (p && p->isPrepareV2) ? p->zSql : 0; + return p ? p->zSql : 0; } /* @@ -66111,6 +66897,44 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe *p, int op, int p1, int p2){ return sqlite3VdbeAddOp3(p, op, p1, p2, 0); } +/* Generate code for an unconditional jump to instruction iDest +*/ +SQLITE_PRIVATE int sqlite3VdbeGoto(Vdbe *p, int iDest){ + return sqlite3VdbeAddOp3(p, OP_Goto, 0, iDest, 0); +} + +/* Generate code to cause the string zStr to be loaded into +** register iDest +*/ +SQLITE_PRIVATE int sqlite3VdbeLoadString(Vdbe *p, int iDest, const char *zStr){ + return sqlite3VdbeAddOp4(p, OP_String8, 0, iDest, 0, zStr, 0); +} + +/* +** Generate code that initializes multiple registers to string or integer +** constants. The registers begin with iDest and increase consecutively. +** One register is initialized for each characgter in zTypes[]. For each +** "s" character in zTypes[], the register is a string if the argument is +** not NULL, or OP_Null if the value is a null pointer. For each "i" character +** in zTypes[], the register is initialized to an integer. +*/ +SQLITE_PRIVATE void sqlite3VdbeMultiLoad(Vdbe *p, int iDest, const char *zTypes, ...){ + va_list ap; + int i; + char c; + va_start(ap, zTypes); + for(i=0; (c = zTypes[i])!=0; i++){ + if( c=='s' ){ + const char *z = va_arg(ap, const char*); + int addr = sqlite3VdbeAddOp2(p, z==0 ? OP_Null : OP_String8, 0, iDest++); + if( z ) sqlite3VdbeChangeP4(p, addr, z, 0); + }else{ + assert( c=='i' ); + sqlite3VdbeAddOp2(p, OP_Integer, va_arg(ap, int), iDest++); + } + } + va_end(ap); +} /* ** Add an opcode that includes the p4 value as a pointer. @@ -66130,7 +66954,8 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp4( } /* -** Add an opcode that includes the p4 value with a P4_INT64 type. +** Add an opcode that includes the p4 value with a P4_INT64 or +** P4_REAL type. */ SQLITE_PRIVATE int sqlite3VdbeAddOp4Dup8( Vdbe *p, /* Add the opcode to this VM */ @@ -66215,7 +67040,8 @@ SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe *v, int x){ int j = -1-x; assert( v->magic==VDBE_MAGIC_INIT ); assert( jnLabel ); - if( ALWAYS(j>=0) && p->aLabel ){ + assert( j>=0 ); + if( p->aLabel ){ p->aLabel[j] = v->nOp; } p->iFixedOp = v->nOp - 1; @@ -66359,17 +67185,21 @@ SQLITE_PRIVATE int sqlite3VdbeAssertMayAbort(Vdbe *v, int mayAbort){ #endif /* SQLITE_DEBUG - the sqlite3AssertMayAbort() function */ /* -** Loop through the program looking for P2 values that are negative -** on jump instructions. Each such value is a label. Resolve the -** label by setting the P2 value to its correct non-zero value. +** This routine is called after all opcodes have been inserted. It loops +** through all the opcodes and fixes up some details. ** -** This routine is called once after all opcodes have been inserted. +** (1) For each jump instruction with a negative P2 value (a label) +** resolve the P2 value to an actual address. ** -** Variable *pMaxFuncArgs is set to the maximum value of any P2 argument -** to an OP_Function, OP_AggStep or OP_VFilter opcode. This is used by -** sqlite3VdbeMakeReady() to size the Vdbe.apArg[] array. +** (2) Compute the maximum number of arguments used by any SQL function +** and store that value in *pMaxFuncArgs. ** -** The Op.opflags field is set on all opcodes. +** (3) Update the Vdbe.readOnly and Vdbe.bIsReader flags to accurately +** indicate what the prepared statement actually does. +** +** (4) Initialize the p4.xAdvance pointer on opcodes that use it. +** +** (5) Reclaim the memory allocated for storing labels. */ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ int i; @@ -66482,46 +67312,44 @@ SQLITE_PRIVATE VdbeOp *sqlite3VdbeTakeOpArray(Vdbe *p, int *pnOp, int *pnMaxArg) ** address of the first operation added. */ SQLITE_PRIVATE int sqlite3VdbeAddOpList(Vdbe *p, int nOp, VdbeOpList const *aOp, int iLineno){ - int addr; + int addr, i; + VdbeOp *pOut; + assert( nOp>0 ); assert( p->magic==VDBE_MAGIC_INIT ); if( p->nOp + nOp > p->pParse->nOpAlloc && growOpArray(p, nOp) ){ return 0; } addr = p->nOp; - if( ALWAYS(nOp>0) ){ - int i; - VdbeOpList const *pIn = aOp; - for(i=0; ip2; - VdbeOp *pOut = &p->aOp[i+addr]; - pOut->opcode = pIn->opcode; - pOut->p1 = pIn->p1; - if( p2<0 ){ - assert( sqlite3OpcodeProperty[pOut->opcode] & OPFLG_JUMP ); - pOut->p2 = addr + ADDR(p2); - }else{ - pOut->p2 = p2; - } - pOut->p3 = pIn->p3; - pOut->p4type = P4_NOTUSED; - pOut->p4.p = 0; - pOut->p5 = 0; + pOut = &p->aOp[addr]; + for(i=0; ip2; + pOut->opcode = aOp->opcode; + pOut->p1 = aOp->p1; + if( p2<0 ){ + assert( sqlite3OpcodeProperty[pOut->opcode] & OPFLG_JUMP ); + pOut->p2 = addr + ADDR(p2); + }else{ + pOut->p2 = p2; + } + pOut->p3 = aOp->p3; + pOut->p4type = P4_NOTUSED; + pOut->p4.p = 0; + pOut->p5 = 0; #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS - pOut->zComment = 0; + pOut->zComment = 0; #endif #ifdef SQLITE_VDBE_COVERAGE - pOut->iSrcLine = iLineno+i; + pOut->iSrcLine = iLineno+i; #else - (void)iLineno; + (void)iLineno; #endif #ifdef SQLITE_DEBUG - if( p->db->flags & SQLITE_VdbeAddopTrace ){ - sqlite3VdbePrintOp(0, i+addr, &p->aOp[i+addr]); - } -#endif + if( p->db->flags & SQLITE_VdbeAddopTrace ){ + sqlite3VdbePrintOp(0, i+addr, &p->aOp[i+addr]); } - p->nOp += nOp; +#endif } + p->nOp += nOp; return addr; } @@ -66554,49 +67382,23 @@ SQLITE_PRIVATE void sqlite3VdbeScanStatus( /* -** Change the value of the P1 operand for a specific instruction. -** This routine is useful when a large program is loaded from a -** static array using sqlite3VdbeAddOpList but we want to make a -** few minor changes to the program. +** Change the value of the opcode, or P1, P2, P3, or P5 operands +** for a specific instruction. */ +SQLITE_PRIVATE void sqlite3VdbeChangeOpcode(Vdbe *p, u32 addr, u8 iNewOpcode){ + sqlite3VdbeGetOp(p,addr)->opcode = iNewOpcode; +} SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe *p, u32 addr, int val){ - assert( p!=0 ); - if( ((u32)p->nOp)>addr ){ - p->aOp[addr].p1 = val; - } + sqlite3VdbeGetOp(p,addr)->p1 = val; } - -/* -** Change the value of the P2 operand for a specific instruction. -** This routine is useful for setting a jump destination. -*/ SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe *p, u32 addr, int val){ - assert( p!=0 ); - if( ((u32)p->nOp)>addr ){ - p->aOp[addr].p2 = val; - } + sqlite3VdbeGetOp(p,addr)->p2 = val; } - -/* -** Change the value of the P3 operand for a specific instruction. -*/ SQLITE_PRIVATE void sqlite3VdbeChangeP3(Vdbe *p, u32 addr, int val){ - assert( p!=0 ); - if( ((u32)p->nOp)>addr ){ - p->aOp[addr].p3 = val; - } + sqlite3VdbeGetOp(p,addr)->p3 = val; } - -/* -** Change the value of the P5 operand for the most recently -** added operation. -*/ -SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *p, u8 val){ - assert( p!=0 ); - if( p->aOp ){ - assert( p->nOp>0 ); - p->aOp[p->nOp-1].p5 = val; - } +SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *p, u8 p5){ + sqlite3VdbeGetOp(p,-1)->p5 = p5; } /* @@ -66604,8 +67406,8 @@ SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *p, u8 val){ ** the address of the next instruction to be coded. */ SQLITE_PRIVATE void sqlite3VdbeJumpHere(Vdbe *p, int addr){ - sqlite3VdbeChangeP2(p, addr, p->nOp); p->pParse->iFixedOp = p->nOp - 1; + sqlite3VdbeChangeP2(p, addr, p->nOp); } @@ -66990,8 +67792,9 @@ static char *displayP4(Op *pOp, char *zTemp, int nTemp){ zColl = "B"; n = 1; } - if( i+n>nTemp-6 ){ + if( i+n>nTemp-7 ){ memcpy(&zTemp[i],",...",4); + i += 4; break; } zTemp[i++] = ','; @@ -70332,6 +71135,9 @@ SQLITE_API int SQLITE_STDCALL sqlite3_value_int(sqlite3_value *pVal){ SQLITE_API sqlite_int64 SQLITE_STDCALL sqlite3_value_int64(sqlite3_value *pVal){ return sqlite3VdbeIntValue((Mem*)pVal); } +SQLITE_API unsigned int SQLITE_STDCALL sqlite3_value_subtype(sqlite3_value *pVal){ + return ((Mem*)pVal)->eSubtype; +} SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *pVal){ return (const unsigned char *)sqlite3ValueText(pVal, SQLITE_UTF8); } @@ -70510,6 +71316,10 @@ SQLITE_API void SQLITE_STDCALL sqlite3_result_null(sqlite3_context *pCtx){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetNull(pCtx->pOut); } +SQLITE_API void SQLITE_STDCALL sqlite3_result_subtype(sqlite3_context *pCtx, unsigned int eSubtype){ + assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); + pCtx->pOut->eSubtype = eSubtype & 0xff; +} SQLITE_API void SQLITE_STDCALL sqlite3_result_text( sqlite3_context *pCtx, const char *z, @@ -70756,7 +71566,7 @@ end_of_step: ** were called on statement p. */ assert( rc==SQLITE_ROW || rc==SQLITE_DONE || rc==SQLITE_ERROR - || rc==SQLITE_BUSY || rc==SQLITE_MISUSE + || (rc&0xff)==SQLITE_BUSY || rc==SQLITE_MISUSE ); assert( (p->rc!=SQLITE_ROW && p->rc!=SQLITE_DONE) || p->rc==p->rcApp ); if( p->isPrepareV2 && rc!=SQLITE_ROW && rc!=SQLITE_DONE ){ @@ -70841,7 +71651,7 @@ SQLITE_API void *SQLITE_STDCALL sqlite3_user_data(sqlite3_context *p){ ** application defined function. */ SQLITE_API sqlite3 *SQLITE_STDCALL sqlite3_context_db_handle(sqlite3_context *p){ - assert( p && p->pFunc ); + assert( p && p->pOut ); return p->pOut->db; } @@ -71050,18 +71860,19 @@ static const Mem *columnNullValue(void){ #endif = { /* .u = */ {0}, - /* .flags = */ MEM_Null, - /* .enc = */ 0, - /* .n = */ 0, - /* .z = */ 0, - /* .zMalloc = */ 0, - /* .szMalloc = */ 0, - /* .iPadding1 = */ 0, - /* .db = */ 0, - /* .xDel = */ 0, + /* .flags = */ (u16)MEM_Null, + /* .enc = */ (u8)0, + /* .eSubtype = */ (u8)0, + /* .n = */ (int)0, + /* .z = */ (char*)0, + /* .zMalloc = */ (char*)0, + /* .szMalloc = */ (int)0, + /* .uTemp = */ (u32)0, + /* .db = */ (sqlite3*)0, + /* .xDel = */ (void(*)(void*))0, #ifdef SQLITE_DEBUG - /* .pScopyFrom = */ 0, - /* .pFiller = */ 0, + /* .pScopyFrom = */ (Mem*)0, + /* .pFiller = */ (void*)0, #endif }; return &nullMem; @@ -72659,7 +73470,7 @@ SQLITE_PRIVATE int sqlite3VdbeExec( ** sqlite3_column_text16() failed. */ goto no_mem; } - assert( p->rc==SQLITE_OK || p->rc==SQLITE_BUSY ); + assert( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_BUSY ); assert( p->bIsReader || p->readOnly!=0 ); p->rc = SQLITE_OK; p->iCurrentTime = 0; @@ -75096,12 +75907,12 @@ case OP_AutoCommit: { goto vdbe_return; }else{ db->autoCommit = (u8)desiredAutoCommit; - if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){ - p->pc = (int)(pOp - aOp); - db->autoCommit = (u8)(1-desiredAutoCommit); - p->rc = rc = SQLITE_BUSY; - goto vdbe_return; - } + } + if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){ + p->pc = (int)(pOp - aOp); + db->autoCommit = (u8)(1-desiredAutoCommit); + p->rc = rc = SQLITE_BUSY; + goto vdbe_return; } assert( db->nStatement==0 ); sqlite3CloseSavepoints(db); @@ -75173,9 +75984,11 @@ case OP_Transaction: { if( pBt ){ rc = sqlite3BtreeBeginTrans(pBt, pOp->p2); - if( rc==SQLITE_BUSY ){ + testcase( rc==SQLITE_BUSY_SNAPSHOT ); + testcase( rc==SQLITE_BUSY_RECOVERY ); + if( (rc&0xff)==SQLITE_BUSY ){ p->pc = (int)(pOp - aOp); - p->rc = rc = SQLITE_BUSY; + p->rc = rc; goto vdbe_return; } if( rc!=SQLITE_OK ){ @@ -76054,9 +76867,10 @@ case OP_Found: { /* jump, in3 */ ** ** P1 is the index of a cursor open on an SQL table btree (with integer ** keys). P3 is an integer rowid. If P1 does not contain a record with -** rowid P3 then jump immediately to P2. If P1 does contain a record -** with rowid P3 then leave the cursor pointing at that record and fall -** through to the next instruction. +** rowid P3 then jump immediately to P2. Or, if P2 is 0, raise an +** SQLITE_CORRUPT error. If P1 does contain a record with rowid P3 then +** leave the cursor pointing at that record and fall through to the next +** instruction. ** ** The OP_NotFound opcode performs the same operation on index btrees ** (with arbitrary multi-value keys). @@ -76088,13 +76902,21 @@ case OP_NotExists: { /* jump, in3 */ res = 0; iKey = pIn3->u.i; rc = sqlite3BtreeMovetoUnpacked(pCrsr, 0, iKey, 0, &res); + assert( rc==SQLITE_OK || res==0 ); pC->movetoTarget = iKey; /* Used by OP_Delete */ pC->nullRow = 0; pC->cacheStatus = CACHE_STALE; pC->deferredMoveto = 0; VdbeBranchTaken(res!=0,2); pC->seekResult = res; - if( res!=0 ) goto jump_to_p2; + if( res!=0 ){ + assert( rc==SQLITE_OK ); + if( pOp->p2==0 ){ + rc = SQLITE_CORRUPT_BKPT; + }else{ + goto jump_to_p2; + } + } break; } @@ -76360,14 +77182,15 @@ case OP_InsertInt: { break; } -/* Opcode: Delete P1 P2 * P4 * +/* Opcode: Delete P1 P2 * P4 P5 ** ** Delete the record at which the P1 cursor is currently pointing. ** -** The cursor will be left pointing at either the next or the previous -** record in the table. If it is left pointing at the next record, then -** the next Next instruction will be a no-op. Hence it is OK to delete -** a record from within a Next loop. +** If the P5 parameter is non-zero, the cursor will be left pointing at +** either the next or the previous record in the table. If it is left +** pointing at the next record, then the next Next instruction will be a +** no-op. As a result, in this case it is OK to delete a record from within a +** Next loop. If P5 is zero, then the cursor is left in an undefined state. ** ** If the OPFLAG_NCHANGE flag of P2 is set, then the row change count is ** incremented (otherwise not). @@ -76382,6 +77205,7 @@ case OP_InsertInt: { */ case OP_Delete: { VdbeCursor *pC; + u8 hasUpdateCallback; assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; @@ -76389,22 +77213,27 @@ case OP_Delete: { assert( pC->pCursor!=0 ); /* Only valid for real tables, no pseudotables */ assert( pC->deferredMoveto==0 ); + hasUpdateCallback = db->xUpdateCallback && pOp->p4.z && pC->isTable; + if( pOp->p5 && hasUpdateCallback ){ + sqlite3BtreeKeySize(pC->pCursor, &pC->movetoTarget); + } + #ifdef SQLITE_DEBUG /* The seek operation that positioned the cursor prior to OP_Delete will ** have also set the pC->movetoTarget field to the rowid of the row that ** is being deleted */ - if( pOp->p4.z && pC->isTable ){ + if( pOp->p4.z && pC->isTable && pOp->p5==0 ){ i64 iKey = 0; sqlite3BtreeKeySize(pC->pCursor, &iKey); assert( pC->movetoTarget==iKey ); } #endif - rc = sqlite3BtreeDelete(pC->pCursor); + rc = sqlite3BtreeDelete(pC->pCursor, pOp->p5); pC->cacheStatus = CACHE_STALE; /* Invoke the update-hook if required. */ - if( rc==SQLITE_OK && db->xUpdateCallback && pOp->p4.z && pC->isTable ){ + if( rc==SQLITE_OK && hasUpdateCallback ){ db->xUpdateCallback(db->pUpdateArg, SQLITE_DELETE, db->aDb[pC->iDb].zName, pOp->p4.z, pC->movetoTarget); assert( pC->iDb>=0 ); @@ -76943,7 +77772,7 @@ case OP_IdxDelete: { #endif rc = sqlite3BtreeMovetoUnpacked(pCrsr, &r, 0, 0, &res); if( rc==SQLITE_OK && res==0 ){ - rc = sqlite3BtreeDelete(pCrsr); + rc = sqlite3BtreeDelete(pCrsr, 0); } assert( pC->deferredMoveto==0 ); pC->cacheStatus = CACHE_STALE; @@ -77741,12 +78570,12 @@ case OP_MemMax: { /* in2 */ } #endif /* SQLITE_OMIT_AUTOINCREMENT */ -/* Opcode: IfPos P1 P2 * * * -** Synopsis: if r[P1]>0 goto P2 +/* Opcode: IfPos P1 P2 P3 * * +** Synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 ** ** Register P1 must contain an integer. -** If the value of register P1 is 1 or greater, jump to P2 and -** add the literal value P3 to register P1. +** If the value of register P1 is 1 or greater, subtract P3 from the +** value in P1 and jump to P2. ** ** If the initial value of register P1 is less than 1, then the ** value is unchanged and control passes through to the next instruction. @@ -77755,38 +78584,44 @@ case OP_IfPos: { /* jump, in1 */ pIn1 = &aMem[pOp->p1]; assert( pIn1->flags&MEM_Int ); VdbeBranchTaken( pIn1->u.i>0, 2); - if( pIn1->u.i>0 ) goto jump_to_p2; + if( pIn1->u.i>0 ){ + pIn1->u.i -= pOp->p3; + goto jump_to_p2; + } break; } -/* Opcode: IfNeg P1 P2 P3 * * -** Synopsis: r[P1]+=P3, if r[P1]<0 goto P2 +/* Opcode: SetIfNotPos P1 P2 P3 * * +** Synopsis: if r[P1]<=0 then r[P2]=P3 ** -** Register P1 must contain an integer. Add literal P3 to the value in -** register P1 then if the value of register P1 is less than zero, jump to P2. +** Register P1 must contain an integer. +** If the value of register P1 is not positive (if it is less than 1) then +** set the value of register P2 to be the integer P3. */ -case OP_IfNeg: { /* jump, in1 */ +case OP_SetIfNotPos: { /* in1, in2 */ pIn1 = &aMem[pOp->p1]; assert( pIn1->flags&MEM_Int ); - pIn1->u.i += pOp->p3; - VdbeBranchTaken(pIn1->u.i<0, 2); - if( pIn1->u.i<0 ) goto jump_to_p2; + if( pIn1->u.i<=0 ){ + pOut = out2Prerelease(p, pOp); + pOut->u.i = pOp->p3; + } break; } /* Opcode: IfNotZero P1 P2 P3 * * -** Synopsis: if r[P1]!=0 then r[P1]+=P3, goto P2 +** Synopsis: if r[P1]!=0 then r[P1]-=P3, goto P2 ** ** Register P1 must contain an integer. If the content of register P1 is -** initially nonzero, then add P3 to P1 and jump to P2. If register P1 is -** initially zero, leave it unchanged and fall through. +** initially nonzero, then subtract P3 from the value in register P1 and +** jump to P2. If register P1 is initially zero, leave it unchanged +** and fall through. */ case OP_IfNotZero: { /* jump, in1 */ pIn1 = &aMem[pOp->p1]; assert( pIn1->flags&MEM_Int ); VdbeBranchTaken(pIn1->u.i<0, 2); if( pIn1->u.i ){ - pIn1->u.i += pOp->p3; + pIn1->u.i -= pOp->p3; goto jump_to_p2; } break; @@ -79011,7 +79846,8 @@ SQLITE_API int SQLITE_STDCALL sqlite3_blob_open( for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ int j; for(j=0; jnKeyCol; j++){ - if( pIdx->aiColumn[j]==iCol ){ + /* FIXME: Be smarter about indexes that use expressions */ + if( pIdx->aiColumn[j]==iCol || pIdx->aiColumn[j]==XN_EXPR ){ zFault = "indexed"; } } @@ -82592,6 +83428,11 @@ SQLITE_PRIVATE int sqlite3WalkSelectFrom(Walker *pWalker, Select *p){ if( sqlite3WalkSelect(pWalker, pItem->pSelect) ){ return WRC_Abort; } + if( pItem->fg.isTabFunc + && sqlite3WalkExprList(pWalker, pItem->u1.pFuncArg) + ){ + return WRC_Abort; + } } } return WRC_Continue; @@ -82689,30 +83530,6 @@ static void incrAggFunctionDepth(Expr *pExpr, int N){ ** Turn the pExpr expression into an alias for the iCol-th column of the ** result set in pEList. ** -** If the result set column is a simple column reference, then this routine -** makes an exact copy. But for any other kind of expression, this -** routine make a copy of the result set column as the argument to the -** TK_AS operator. The TK_AS operator causes the expression to be -** evaluated just once and then reused for each alias. -** -** The reason for suppressing the TK_AS term when the expression is a simple -** column reference is so that the column reference will be recognized as -** usable by indices within the WHERE clause processing logic. -** -** The TK_AS operator is inhibited if zType[0]=='G'. This means -** that in a GROUP BY clause, the expression is evaluated twice. Hence: -** -** SELECT random()%5 AS x, count(*) FROM tab GROUP BY x -** -** Is equivalent to: -** -** SELECT random()%5 AS x, count(*) FROM tab GROUP BY random()%5 -** -** The result of random()%5 in the GROUP BY clause is probably different -** from the result in the result-set. On the other hand Standard SQL does -** not allow the GROUP BY clause to contain references to result-set columns. -** So this should never come up in well-formed queries. -** ** If the reference is followed by a COLLATE operator, then make sure ** the COLLATE operator is preserved. For example: ** @@ -82746,19 +83563,11 @@ static void resolveAlias( db = pParse->db; pDup = sqlite3ExprDup(db, pOrig, 0); if( pDup==0 ) return; - if( pOrig->op!=TK_COLUMN && zType[0]!='G' ){ - incrAggFunctionDepth(pDup, nSubquery); - pDup = sqlite3PExpr(pParse, TK_AS, pDup, 0, 0); - if( pDup==0 ) return; - ExprSetProperty(pDup, EP_Skip); - if( pEList->a[iCol].u.x.iAlias==0 ){ - pEList->a[iCol].u.x.iAlias = (u16)(++pParse->nAlias); - } - pDup->iTable = pEList->a[iCol].u.x.iAlias; - } + if( zType[0]!='G' ) incrAggFunctionDepth(pDup, nSubquery); if( pExpr->op==TK_COLLATE ){ pDup = sqlite3ExprAddCollateString(pParse, pDup, pExpr->u.zToken); } + ExprSetProperty(pDup, EP_Alias); /* Before calling sqlite3ExprDelete(), set the EP_Static flag. This ** prevents ExprDelete() from deleting the Expr structure itself, @@ -82950,7 +83759,7 @@ static int lookupName( ** USING clause, then skip this match. */ if( cnt==1 ){ - if( pItem->jointype & JT_NATURAL ) continue; + if( pItem->fg.jointype & JT_NATURAL ) continue; if( nameInUsingClause(pItem->pUsing, zCol) ) continue; } cnt++; @@ -82965,8 +83774,8 @@ static int lookupName( pExpr->iTable = pMatch->iCursor; pExpr->pTab = pMatch->pTab; /* RIGHT JOIN not (yet) supported */ - assert( (pMatch->jointype & JT_RIGHT)==0 ); - if( (pMatch->jointype & JT_LEFT)!=0 ){ + assert( (pMatch->fg.jointype & JT_RIGHT)==0 ); + if( (pMatch->fg.jointype & JT_LEFT)!=0 ){ ExprSetProperty(pExpr, EP_CanBeNull); } pSchema = pExpr->pTab->pSchema; @@ -83031,8 +83840,13 @@ static int lookupName( /* ** Perhaps the name is a reference to the ROWID */ - if( cnt==0 && cntTab==1 && pMatch && sqlite3IsRowid(zCol) - && VisibleRowid(pMatch->pTab) ){ + if( cnt==0 + && cntTab==1 + && pMatch + && (pNC->ncFlags & NC_IdxExpr)==0 + && sqlite3IsRowid(zCol) + && VisibleRowid(pMatch->pTab) + ){ cnt = 1; pExpr->iColumn = -1; /* IMP: R-44911-55124 */ pExpr->affinity = SQLITE_AFF_INTEGER; @@ -83051,9 +83865,9 @@ static int lookupName( ** resolved by the time the WHERE clause is resolved. ** ** The ability to use an output result-set column in the WHERE, GROUP BY, - ** or HAVING clauses, or as part of a larger expression in the ORDRE BY + ** or HAVING clauses, or as part of a larger expression in the ORDER BY ** clause is not standard SQL. This is a (goofy) SQLite extension, that - ** is supported for backwards compatibility only. TO DO: Issue a warning + ** is supported for backwards compatibility only. Hence, we issue a warning ** on sqlite3_log() whenever the capability is used. */ if( (pEList = pNC->pEList)!=0 @@ -83150,7 +83964,7 @@ static int lookupName( lookupname_end: if( cnt==1 ){ assert( pNC!=0 ); - if( pExpr->op!=TK_AS ){ + if( !ExprHasProperty(pExpr, EP_Alias) ){ sqlite3AuthRead(pParse, pExpr, pSchema, pNC->pSrcList); } /* Increment the nRef value on all name contexts from TopNC up to @@ -83191,36 +84005,25 @@ SQLITE_PRIVATE Expr *sqlite3CreateColumnExpr(sqlite3 *db, SrcList *pSrc, int iSr } /* -** Report an error that an expression is not valid for a partial index WHERE -** clause. +** Report an error that an expression is not valid for some set of +** pNC->ncFlags values determined by validMask. */ -static void notValidPartIdxWhere( +static void notValid( Parse *pParse, /* Leave error message here */ NameContext *pNC, /* The name context */ - const char *zMsg /* Type of error */ + const char *zMsg, /* Type of error */ + int validMask /* Set of contexts for which prohibited */ ){ - if( (pNC->ncFlags & NC_PartIdx)!=0 ){ - sqlite3ErrorMsg(pParse, "%s prohibited in partial index WHERE clauses", - zMsg); - } -} - + assert( (validMask&~(NC_IsCheck|NC_PartIdx|NC_IdxExpr))==0 ); + if( (pNC->ncFlags & validMask)!=0 ){ + const char *zIn = "partial index WHERE clauses"; + if( pNC->ncFlags & NC_IdxExpr ) zIn = "index expressions"; #ifndef SQLITE_OMIT_CHECK -/* -** Report an error that an expression is not valid for a CHECK constraint. -*/ -static void notValidCheckConstraint( - Parse *pParse, /* Leave error message here */ - NameContext *pNC, /* The name context */ - const char *zMsg /* Type of error */ -){ - if( (pNC->ncFlags & NC_IsCheck)!=0 ){ - sqlite3ErrorMsg(pParse,"%s prohibited in CHECK constraints", zMsg); + else if( pNC->ncFlags & NC_IsCheck ) zIn = "CHECK constraints"; +#endif + sqlite3ErrorMsg(pParse, "%s prohibited in %s", zMsg, zIn); } } -#else -# define notValidCheckConstraint(P,N,M) -#endif /* ** Expression p should encode a floating point value between 1.0 and 0.0. @@ -83305,6 +84108,8 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ Expr *pRight; /* if( pSrcList==0 ) break; */ + notValid(pParse, pNC, "the \".\" operator", NC_IdxExpr); + /*notValid(pParse, pNC, "the \".\" operator", NC_PartIdx|NC_IsCheck, 1);*/ pRight = pExpr->pRight; if( pRight->op==TK_ID ){ zDb = 0; @@ -83334,7 +84139,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ u8 enc = ENC(pParse->db); /* The database encoding */ assert( !ExprHasProperty(pExpr, EP_xIsSelect) ); - notValidPartIdxWhere(pParse, pNC, "functions"); + notValid(pParse, pNC, "functions", NC_PartIdx); zId = pExpr->u.zToken; nId = sqlite3Strlen30(zId); pDef = sqlite3FindFunction(pParse->db, zId, nId, n, enc, 0); @@ -83382,9 +84187,18 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ return WRC_Prune; } #endif - if( pDef->funcFlags & SQLITE_FUNC_CONSTANT ){ + if( pDef->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG) ){ + /* For the purposes of the EP_ConstFunc flag, date and time + ** functions and other functions that change slowly are considered + ** constant because they are constant for the duration of one query */ ExprSetProperty(pExpr,EP_ConstFunc); } + if( (pDef->funcFlags & SQLITE_FUNC_CONSTANT)==0 ){ + /* Date/time functions that use 'now', and other functions like + ** sqlite_version() that might change over time cannot be used + ** in an index. */ + notValid(pParse, pNC, "non-deterministic functions", NC_IdxExpr); + } } if( is_agg && (pNC->ncFlags & NC_AllowAgg)==0 ){ sqlite3ErrorMsg(pParse, "misuse of aggregate function %.*s()", nId,zId); @@ -83430,8 +84244,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ testcase( pExpr->op==TK_IN ); if( ExprHasProperty(pExpr, EP_xIsSelect) ){ int nRef = pNC->nRef; - notValidCheckConstraint(pParse, pNC, "subqueries"); - notValidPartIdxWhere(pParse, pNC, "subqueries"); + notValid(pParse, pNC, "subqueries", NC_IsCheck|NC_PartIdx|NC_IdxExpr); sqlite3WalkSelect(pWalker, pExpr->x.pSelect); assert( pNC->nRef>=nRef ); if( nRef!=pNC->nRef ){ @@ -83441,8 +84254,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ break; } case TK_VARIABLE: { - notValidCheckConstraint(pParse, pNC, "parameters"); - notValidPartIdxWhere(pParse, pNC, "parameters"); + notValid(pParse, pNC, "parameters", NC_IsCheck|NC_PartIdx|NC_IdxExpr); break; } } @@ -83786,7 +84598,6 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ int isCompound; /* True if p is a compound select */ int nCompound; /* Number of compound terms processed so far */ Parse *pParse; /* Parsing context */ - ExprList *pEList; /* Result set expression list */ int i; /* Loop counter */ ExprList *pGroupBy; /* The GROUP BY clause */ Select *pLeftmost; /* Left-most of SELECT of a compound */ @@ -83859,7 +84670,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ ** parent contexts. After resolving references to expressions in ** pItem->pSelect, check if this value has changed. If so, then ** SELECT statement pItem->pSelect must be correlated. Set the - ** pItem->isCorrelated flag if this is the case. */ + ** pItem->fg.isCorrelated flag if this is the case. */ for(pNC=pOuterNC; pNC; pNC=pNC->pNext) nRef += pNC->nRef; if( pItem->zName ) pParse->zAuthContext = pItem->zName; @@ -83868,8 +84679,8 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ if( pParse->nErr || db->mallocFailed ) return WRC_Abort; for(pNC=pOuterNC; pNC; pNC=pNC->pNext) nRef -= pNC->nRef; - assert( pItem->isCorrelated==0 && nRef<=0 ); - pItem->isCorrelated = (nRef!=0); + assert( pItem->fg.isCorrelated==0 && nRef<=0 ); + pItem->fg.isCorrelated = (nRef!=0); } } @@ -83881,14 +84692,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ sNC.pNext = pOuterNC; /* Resolve names in the result set. */ - pEList = p->pEList; - assert( pEList!=0 ); - for(i=0; inExpr; i++){ - Expr *pX = pEList->a[i].pExpr; - if( sqlite3ResolveExprNames(&sNC, pX) ){ - return WRC_Abort; - } - } + if( sqlite3ResolveExprListNames(&sNC, p->pEList) ) return WRC_Abort; /* If there are no aggregate functions in the result-set, and no GROUP BY ** expression, do not allow aggregates in any of the other expressions. @@ -83921,6 +84725,16 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ if( sqlite3ResolveExprNames(&sNC, p->pHaving) ) return WRC_Abort; if( sqlite3ResolveExprNames(&sNC, p->pWhere) ) return WRC_Abort; + /* Resolve names in table-valued-function arguments */ + for(i=0; ipSrc->nSrc; i++){ + struct SrcList_item *pItem = &p->pSrc->a[i]; + if( pItem->fg.isTabFunc + && sqlite3ResolveExprListNames(&sNC, pItem->u1.pFuncArg) + ){ + return WRC_Abort; + } + } + /* The ORDER BY and GROUP BY clauses may not refer to terms in ** outer queries */ @@ -84084,6 +84898,22 @@ SQLITE_PRIVATE int sqlite3ResolveExprNames( return ExprHasProperty(pExpr, EP_Error); } +/* +** Resolve all names for all expression in an expression list. This is +** just like sqlite3ResolveExprNames() except that it works for an expression +** list rather than a single expression. +*/ +SQLITE_PRIVATE int sqlite3ResolveExprListNames( + NameContext *pNC, /* Namespace to resolve expressions in. */ + ExprList *pList /* The expression list to be analyzed. */ +){ + int i; + assert( pList!=0 ); + for(i=0; inExpr; i++){ + if( sqlite3ResolveExprNames(pNC, pList->a[i].pExpr) ) return WRC_Abort; + } + return WRC_Continue; +} /* ** Resolve all names in all expressions of a SELECT and in all @@ -84127,15 +84957,14 @@ SQLITE_PRIVATE void sqlite3ResolveSelectNames( SQLITE_PRIVATE void sqlite3ResolveSelfReference( Parse *pParse, /* Parsing context */ Table *pTab, /* The table being referenced */ - int type, /* NC_IsCheck or NC_PartIdx */ + int type, /* NC_IsCheck or NC_PartIdx or NC_IdxExpr */ Expr *pExpr, /* Expression to resolve. May be NULL. */ ExprList *pList /* Expression list to resolve. May be NUL. */ ){ SrcList sSrc; /* Fake SrcList for pParse->pNewTable */ NameContext sNC; /* Name context for pParse->pNewTable */ - int i; /* Loop counter */ - assert( type==NC_IsCheck || type==NC_PartIdx ); + assert( type==NC_IsCheck || type==NC_PartIdx || type==NC_IdxExpr ); memset(&sNC, 0, sizeof(sNC)); memset(&sSrc, 0, sizeof(sSrc)); sSrc.nSrc = 1; @@ -84146,13 +84975,7 @@ SQLITE_PRIVATE void sqlite3ResolveSelfReference( sNC.pSrcList = &sSrc; sNC.ncFlags = type; if( sqlite3ResolveExprNames(&sNC, pExpr) ) return; - if( pList ){ - for(i=0; inExpr; i++){ - if( sqlite3ResolveExprNames(&sNC, pList->a[i].pExpr) ){ - return; - } - } - } + if( pList ) sqlite3ResolveExprListNames(&sNC, pList); } /************** End of resolve.c *********************************************/ @@ -84250,7 +85073,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr, con } /* -** Skip over any TK_COLLATE or TK_AS operators and any unlikely() +** Skip over any TK_COLLATE operators and any unlikely() ** or likelihood() function at the root of an expression. */ SQLITE_PRIVATE Expr *sqlite3ExprSkipCollate(Expr *pExpr){ @@ -84261,7 +85084,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprSkipCollate(Expr *pExpr){ assert( pExpr->op==TK_FUNCTION ); pExpr = pExpr->x.pList->a[0].pExpr; }else{ - assert( pExpr->op==TK_COLLATE || pExpr->op==TK_AS ); + assert( pExpr->op==TK_COLLATE ); pExpr = pExpr->pLeft; } } @@ -84592,7 +85415,7 @@ SQLITE_PRIVATE void sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p){ ** is responsible for making sure the node eventually gets freed. ** ** If dequote is true, then the token (if it exists) is dequoted. -** If dequote is false, no dequoting is performance. The deQuote +** If dequote is false, no dequoting is performed. The deQuote ** parameter is ignored if pToken is NULL or if the token does not ** appear to be quoted. If the quotes were of the form "..." (double-quotes) ** then the EP_DblQuoted flag is set on the expression node. @@ -85193,16 +86016,18 @@ SQLITE_PRIVATE SrcList *sqlite3SrcListDup(sqlite3 *db, SrcList *p, int flags){ pNewItem->zDatabase = sqlite3DbStrDup(db, pOldItem->zDatabase); pNewItem->zName = sqlite3DbStrDup(db, pOldItem->zName); pNewItem->zAlias = sqlite3DbStrDup(db, pOldItem->zAlias); - pNewItem->jointype = pOldItem->jointype; + pNewItem->fg = pOldItem->fg; pNewItem->iCursor = pOldItem->iCursor; pNewItem->addrFillSub = pOldItem->addrFillSub; pNewItem->regReturn = pOldItem->regReturn; - pNewItem->isCorrelated = pOldItem->isCorrelated; - pNewItem->viaCoroutine = pOldItem->viaCoroutine; - pNewItem->isRecursive = pOldItem->isRecursive; - pNewItem->zIndexedBy = sqlite3DbStrDup(db, pOldItem->zIndexedBy); - pNewItem->notIndexed = pOldItem->notIndexed; - pNewItem->pIndex = pOldItem->pIndex; + if( pNewItem->fg.isIndexedBy ){ + pNewItem->u1.zIndexedBy = sqlite3DbStrDup(db, pOldItem->u1.zIndexedBy); + } + pNewItem->pIBIndex = pOldItem->pIBIndex; + if( pNewItem->fg.isTabFunc ){ + pNewItem->u1.pFuncArg = + sqlite3ExprListDup(db, pOldItem->u1.pFuncArg, flags); + } pTab = pNewItem->pTab = pOldItem->pTab; if( pTab ){ pTab->nRef++; @@ -85317,6 +86142,20 @@ no_mem: return 0; } +/* +** Set the sort order for the last element on the given ExprList. +*/ +SQLITE_PRIVATE void sqlite3ExprListSetSortOrder(ExprList *p, int iSortOrder){ + if( p==0 ) return; + assert( SQLITE_SO_UNDEFINED<0 && SQLITE_SO_ASC>=0 && SQLITE_SO_DESC>0 ); + assert( p->nExpr>0 ); + if( iSortOrder<0 ){ + assert( p->a[p->nExpr-1].sortOrder==SQLITE_SO_ASC ); + return; + } + p->a[p->nExpr-1].sortOrder = (u8)iSortOrder; +} + /* ** Set the ExprList.a[].zName element of the most recently added item ** on the expression list. @@ -85738,13 +86577,13 @@ SQLITE_PRIVATE int sqlite3CodeOnce(Parse *pParse){ ** to be set to NULL if iCur contains one or more NULL values. */ static void sqlite3SetHasNullFlag(Vdbe *v, int iCur, int regHasNull){ - int j1; + int addr1; sqlite3VdbeAddOp2(v, OP_Integer, 0, regHasNull); - j1 = sqlite3VdbeAddOp1(v, OP_Rewind, iCur); VdbeCoverage(v); + addr1 = sqlite3VdbeAddOp1(v, OP_Rewind, iCur); VdbeCoverage(v); sqlite3VdbeAddOp3(v, OP_Column, iCur, 0, regHasNull); sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); VdbeComment((v, "first_entry_in(%d)", iCur)); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); } @@ -86288,7 +87127,7 @@ static void sqlite3ExprCodeIN( } if( regCkNull ){ sqlite3VdbeAddOp2(v, OP_IsNull, regCkNull, destIfNull); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, destIfFalse); + sqlite3VdbeGoto(v, destIfFalse); } sqlite3VdbeResolveLabel(v, labelOk); sqlite3ReleaseTempReg(pParse, regCkNull); @@ -86306,7 +87145,7 @@ static void sqlite3ExprCodeIN( int addr1 = sqlite3VdbeAddOp1(v, OP_NotNull, r1); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_Rewind, pExpr->iTable, destIfFalse); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, destIfNull); + sqlite3VdbeGoto(v, destIfNull); sqlite3VdbeJumpHere(v, addr1); } } @@ -86344,7 +87183,7 @@ static void sqlite3ExprCodeIN( ** the presence of a NULL on the RHS makes a difference in the ** outcome. */ - int j1; + int addr1; /* First check to see if the LHS is contained in the RHS. If so, ** then the answer is TRUE the presence of NULLs in the RHS does @@ -86352,12 +87191,12 @@ static void sqlite3ExprCodeIN( ** answer is NULL if the RHS contains NULLs and the answer is ** FALSE if the RHS is NULL-free. */ - j1 = sqlite3VdbeAddOp4Int(v, OP_Found, pExpr->iTable, 0, r1, 1); + addr1 = sqlite3VdbeAddOp4Int(v, OP_Found, pExpr->iTable, 0, r1, 1); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_IsNull, rRhsHasNull, destIfNull); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, destIfFalse); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeGoto(v, destIfFalse); + sqlite3VdbeJumpHere(v, addr1); } } } @@ -86575,6 +87414,28 @@ static void sqlite3ExprCachePinRegister(Parse *pParse, int iReg){ } } +/* Generate code that will load into register regOut a value that is +** appropriate for the iIdxCol-th column of index pIdx. +*/ +SQLITE_PRIVATE void sqlite3ExprCodeLoadIndexColumn( + Parse *pParse, /* The parsing context */ + Index *pIdx, /* The index whose column is to be loaded */ + int iTabCur, /* Cursor pointing to a table row */ + int iIdxCol, /* The column of the index to be loaded */ + int regOut /* Store the index column value in this register */ +){ + i16 iTabCol = pIdx->aiColumn[iIdxCol]; + if( iTabCol==XN_EXPR ){ + assert( pIdx->aColExpr ); + assert( pIdx->aColExpr->nExpr>iIdxCol ); + pParse->iSelfTab = iTabCur; + sqlite3ExprCode(pParse, pIdx->aColExpr->a[iIdxCol].pExpr, regOut); + }else{ + sqlite3ExprCodeGetColumnOfTable(pParse->pVdbe, pIdx->pTable, iTabCur, + iTabCol, regOut); + } +} + /* ** Generate code to extract the value of the iCol-th column of a table. */ @@ -86760,8 +87621,9 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) inReg = pExpr->iColumn + pParse->ckBase; break; }else{ - /* Deleting from a partial index */ - iTab = pParse->iPartIdxTab; + /* Coding an expression that is part of an index where column names + ** in the index refer to the table to which the index belongs */ + iTab = pParse->iSelfTab; } } inReg = sqlite3ExprCodeGetColumn(pParse, pExpr->pTab, @@ -86782,7 +87644,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) #endif case TK_STRING: { assert( !ExprHasProperty(pExpr, EP_IntValue) ); - sqlite3VdbeAddOp4(v, OP_String8, 0, target, 0, pExpr->u.zToken, 0); + sqlite3VdbeLoadString(v, target, pExpr->u.zToken); break; } case TK_NULL: { @@ -86821,10 +87683,6 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) inReg = pExpr->iTable; break; } - case TK_AS: { - inReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target); - break; - } #ifndef SQLITE_OMIT_CAST case TK_CAST: { /* Expressions of the form: CAST(pLeft AS token) */ @@ -87055,7 +87913,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) } sqlite3ExprCachePush(pParse); /* Ticket 2ea2425d34be */ - sqlite3ExprCodeExprList(pParse, pFarg, r1, + sqlite3ExprCodeExprList(pParse, pFarg, r1, 0, SQLITE_ECEL_DUP|SQLITE_ECEL_FACTOR); sqlite3ExprCachePop(pParse); /* Ticket 2ea2425d34be */ }else{ @@ -87279,7 +88137,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) sqlite3ExprIfFalse(pParse, pTest, nextCase, SQLITE_JUMPIFNULL); testcase( aListelem[i+1].pExpr->op==TK_COLUMN ); sqlite3ExprCode(pParse, aListelem[i+1].pExpr, target); - sqlite3VdbeAddOp2(v, OP_Goto, 0, endLabel); + sqlite3VdbeGoto(v, endLabel); sqlite3ExprCachePop(pParse); sqlite3VdbeResolveLabel(v, nextCase); } @@ -87471,11 +88329,13 @@ SQLITE_PRIVATE int sqlite3ExprCodeExprList( Parse *pParse, /* Parsing context */ ExprList *pList, /* The expression list to be coded */ int target, /* Where to write results */ + int srcReg, /* Source registers if SQLITE_ECEL_REF */ u8 flags /* SQLITE_ECEL_* flags */ ){ struct ExprList_item *pItem; - int i, n; + int i, j, n; u8 copyOp = (flags & SQLITE_ECEL_DUP) ? OP_Copy : OP_SCopy; + Vdbe *v = pParse->pVdbe; assert( pList!=0 ); assert( target>0 ); assert( pParse->pVdbe!=0 ); /* Never gets this far otherwise */ @@ -87483,13 +88343,14 @@ SQLITE_PRIVATE int sqlite3ExprCodeExprList( if( !ConstFactorOk(pParse) ) flags &= ~SQLITE_ECEL_FACTOR; for(pItem=pList->a, i=0; ipExpr; - if( (flags & SQLITE_ECEL_FACTOR)!=0 && sqlite3ExprIsConstant(pExpr) ){ + if( (flags & SQLITE_ECEL_REF)!=0 && (j = pList->a[i].u.x.iOrderByCol)>0 ){ + sqlite3VdbeAddOp2(v, copyOp, j+srcReg-1, target+i); + }else if( (flags & SQLITE_ECEL_FACTOR)!=0 && sqlite3ExprIsConstant(pExpr) ){ sqlite3ExprCodeAtInit(pParse, pExpr, target+i, 0); }else{ int inReg = sqlite3ExprCodeTarget(pParse, pExpr, target+i); if( inReg!=target+i ){ VdbeOp *pOp; - Vdbe *v = pParse->pVdbe; if( copyOp==OP_Copy && (pOp=sqlite3VdbeGetOp(v, -1))->opcode==OP_Copy && pOp->p1+pOp->p3+1==inReg @@ -87666,14 +88527,14 @@ SQLITE_PRIVATE void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int int destIfFalse = sqlite3VdbeMakeLabel(v); int destIfNull = jumpIfNull ? dest : destIfFalse; sqlite3ExprCodeIN(pParse, pExpr, destIfFalse, destIfNull); - sqlite3VdbeAddOp2(v, OP_Goto, 0, dest); + sqlite3VdbeGoto(v, dest); sqlite3VdbeResolveLabel(v, destIfFalse); break; } #endif default: { if( exprAlwaysTrue(pExpr) ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, dest); + sqlite3VdbeGoto(v, dest); }else if( exprAlwaysFalse(pExpr) ){ /* No-op */ }else{ @@ -87829,7 +88690,7 @@ SQLITE_PRIVATE void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int #endif default: { if( exprAlwaysFalse(pExpr) ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, dest); + sqlite3VdbeGoto(v, dest); }else if( exprAlwaysTrue(pExpr) ){ /* no-op */ }else{ @@ -87905,7 +88766,9 @@ SQLITE_PRIVATE int sqlite3ExprCompare(Expr *pA, Expr *pB, int iTab){ return 2; } if( pA->op!=TK_COLUMN && ALWAYS(pA->op!=TK_AGG_COLUMN) && pA->u.zToken ){ - if( strcmp(pA->u.zToken,pB->u.zToken)!=0 ){ + if( pA->op==TK_FUNCTION ){ + if( sqlite3StrICmp(pA->u.zToken,pB->u.zToken)!=0 ) return 2; + }else if( strcmp(pA->u.zToken,pB->u.zToken)!=0 ){ return pA->op==TK_COLLATE ? 1 : 2; } } @@ -88813,7 +89676,7 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable( #ifndef SQLITE_OMIT_VIRTUALTABLE if( pVTab ){ int i = ++pParse->nMem; - sqlite3VdbeAddOp4(v, OP_String8, 0, i, 0, zName, 0); + sqlite3VdbeLoadString(v, i, zName); sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB); sqlite3MayAbort(pParse); } @@ -88924,14 +89787,14 @@ SQLITE_PRIVATE void sqlite3MinimumFileFormat(Parse *pParse, int iDb, int minForm if( ALWAYS(v) ){ int r1 = sqlite3GetTempReg(pParse); int r2 = sqlite3GetTempReg(pParse); - int j1; + int addr1; sqlite3VdbeAddOp3(v, OP_ReadCookie, iDb, r1, BTREE_FILE_FORMAT); sqlite3VdbeUsesBtree(v, iDb); sqlite3VdbeAddOp2(v, OP_Integer, minFormat, r2); - j1 = sqlite3VdbeAddOp3(v, OP_Ge, r2, 0, r1); + addr1 = sqlite3VdbeAddOp3(v, OP_Ge, r2, 0, r1); sqlite3VdbeChangeP5(v, SQLITE_NOTNULL); VdbeCoverage(v); sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, r2); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); sqlite3ReleaseTempReg(pParse, r1); sqlite3ReleaseTempReg(pParse, r2); } @@ -90171,7 +91034,7 @@ static void analyzeOneTable( iIdxCur = iTab++; pParse->nTab = MAX(pParse->nTab, iTab); sqlite3OpenTable(pParse, iTabCur, iDb, pTab, OP_OpenRead); - sqlite3VdbeAddOp4(v, OP_String8, 0, regTabname, 0, pTab->zName, 0); + sqlite3VdbeLoadString(v, regTabname, pTab->zName); for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ int nCol; /* Number of columns in pIdx. "N" */ @@ -90193,7 +91056,7 @@ static void analyzeOneTable( } /* Populate the register containing the index name. */ - sqlite3VdbeAddOp4(v, OP_String8, 0, regIdxname, 0, zIdxName, 0); + sqlite3VdbeLoadString(v, regIdxname, zIdxName); VdbeComment((v, "Analysis for %s.%s", pTab->zName, zIdxName)); /* @@ -90307,7 +91170,7 @@ static void analyzeOneTable( VdbeCoverage(v); } sqlite3VdbeAddOp2(v, OP_Integer, nColTest, regChng); - sqlite3VdbeAddOp2(v, OP_Goto, 0, endDistinctTest); + sqlite3VdbeGoto(v, endDistinctTest); /* @@ -90343,6 +91206,7 @@ static void analyzeOneTable( regKey = sqlite3GetTempRange(pParse, pPk->nKeyCol); for(j=0; jnKeyCol; j++){ k = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[j]); + assert( k>=0 && knCol ); sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, k, regKey+j); VdbeComment((v, "%s", pTab->aCol[pPk->aiColumn[j]].zName)); } @@ -90392,12 +91256,10 @@ static void analyzeOneTable( ** be taken */ VdbeCoverageNeverTaken(v); #ifdef SQLITE_ENABLE_STAT3 - sqlite3ExprCodeGetColumnOfTable(v, pTab, iTabCur, - pIdx->aiColumn[0], regSample); + sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iTabCur, 0, regSample); #else for(i=0; iaiColumn[i]; - sqlite3ExprCodeGetColumnOfTable(v, pTab, iTabCur, iCol, regCol+i); + sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iTabCur, i, regCol+i); } sqlite3VdbeAddOp3(v, OP_MakeRecord, regCol, nCol, regSample); #endif @@ -92094,6 +92956,8 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ db->aDb[iDb].pSchema->iGeneration /* P4 */ ); if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1); + VdbeComment((v, + "usesStmtJournal=%d", pParse->mayAbort && pParse->isMultiWrite)); } #ifndef SQLITE_OMIT_VIRTUALTABLE for(i=0; inVtabLock; i++){ @@ -92123,7 +92987,7 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ } /* Finally, jump back to the beginning of the executable code. */ - sqlite3VdbeAddOp2(v, OP_Goto, 0, 1); + sqlite3VdbeGoto(v, 1); } } @@ -92258,6 +93122,17 @@ SQLITE_PRIVATE Table *sqlite3LocateTable( p = sqlite3FindTable(pParse->db, zName, zDbase); if( p==0 ){ const char *zMsg = isView ? "no such view" : "no such table"; +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( sqlite3FindDbName(pParse->db, zDbase)<1 ){ + /* If zName is the not the name of a table in the schema created using + ** CREATE, then check to see if it is the name of an virtual table that + ** can be an eponymous virtual table. */ + Module *pMod = (Module*)sqlite3HashFind(&pParse->db->aModule, zName); + if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){ + return pMod->pEpoTab; + } + } +#endif if( zDbase ){ sqlite3ErrorMsg(pParse, "%s: %s.%s", zMsg, zDbase, zName); }else{ @@ -92265,7 +93140,7 @@ SQLITE_PRIVATE Table *sqlite3LocateTable( } pParse->checkSchema = 1; } -#if SQLITE_USER_AUTHENICATION +#if SQLITE_USER_AUTHENTICATION else if( pParse->db->auth.authLevelpPartIdxWhere); + sqlite3ExprListDelete(db, p->aColExpr); sqlite3DbFree(db, p->zColAff); if( p->isResized ) sqlite3DbFree(db, p->azColl); #ifdef SQLITE_ENABLE_STAT3_OR_STAT4 @@ -92462,7 +93338,7 @@ SQLITE_PRIVATE void sqlite3CommitInternalChanges(sqlite3 *db){ ** Delete memory allocated for the column names of a table or view (the ** Table.aCol[] array). */ -static void sqliteDeleteColumnNames(sqlite3 *db, Table *pTable){ +SQLITE_PRIVATE void sqlite3DeleteColumnNames(sqlite3 *db, Table *pTable){ int i; Column *pCol; assert( pTable!=0 ); @@ -92529,13 +93405,11 @@ SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3 *db, Table *pTable){ /* Delete the Table structure itself. */ - sqliteDeleteColumnNames(db, pTable); + sqlite3DeleteColumnNames(db, pTable); sqlite3DbFree(db, pTable->zName); sqlite3DbFree(db, pTable->zColAff); sqlite3SelectDelete(db, pTable->pSelect); -#ifndef SQLITE_OMIT_CHECK sqlite3ExprListDelete(db, pTable->pCheck); -#endif #ifndef SQLITE_OMIT_VIRTUALTABLE sqlite3VtabClear(db, pTable); #endif @@ -92875,9 +93749,11 @@ SQLITE_PRIVATE void sqlite3StartTable( ** now. */ if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){ - int j1; + int addr1; int fileFormat; int reg1, reg2, reg3; + /* nullRow[] is an OP_Record encoding of a row containing 5 NULLs */ + static const char nullRow[] = { 6, 0, 0, 0, 0, 0 }; sqlite3BeginWriteOperation(pParse, 1, iDb); #ifndef SQLITE_OMIT_VIRTUALTABLE @@ -92894,14 +93770,14 @@ SQLITE_PRIVATE void sqlite3StartTable( reg3 = ++pParse->nMem; sqlite3VdbeAddOp3(v, OP_ReadCookie, iDb, reg3, BTREE_FILE_FORMAT); sqlite3VdbeUsesBtree(v, iDb); - j1 = sqlite3VdbeAddOp1(v, OP_If, reg3); VdbeCoverage(v); + addr1 = sqlite3VdbeAddOp1(v, OP_If, reg3); VdbeCoverage(v); fileFormat = (db->flags & SQLITE_LegacyFileFmt)!=0 ? 1 : SQLITE_MAX_FILE_FORMAT; sqlite3VdbeAddOp2(v, OP_Integer, fileFormat, reg3); sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, reg3); sqlite3VdbeAddOp2(v, OP_Integer, ENC(db), reg3); sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_TEXT_ENCODING, reg3); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); /* This just creates a place-holder record in the sqlite_master table. ** The record created does not contain anything yet. It will be replaced @@ -92922,7 +93798,7 @@ SQLITE_PRIVATE void sqlite3StartTable( } sqlite3OpenMasterTable(pParse, iDb); sqlite3VdbeAddOp2(v, OP_NewRowid, 0, reg1); - sqlite3VdbeAddOp2(v, OP_Null, 0, reg3); + sqlite3VdbeAddOp4(v, OP_Blob, 6, reg3, 0, nullRow, P4_STATIC); sqlite3VdbeAddOp3(v, OP_Insert, 0, reg3, reg1); sqlite3VdbeChangeP5(v, OPFLAG_APPEND); sqlite3VdbeAddOp0(v, OP_Close); @@ -93159,6 +94035,30 @@ SQLITE_PRIVATE void sqlite3AddDefaultValue(Parse *pParse, ExprSpan *pSpan){ sqlite3ExprDelete(db, pSpan->pExpr); } +/* +** Backwards Compatibility Hack: +** +** Historical versions of SQLite accepted strings as column names in +** indexes and PRIMARY KEY constraints and in UNIQUE constraints. Example: +** +** CREATE TABLE xyz(a,b,c,d,e,PRIMARY KEY('a'),UNIQUE('b','c' COLLATE trim) +** CREATE INDEX abc ON xyz('c','d' DESC,'e' COLLATE nocase DESC); +** +** This is goofy. But to preserve backwards compatibility we continue to +** accept it. This routine does the necessary conversion. It converts +** the expression given in its argument from a TK_STRING into a TK_ID +** if the expression is just a TK_STRING with an optional COLLATE clause. +** If the epxression is anything other than TK_STRING, the expression is +** unchanged. +*/ +static void sqlite3StringToId(Expr *p){ + if( p->op==TK_STRING ){ + p->op = TK_ID; + }else if( p->op==TK_COLLATE && p->pLeft->op==TK_STRING ){ + p->pLeft->op = TK_ID; + } +} + /* ** Designate the PRIMARY KEY for the table. pList is a list of names ** of columns that form the primary key. If pList is NULL, then the @@ -93203,18 +94103,24 @@ SQLITE_PRIVATE void sqlite3AddPrimaryKey( }else{ nTerm = pList->nExpr; for(i=0; inCol; iCol++){ - if( sqlite3StrICmp(pList->a[i].zName, pTab->aCol[iCol].zName)==0 ){ - pTab->aCol[iCol].colFlags |= COLFLAG_PRIMKEY; - zType = pTab->aCol[iCol].zType; - break; + Expr *pCExpr = sqlite3ExprSkipCollate(pList->a[i].pExpr); + assert( pCExpr!=0 ); + sqlite3StringToId(pCExpr); + if( pCExpr->op==TK_ID ){ + const char *zCName = pCExpr->u.zToken; + for(iCol=0; iColnCol; iCol++){ + if( sqlite3StrICmp(zCName, pTab->aCol[iCol].zName)==0 ){ + pTab->aCol[iCol].colFlags |= COLFLAG_PRIMKEY; + zType = pTab->aCol[iCol].zType; + break; + } } } } } if( nTerm==1 && zType && sqlite3StrICmp(zType, "INTEGER")==0 - && sortOrder==SQLITE_SO_ASC + && sortOrder!=SQLITE_SO_DESC ){ pTab->iPKey = iCol; pTab->keyConf = (u8)onError; @@ -93581,7 +94487,7 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ */ if( pParse->addrCrTab ){ assert( v ); - sqlite3VdbeGetOp(v, pParse->addrCrTab)->opcode = OP_CreateIndex; + sqlite3VdbeChangeOpcode(v, pParse->addrCrTab, OP_CreateIndex); } /* Locate the PRIMARY KEY index. Or, if this table was originally @@ -93589,10 +94495,12 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ */ if( pTab->iPKey>=0 ){ ExprList *pList; - pList = sqlite3ExprListAppend(pParse, 0, 0); + Token ipkToken; + ipkToken.z = pTab->aCol[pTab->iPKey].zName; + ipkToken.n = sqlite3Strlen30(ipkToken.z); + pList = sqlite3ExprListAppend(pParse, 0, + sqlite3ExprAlloc(db, TK_ID, &ipkToken, 0)); if( pList==0 ) return; - pList->a[0].zName = sqlite3DbStrDup(pParse->db, - pTab->aCol[pTab->iPKey].zName); pList->a[0].sortOrder = pParse->iPkSortOrder; assert( pParse->pNewTable==pTab ); pPk = sqlite3CreateIndex(pParse, 0, 0, 0, pList, pTab->keyConf, 0, 0, 0, 0); @@ -93608,7 +94516,7 @@ static void convertToWithoutRowidTable(Parse *pParse, Table *pTab){ ** a database schema). */ if( v ){ assert( db->init.busy==0 ); - sqlite3VdbeGetOp(v, pPk->tnum)->opcode = OP_Goto; + sqlite3VdbeChangeOpcode(v, pPk->tnum, OP_Goto); } /* @@ -93718,9 +94626,10 @@ SQLITE_PRIVATE void sqlite3EndTable( int iDb; /* Database in which the table lives */ Index *pIdx; /* An implied index of the table */ - if( (pEnd==0 && pSelect==0) || db->mallocFailed ){ + if( pEnd==0 && pSelect==0 ){ return; } + assert( !db->mallocFailed ); p = pParse->pNewTable; if( p==0 ) return; @@ -93851,7 +94760,7 @@ SQLITE_PRIVATE void sqlite3EndTable( sqlite3TableAffinity(v, p, 0); sqlite3VdbeAddOp2(v, OP_NewRowid, 1, regRowid); sqlite3VdbeAddOp3(v, OP_Insert, 1, regRec, regRowid); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrInsLoop); + sqlite3VdbeGoto(v, addrInsLoop); sqlite3VdbeJumpHere(v, addrInsLoop); sqlite3VdbeAddOp1(v, OP_Close, 1); } @@ -93948,6 +94857,7 @@ SQLITE_PRIVATE void sqlite3CreateView( Token *pBegin, /* The CREATE token that begins the statement */ Token *pName1, /* The token that holds the name of the view */ Token *pName2, /* The token that holds the name of the view */ + ExprList *pCNames, /* Optional list of view column names */ Select *pSelect, /* A SELECT statement that will become the new view */ int isTemp, /* TRUE for a TEMPORARY view */ int noErr /* Suppress error messages if VIEW already exists */ @@ -93963,22 +94873,15 @@ SQLITE_PRIVATE void sqlite3CreateView( if( pParse->nVar>0 ){ sqlite3ErrorMsg(pParse, "parameters are not allowed in views"); - sqlite3SelectDelete(db, pSelect); - return; + goto create_view_fail; } sqlite3StartTable(pParse, pName1, pName2, isTemp, 1, 0, noErr); p = pParse->pNewTable; - if( p==0 || pParse->nErr ){ - sqlite3SelectDelete(db, pSelect); - return; - } + if( p==0 || pParse->nErr ) goto create_view_fail; sqlite3TwoPartName(pParse, pName1, pName2, &pName); iDb = sqlite3SchemaToIndex(db, p->pSchema); sqlite3FixInit(&sFix, pParse, iDb, "view", pName); - if( sqlite3FixSelect(&sFix, pSelect) ){ - sqlite3SelectDelete(db, pSelect); - return; - } + if( sqlite3FixSelect(&sFix, pSelect) ) goto create_view_fail; /* Make a copy of the entire SELECT statement that defines the view. ** This will force all the Expr.token.z values to be dynamically @@ -93986,30 +94889,31 @@ SQLITE_PRIVATE void sqlite3CreateView( ** they will persist after the current sqlite3_exec() call returns. */ p->pSelect = sqlite3SelectDup(db, pSelect, EXPRDUP_REDUCE); - sqlite3SelectDelete(db, pSelect); - if( db->mallocFailed ){ - return; - } - if( !db->init.busy ){ - sqlite3ViewGetColumnNames(pParse, p); - } + p->pCheck = sqlite3ExprListDup(db, pCNames, EXPRDUP_REDUCE); + if( db->mallocFailed ) goto create_view_fail; /* Locate the end of the CREATE VIEW statement. Make sEnd point to ** the end. */ sEnd = pParse->sLastToken; - if( ALWAYS(sEnd.z[0]!=0) && sEnd.z[0]!=';' ){ + assert( sEnd.z[0]!=0 ); + if( sEnd.z[0]!=';' ){ sEnd.z += sEnd.n; } sEnd.n = 0; n = (int)(sEnd.z - pBegin->z); + assert( n>0 ); z = pBegin->z; - while( ALWAYS(n>0) && sqlite3Isspace(z[n-1]) ){ n--; } + while( sqlite3Isspace(z[n-1]) ){ n--; } sEnd.z = &z[n-1]; sEnd.n = 1; /* Use sqlite3EndTable() to add the view to the SQLITE_MASTER table */ sqlite3EndTable(pParse, 0, &sEnd, 0, 0); + +create_view_fail: + sqlite3SelectDelete(db, pSelect); + sqlite3ExprListDelete(db, pCNames); return; } #endif /* SQLITE_OMIT_VIEW */ @@ -94027,6 +94931,7 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ int n; /* Temporarily holds the number of cursors assigned */ sqlite3 *db = pParse->db; /* Database connection for malloc errors */ sqlite3_xauth xAuth; /* Saved xAuth pointer */ + u8 bEnabledLA; /* Saved db->lookaside.bEnabled state */ assert( pTable ); @@ -94072,40 +94977,46 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ ** statement that defines the view. */ assert( pTable->pSelect ); - pSel = sqlite3SelectDup(db, pTable->pSelect, 0); - if( pSel ){ - u8 enableLookaside = db->lookaside.bEnabled; - n = pParse->nTab; - sqlite3SrcListAssignCursors(pParse, pSel->pSrc); - pTable->nCol = -1; + bEnabledLA = db->lookaside.bEnabled; + if( pTable->pCheck ){ db->lookaside.bEnabled = 0; + sqlite3ColumnsFromExprList(pParse, pTable->pCheck, + &pTable->nCol, &pTable->aCol); + }else{ + pSel = sqlite3SelectDup(db, pTable->pSelect, 0); + if( pSel ){ + n = pParse->nTab; + sqlite3SrcListAssignCursors(pParse, pSel->pSrc); + pTable->nCol = -1; + db->lookaside.bEnabled = 0; #ifndef SQLITE_OMIT_AUTHORIZATION - xAuth = db->xAuth; - db->xAuth = 0; - pSelTab = sqlite3ResultSetOfSelect(pParse, pSel); - db->xAuth = xAuth; + xAuth = db->xAuth; + db->xAuth = 0; + pSelTab = sqlite3ResultSetOfSelect(pParse, pSel); + db->xAuth = xAuth; #else - pSelTab = sqlite3ResultSetOfSelect(pParse, pSel); + pSelTab = sqlite3ResultSetOfSelect(pParse, pSel); #endif - db->lookaside.bEnabled = enableLookaside; - pParse->nTab = n; - if( pSelTab ){ - assert( pTable->aCol==0 ); - pTable->nCol = pSelTab->nCol; - pTable->aCol = pSelTab->aCol; - pSelTab->nCol = 0; - pSelTab->aCol = 0; - sqlite3DeleteTable(db, pSelTab); - assert( sqlite3SchemaMutexHeld(db, 0, pTable->pSchema) ); - pTable->pSchema->schemaFlags |= DB_UnresetViews; - }else{ - pTable->nCol = 0; + pParse->nTab = n; + if( pSelTab ){ + assert( pTable->aCol==0 ); + pTable->nCol = pSelTab->nCol; + pTable->aCol = pSelTab->aCol; + pSelTab->nCol = 0; + pSelTab->aCol = 0; + sqlite3DeleteTable(db, pSelTab); + assert( sqlite3SchemaMutexHeld(db, 0, pTable->pSchema) ); + }else{ + pTable->nCol = 0; + nErr++; + } + sqlite3SelectDelete(db, pSel); + } else { nErr++; } - sqlite3SelectDelete(db, pSel); - } else { - nErr++; } + db->lookaside.bEnabled = bEnabledLA; + pTable->pSchema->schemaFlags |= DB_UnresetViews; #endif /* SQLITE_OMIT_VIEW */ return nErr; } @@ -94122,7 +95033,7 @@ static void sqliteViewResetAll(sqlite3 *db, int idx){ for(i=sqliteHashFirst(&db->aDb[idx].pSchema->tblHash); i;i=sqliteHashNext(i)){ Table *pTab = sqliteHashData(i); if( pTab->pSelect ){ - sqliteDeleteColumnNames(db, pTab); + sqlite3DeleteColumnNames(db, pTab); pTab->aCol = 0; pTab->nCol = 0; } @@ -94677,7 +95588,7 @@ static void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage){ assert( pKey!=0 || db->mallocFailed || pParse->nErr ); if( IsUniqueIndex(pIndex) && pKey!=0 ){ int j2 = sqlite3VdbeCurrentAddr(v) + 3; - sqlite3VdbeAddOp2(v, OP_Goto, 0, j2); + sqlite3VdbeGoto(v, j2); addr2 = sqlite3VdbeCurrentAddr(v); sqlite3VdbeAddOp4Int(v, OP_SorterCompare, iSorter, j2, regRecord, pIndex->nKeyCol); VdbeCoverage(v); @@ -94774,7 +95685,6 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( int iDb; /* Index of the database that is being written */ Token *pName = 0; /* Unqualified name of the index to create */ struct ExprList_item *pListItem; /* For looping over pList */ - const Column *pTabCol; /* A column in the table */ int nExtra = 0; /* Space allocated for zExtra[] */ int nExtraCol; /* Number of extra columns needed */ char *zExtra = 0; /* Extra space after the Index object */ @@ -94929,11 +95839,16 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( ** So create a fake list to simulate this. */ if( pList==0 ){ - pList = sqlite3ExprListAppend(pParse, 0, 0); + Token prevCol; + prevCol.z = pTab->aCol[pTab->nCol-1].zName; + prevCol.n = sqlite3Strlen30(prevCol.z); + pList = sqlite3ExprListAppend(pParse, 0, + sqlite3ExprAlloc(db, TK_ID, &prevCol, 0)); if( pList==0 ) goto exit_create_index; - pList->a[0].zName = sqlite3DbStrDup(pParse->db, - pTab->aCol[pTab->nCol-1].zName); - pList->a[0].sortOrder = (u8)sortOrder; + assert( pList->nExpr==1 ); + sqlite3ExprListSetSortOrder(pList, sortOrder); + }else{ + sqlite3ExprListCheckLength(pParse, pList, "index"); } /* Figure out how many bytes of space are required to store explicitly @@ -94941,8 +95856,8 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( */ for(i=0; inExpr; i++){ Expr *pExpr = pList->a[i].pExpr; - if( pExpr ){ - assert( pExpr->op==TK_COLLATE ); + assert( pExpr!=0 ); + if( pExpr->op==TK_COLLATE ){ nExtra += (1 + sqlite3Strlen30(pExpr->u.zToken)); } } @@ -94983,35 +95898,54 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( sortOrderMask = 0; /* Ignore DESC */ } - /* Scan the names of the columns of the table to be indexed and - ** load the column indices into the Index structure. Report an error - ** if any column is not found. + /* Analyze the list of expressions that form the terms of the index and + ** report any errors. In the common case where the expression is exactly + ** a table column, store that column in aiColumn[]. For general expressions, + ** populate pIndex->aColExpr and store XN_EXPR (-2) in aiColumn[]. ** - ** TODO: Add a test to make sure that the same column is not named - ** more than once within the same index. Only the first instance of - ** the column will ever be used by the optimizer. Note that using the - ** same column more than once cannot be an error because that would - ** break backwards compatibility - it needs to be a warning. + ** TODO: Issue a warning if two or more columns of the index are identical. + ** TODO: Issue a warning if the table primary key is used as part of the + ** index key. */ for(i=0, pListItem=pList->a; inExpr; i++, pListItem++){ - const char *zColName = pListItem->zName; - int requestedSortOrder; + Expr *pCExpr; /* The i-th index expression */ + int requestedSortOrder; /* ASC or DESC on the i-th expression */ char *zColl; /* Collation sequence name */ - for(j=0, pTabCol=pTab->aCol; jnCol; j++, pTabCol++){ - if( sqlite3StrICmp(zColName, pTabCol->zName)==0 ) break; + sqlite3StringToId(pListItem->pExpr); + sqlite3ResolveSelfReference(pParse, pTab, NC_IdxExpr, pListItem->pExpr, 0); + if( pParse->nErr ) goto exit_create_index; + pCExpr = sqlite3ExprSkipCollate(pListItem->pExpr); + if( pCExpr->op!=TK_COLUMN ){ + if( pTab==pParse->pNewTable ){ + sqlite3ErrorMsg(pParse, "expressions prohibited in PRIMARY KEY and " + "UNIQUE constraints"); + goto exit_create_index; + } + if( pIndex->aColExpr==0 ){ + ExprList *pCopy = sqlite3ExprListDup(db, pList, 0); + pIndex->aColExpr = pCopy; + if( !db->mallocFailed ){ + assert( pCopy!=0 ); + pListItem = &pCopy->a[i]; + } + } + j = XN_EXPR; + pIndex->aiColumn[i] = XN_EXPR; + pIndex->uniqNotNull = 0; + }else{ + j = pCExpr->iColumn; + assert( j<=0x7fff ); + if( j<0 ){ + j = pTab->iPKey; + }else if( pTab->aCol[j].notNull==0 ){ + pIndex->uniqNotNull = 0; + } + pIndex->aiColumn[i] = (i16)j; } - if( j>=pTab->nCol ){ - sqlite3ErrorMsg(pParse, "table %s has no column named %s", - pTab->zName, zColName); - pParse->checkSchema = 1; - goto exit_create_index; - } - assert( j<=0x7fff ); - pIndex->aiColumn[i] = (i16)j; - if( pListItem->pExpr ){ + zColl = 0; + if( pListItem->pExpr->op==TK_COLLATE ){ int nColl; - assert( pListItem->pExpr->op==TK_COLLATE ); zColl = pListItem->pExpr->u.zToken; nColl = sqlite3Strlen30(zColl) + 1; assert( nExtra>=nColl ); @@ -95019,21 +95953,26 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( zColl = zExtra; zExtra += nColl; nExtra -= nColl; - }else{ + }else if( j>=0 ){ zColl = pTab->aCol[j].zColl; - if( !zColl ) zColl = "BINARY"; } + if( !zColl ) zColl = "BINARY"; if( !db->init.busy && !sqlite3LocateCollSeq(pParse, zColl) ){ goto exit_create_index; } pIndex->azColl[i] = zColl; requestedSortOrder = pListItem->sortOrder & sortOrderMask; pIndex->aSortOrder[i] = (u8)requestedSortOrder; - if( pTab->aCol[j].notNull==0 ) pIndex->uniqNotNull = 0; } + + /* Append the table key to the end of the index. For WITHOUT ROWID + ** tables (when pPk!=0) this will be the declared PRIMARY KEY. For + ** normal tables (when pPk==0) this will be the rowid. + */ if( pPk ){ for(j=0; jnKeyCol; j++){ int x = pPk->aiColumn[j]; + assert( x>=0 ); if( hasColumn(pIndex->aiColumn, pIndex->nKeyCol, x) ){ pIndex->nColumn--; }else{ @@ -95045,7 +95984,7 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( } assert( i==pIndex->nColumn ); }else{ - pIndex->aiColumn[i] = -1; + pIndex->aiColumn[i] = XN_ROWID; pIndex->azColl[i] = "BINARY"; } sqlite3DefaultRowEst(pIndex); @@ -95084,6 +96023,7 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( for(k=0; knKeyCol; k++){ const char *z1; const char *z2; + assert( pIdx->aiColumn[k]>=0 ); if( pIdx->aiColumn[k]!=pIndex->aiColumn[k] ) break; z1 = pIdx->azColl[k]; z2 = pIndex->azColl[k]; @@ -95115,6 +96055,7 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( /* Link the new Index structure to its table and to the other ** in-memory database structures. */ + assert( pParse->nErr==0 ); if( db->init.busy ){ Index *p; assert( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) ); @@ -95144,7 +96085,7 @@ SQLITE_PRIVATE Index *sqlite3CreateIndex( ** has just been created, it contains no data and the index initialization ** step can be skipped. */ - else if( pParse->nErr==0 && (HasRowid(pTab) || pTblName!=0) ){ + else if( HasRowid(pTab) || pTblName!=0 ){ Vdbe *v; char *zStmt; int iMem = ++pParse->nMem; @@ -95604,7 +96545,8 @@ SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *db, SrcList *pList){ sqlite3DbFree(db, pItem->zDatabase); sqlite3DbFree(db, pItem->zName); sqlite3DbFree(db, pItem->zAlias); - sqlite3DbFree(db, pItem->zIndexedBy); + if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy); + if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg); sqlite3DeleteTable(db, pItem->pTab); sqlite3SelectDelete(db, pItem->pSelect); sqlite3ExprDelete(db, pItem->pOn); @@ -95677,17 +96619,37 @@ SQLITE_PRIVATE void sqlite3SrcListIndexedBy(Parse *pParse, SrcList *p, Token *pI assert( pIndexedBy!=0 ); if( p && ALWAYS(p->nSrc>0) ){ struct SrcList_item *pItem = &p->a[p->nSrc-1]; - assert( pItem->notIndexed==0 && pItem->zIndexedBy==0 ); + assert( pItem->fg.notIndexed==0 ); + assert( pItem->fg.isIndexedBy==0 ); + assert( pItem->fg.isTabFunc==0 ); if( pIndexedBy->n==1 && !pIndexedBy->z ){ /* A "NOT INDEXED" clause was supplied. See parse.y ** construct "indexed_opt" for details. */ - pItem->notIndexed = 1; + pItem->fg.notIndexed = 1; }else{ - pItem->zIndexedBy = sqlite3NameFromToken(pParse->db, pIndexedBy); + pItem->u1.zIndexedBy = sqlite3NameFromToken(pParse->db, pIndexedBy); + pItem->fg.isIndexedBy = (pItem->u1.zIndexedBy!=0); } } } +/* +** Add the list of function arguments to the SrcList entry for a +** table-valued-function. +*/ +SQLITE_PRIVATE void sqlite3SrcListFuncArgs(Parse *pParse, SrcList *p, ExprList *pList){ + if( p && pList ){ + struct SrcList_item *pItem = &p->a[p->nSrc-1]; + assert( pItem->fg.notIndexed==0 ); + assert( pItem->fg.isIndexedBy==0 ); + assert( pItem->fg.isTabFunc==0 ); + pItem->u1.pFuncArg = pList; + pItem->fg.isTabFunc = 1; + }else{ + sqlite3ExprListDelete(pParse->db, pList); + } +} + /* ** When building up a FROM clause in the parser, the join operator ** is initially attached to the left operand. But the code generator @@ -95707,9 +96669,9 @@ SQLITE_PRIVATE void sqlite3SrcListShiftJoinType(SrcList *p){ if( p ){ int i; for(i=p->nSrc-1; i>0; i--){ - p->a[i].jointype = p->a[i-1].jointype; + p->a[i].fg.jointype = p->a[i-1].fg.jointype; } - p->a[0].jointype = 0; + p->a[0].fg.jointype = 0; } } @@ -95953,12 +96915,16 @@ SQLITE_PRIVATE void sqlite3UniqueConstraint( Table *pTab = pIdx->pTable; sqlite3StrAccumInit(&errMsg, pParse->db, 0, 0, 200); - for(j=0; jnKeyCol; j++){ - char *zCol = pTab->aCol[pIdx->aiColumn[j]].zName; - if( j ) sqlite3StrAccumAppend(&errMsg, ", ", 2); - sqlite3StrAccumAppendAll(&errMsg, pTab->zName); - sqlite3StrAccumAppend(&errMsg, ".", 1); - sqlite3StrAccumAppendAll(&errMsg, zCol); + if( pIdx->aColExpr ){ + sqlite3XPrintf(&errMsg, 0, "index '%q'", pIdx->zName); + }else{ + for(j=0; jnKeyCol; j++){ + char *zCol; + assert( pIdx->aiColumn[j]>=0 ); + zCol = pTab->aCol[pIdx->aiColumn[j]].zName; + if( j ) sqlite3StrAccumAppend(&errMsg, ", ", 2); + sqlite3XPrintf(&errMsg, 0, "%s.%s", pTab->zName, zCol); + } } zErr = sqlite3StrAccumFinish(&errMsg); sqlite3HaltConstraint(pParse, @@ -96203,7 +97169,7 @@ SQLITE_PRIVATE With *sqlite3WithAdd( pNew->a[pNew->nCte].pSelect = pQuery; pNew->a[pNew->nCte].pCols = pArglist; pNew->a[pNew->nCte].zName = zName; - pNew->a[pNew->nCte].zErr = 0; + pNew->a[pNew->nCte].zCteErr = 0; pNew->nCte++; } @@ -96946,7 +97912,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( int iDb; /* Database number */ int memCnt = -1; /* Memory cell used for change counting */ int rcauth; /* Value returned by authorization callback */ - int okOnePass; /* True for one-pass algorithm without the FIFO */ + int eOnePass; /* ONEPASS_OFF or _SINGLE or _MULTI */ int aiCurOnePass[2]; /* The write cursors opened by WHERE_ONEPASS */ u8 *aToOpen = 0; /* Open cursor iTabCur+j if aToOpen[j] is true */ Index *pPk; /* The PRIMARY KEY index on the table */ @@ -96958,12 +97924,12 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( int iRowSet = 0; /* Register for rowset of rows to delete */ int addrBypass = 0; /* Address of jump over the delete logic */ int addrLoop = 0; /* Top of the delete loop */ - int addrDelete = 0; /* Jump directly to the delete logic */ int addrEphOpen = 0; /* Instruction to open the Ephemeral table */ #ifndef SQLITE_OMIT_TRIGGER int isView; /* True if attempting to delete from a view */ Trigger *pTrigger; /* List of table triggers, if required */ + int bComplex; /* True if there are either triggers or FKs */ #endif memset(&sContext, 0, sizeof(sContext)); @@ -96987,9 +97953,11 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( #ifndef SQLITE_OMIT_TRIGGER pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0); isView = pTab->pSelect!=0; + bComplex = pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0); #else # define pTrigger 0 # define isView 0 +# define bComplex 0 #endif #ifdef SQLITE_OMIT_VIEW # undef isView @@ -97070,8 +98038,10 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( ** It is easier just to erase the whole table. Prior to version 3.6.5, ** this optimization caused the row change count (the value returned by ** API function sqlite3_count_changes) to be set incorrectly. */ - if( rcauth==SQLITE_OK && pWhere==0 && !pTrigger && !IsVirtual(pTab) - && 0==sqlite3FkRequired(pParse, pTab, 0, 0) + if( rcauth==SQLITE_OK + && pWhere==0 + && !bComplex + && !IsVirtual(pTab) ){ assert( !isView ); sqlite3TableLock(pParse, iDb, pTab->tnum, 1, pTab->zName); @@ -97086,6 +98056,8 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( }else #endif /* SQLITE_OMIT_TRUNCATE_OPTIMIZATION */ { + u16 wcf = WHERE_ONEPASS_DESIRED|WHERE_DUPLICATES_OK; + wcf |= (bComplex ? 0 : WHERE_ONEPASS_MULTIROW); if( HasRowid(pTab) ){ /* For a rowid table, initialize the RowSet to an empty set */ pPk = 0; @@ -97106,13 +98078,18 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( } /* Construct a query to find the rowid or primary key for every row - ** to be deleted, based on the WHERE clause. + ** to be deleted, based on the WHERE clause. Set variable eOnePass + ** to indicate the strategy used to implement this delete: + ** + ** ONEPASS_OFF: Two-pass approach - use a FIFO for rowids/PK values. + ** ONEPASS_SINGLE: One-pass approach - at most one row deleted. + ** ONEPASS_MULTI: One-pass approach - any number of rows may be deleted. */ - pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0, 0, - WHERE_ONEPASS_DESIRED|WHERE_DUPLICATES_OK, - iTabCur+1); + pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, 0, 0, wcf, iTabCur+1); if( pWInfo==0 ) goto delete_from_cleanup; - okOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); + eOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); + assert( IsVirtual(pTab)==0 || eOnePass!=ONEPASS_MULTI ); + assert( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF ); /* Keep track of the number of rows to be deleted */ if( db->flags & SQLITE_CountRows ){ @@ -97122,6 +98099,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( /* Extract the rowid or primary key for the current row */ if( pPk ){ for(i=0; iaiColumn[i]>=0 ); sqlite3ExprCodeGetColumnOfTable(v, pTab, iTabCur, pPk->aiColumn[i], iPk+i); } @@ -97132,11 +98110,10 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( if( iKey>pParse->nMem ) pParse->nMem = iKey; } - if( okOnePass ){ - /* For ONEPASS, no need to store the rowid/primary-key. There is only + if( eOnePass!=ONEPASS_OFF ){ + /* For ONEPASS, no need to store the rowid/primary-key. There is only ** one, so just keep it in its register(s) and fall through to the - ** delete code. - */ + ** delete code. */ nKey = nPk; /* OP_Found will use an unpacked key */ aToOpen = sqlite3DbMallocRaw(db, nIdx+2); if( aToOpen==0 ){ @@ -97148,27 +98125,27 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iTabCur] = 0; if( aiCurOnePass[1]>=0 ) aToOpen[aiCurOnePass[1]-iTabCur] = 0; if( addrEphOpen ) sqlite3VdbeChangeToNoop(v, addrEphOpen); - addrDelete = sqlite3VdbeAddOp0(v, OP_Goto); /* Jump to DELETE logic */ - }else if( pPk ){ - /* Construct a composite key for the row to be deleted and remember it */ - iKey = ++pParse->nMem; - nKey = 0; /* Zero tells OP_Found to use a composite key */ - sqlite3VdbeAddOp4(v, OP_MakeRecord, iPk, nPk, iKey, - sqlite3IndexAffinityStr(v, pPk), nPk); - sqlite3VdbeAddOp2(v, OP_IdxInsert, iEphCur, iKey); }else{ - /* Get the rowid of the row to be deleted and remember it in the RowSet */ - nKey = 1; /* OP_Seek always uses a single rowid */ - sqlite3VdbeAddOp2(v, OP_RowSetAdd, iRowSet, iKey); + if( pPk ){ + /* Add the PK key for this row to the temporary table */ + iKey = ++pParse->nMem; + nKey = 0; /* Zero tells OP_Found to use a composite key */ + sqlite3VdbeAddOp4(v, OP_MakeRecord, iPk, nPk, iKey, + sqlite3IndexAffinityStr(pParse->db, pPk), nPk); + sqlite3VdbeAddOp2(v, OP_IdxInsert, iEphCur, iKey); + }else{ + /* Add the rowid of the row to be deleted to the RowSet */ + nKey = 1; /* OP_Seek always uses a single rowid */ + sqlite3VdbeAddOp2(v, OP_RowSetAdd, iRowSet, iKey); + } } - /* End of the WHERE loop */ - sqlite3WhereEnd(pWInfo); - if( okOnePass ){ - /* Bypass the delete logic below if the WHERE loop found zero rows */ + /* If this DELETE cannot use the ONEPASS strategy, this is the + ** end of the WHERE loop */ + if( eOnePass!=ONEPASS_OFF ){ addrBypass = sqlite3VdbeMakeLabel(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrBypass); - sqlite3VdbeJumpHere(v, addrDelete); + }else{ + sqlite3WhereEnd(pWInfo); } /* Unless this is a view, open cursors for the table we are @@ -97177,21 +98154,24 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( ** triggers. */ if( !isView ){ + int iAddrOnce = 0; + if( eOnePass==ONEPASS_MULTI ){ + iAddrOnce = sqlite3CodeOnce(pParse); VdbeCoverage(v); + } testcase( IsVirtual(pTab) ); sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, iTabCur, aToOpen, &iDataCur, &iIdxCur); assert( pPk || IsVirtual(pTab) || iDataCur==iTabCur ); assert( pPk || IsVirtual(pTab) || iIdxCur==iDataCur+1 ); + if( eOnePass==ONEPASS_MULTI ) sqlite3VdbeJumpHere(v, iAddrOnce); } /* Set up a loop over the rowids/primary-keys that were found in the ** where-clause loop above. */ - if( okOnePass ){ - /* Just one row. Hence the top-of-loop is a no-op */ + if( eOnePass!=ONEPASS_OFF ){ assert( nKey==nPk ); /* OP_Found will use an unpacked key */ - assert( !IsVirtual(pTab) ); - if( aToOpen[iDataCur-iTabCur] ){ + if( !IsVirtual(pTab) && aToOpen[iDataCur-iTabCur] ){ assert( pPk!=0 || pTab->pSelect!=0 ); sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, addrBypass, iKey, nKey); VdbeCoverage(v); @@ -97213,23 +98193,32 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( sqlite3VtabMakeWritable(pParse, pTab); sqlite3VdbeAddOp4(v, OP_VUpdate, 0, 1, iKey, pVTab, P4_VTAB); sqlite3VdbeChangeP5(v, OE_Abort); + assert( eOnePass==ONEPASS_OFF || eOnePass==ONEPASS_SINGLE ); sqlite3MayAbort(pParse); + if( eOnePass==ONEPASS_SINGLE && sqlite3IsToplevel(pParse) ){ + pParse->isMultiWrite = 0; + } }else #endif { int count = (pParse->nested==0); /* True to count changes */ + int iIdxNoSeek = -1; + if( bComplex==0 && aiCurOnePass[1]!=iDataCur ){ + iIdxNoSeek = aiCurOnePass[1]; + } sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, - iKey, nKey, count, OE_Default, okOnePass); + iKey, nKey, count, OE_Default, eOnePass, iIdxNoSeek); } /* End of the loop over all rowids/primary-keys. */ - if( okOnePass ){ + if( eOnePass!=ONEPASS_OFF ){ sqlite3VdbeResolveLabel(v, addrBypass); + sqlite3WhereEnd(pWInfo); }else if( pPk ){ sqlite3VdbeAddOp2(v, OP_Next, iEphCur, addrLoop+1); VdbeCoverage(v); sqlite3VdbeJumpHere(v, addrLoop); }else{ - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrLoop); + sqlite3VdbeGoto(v, addrLoop); sqlite3VdbeJumpHere(v, addrLoop); } @@ -97296,6 +98285,25 @@ delete_from_cleanup: ** sequence of nPk memory cells starting at iPk. If nPk==0 that means ** that a search record formed from OP_MakeRecord is contained in the ** single memory location iPk. +** +** eMode: +** Parameter eMode may be passed either ONEPASS_OFF (0), ONEPASS_SINGLE, or +** ONEPASS_MULTI. If eMode is not ONEPASS_OFF, then the cursor +** iDataCur already points to the row to delete. If eMode is ONEPASS_OFF +** then this function must seek iDataCur to the entry identified by iPk +** and nPk before reading from it. +** +** If eMode is ONEPASS_MULTI, then this call is being made as part +** of a ONEPASS delete that affects multiple rows. In this case, if +** iIdxNoSeek is a valid cursor number (>=0), then its position should +** be preserved following the delete operation. Or, if iIdxNoSeek is not +** a valid cursor number, the position of iDataCur should be preserved +** instead. +** +** iIdxNoSeek: +** If iIdxNoSeek is a valid cursor number (>=0), then it identifies an +** index cursor (from within array of cursors starting at iIdxCur) that +** already points to the index entry to be deleted. */ SQLITE_PRIVATE void sqlite3GenerateRowDelete( Parse *pParse, /* Parsing context */ @@ -97307,7 +98315,8 @@ SQLITE_PRIVATE void sqlite3GenerateRowDelete( i16 nPk, /* Number of PRIMARY KEY memory cells */ u8 count, /* If non-zero, increment the row change counter */ u8 onconf, /* Default ON CONFLICT policy for triggers */ - u8 bNoSeek /* iDataCur is already pointing to the row to delete */ + u8 eMode, /* ONEPASS_OFF, _SINGLE, or _MULTI. See above */ + int iIdxNoSeek /* Cursor number of cursor that does not need seeking */ ){ Vdbe *v = pParse->pVdbe; /* Vdbe */ int iOld = 0; /* First register in OLD.* array */ @@ -97324,7 +98333,7 @@ SQLITE_PRIVATE void sqlite3GenerateRowDelete( ** not attempt to delete it or fire any DELETE triggers. */ iLabel = sqlite3VdbeMakeLabel(v); opSeek = HasRowid(pTab) ? OP_NotExists : OP_NotFound; - if( !bNoSeek ){ + if( eMode==ONEPASS_OFF ){ sqlite3VdbeAddOp4Int(v, opSeek, iDataCur, iLabel, iPk, nPk); VdbeCoverageIf(v, opSeek==OP_NotExists); VdbeCoverageIf(v, opSeek==OP_NotFound); @@ -97384,11 +98393,15 @@ SQLITE_PRIVATE void sqlite3GenerateRowDelete( ** a view (in which case the only effect of the DELETE statement is to ** fire the INSTEAD OF triggers). */ if( pTab->pSelect==0 ){ - sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur, 0); + sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,iIdxNoSeek); sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, (count?OPFLAG_NCHANGE:0)); if( count ){ sqlite3VdbeChangeP4(v, -1, pTab->zName, P4_TRANSIENT); } + if( iIdxNoSeek>=0 ){ + sqlite3VdbeAddOp1(v, OP_Delete, iIdxNoSeek); + } + sqlite3VdbeChangeP5(v, eMode==ONEPASS_MULTI); } /* Do any ON CASCADE, SET NULL or SET DEFAULT operations required to @@ -97431,7 +98444,8 @@ SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete( Table *pTab, /* Table containing the row to be deleted */ int iDataCur, /* Cursor of table holding data. */ int iIdxCur, /* First index cursor */ - int *aRegIdx /* Only delete if aRegIdx!=0 && aRegIdx[i]>0 */ + int *aRegIdx, /* Only delete if aRegIdx!=0 && aRegIdx[i]>0 */ + int iIdxNoSeek /* Do not delete from this cursor */ ){ int i; /* Index loop counter */ int r1 = -1; /* Register holding an index key */ @@ -97447,11 +98461,12 @@ SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete( assert( iIdxCur+i!=iDataCur || pPk==pIdx ); if( aRegIdx!=0 && aRegIdx[i]==0 ) continue; if( pIdx==pPk ) continue; + if( iIdxCur+i==iIdxNoSeek ) continue; VdbeModuleComment((v, "GenRowIdxDel for %s", pIdx->zName)); r1 = sqlite3GenerateIndexKey(pParse, pIdx, iDataCur, 0, 1, - &iPartIdxLabel, pPrior, r1); + &iPartIdxLabel, pPrior, r1); sqlite3VdbeAddOp3(v, OP_IdxDelete, iIdxCur+i, r1, - pIdx->uniqNotNull ? pIdx->nKeyCol : pIdx->nColumn); + pIdx->uniqNotNull ? pIdx->nKeyCol : pIdx->nColumn); sqlite3ResolvePartIdxLabel(pParse, iPartIdxLabel); pPrior = pIdx; } @@ -97500,14 +98515,13 @@ SQLITE_PRIVATE int sqlite3GenerateIndexKey( ){ Vdbe *v = pParse->pVdbe; int j; - Table *pTab = pIdx->pTable; int regBase; int nCol; if( piPartIdxLabel ){ if( pIdx->pPartIdxWhere ){ *piPartIdxLabel = sqlite3VdbeMakeLabel(v); - pParse->iPartIdxTab = iDataCur; + pParse->iSelfTab = iDataCur; sqlite3ExprCachePush(pParse); sqlite3ExprIfFalseDup(pParse, pIdx->pPartIdxWhere, *piPartIdxLabel, SQLITE_JUMPIFNULL); @@ -97519,9 +98533,14 @@ SQLITE_PRIVATE int sqlite3GenerateIndexKey( regBase = sqlite3GetTempRange(pParse, nCol); if( pPrior && (regBase!=regPrior || pPrior->pPartIdxWhere) ) pPrior = 0; for(j=0; jaiColumn[j]==pIdx->aiColumn[j] ) continue; - sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, pIdx->aiColumn[j], - regBase+j); + if( pPrior + && pPrior->aiColumn[j]==pIdx->aiColumn[j] + && pPrior->aiColumn[j]!=XN_EXPR + ){ + /* This column was already computed by the previous index */ + continue; + } + sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iDataCur, j, regBase+j); /* If the column affinity is REAL but the number is an integer, then it ** might be stored in the table as an integer (using a compact ** representation) then converted to REAL by an OP_RealAffinity opcode. @@ -99290,15 +100309,15 @@ SQLITE_PRIVATE void sqlite3RegisterGlobalFunctions(void){ VFUNCTION(random, 0, 0, 0, randomFunc ), VFUNCTION(randomblob, 1, 0, 0, randomBlob ), FUNCTION(nullif, 2, 0, 1, nullifFunc ), - FUNCTION(sqlite_version, 0, 0, 0, versionFunc ), - FUNCTION(sqlite_source_id, 0, 0, 0, sourceidFunc ), + DFUNCTION(sqlite_version, 0, 0, 0, versionFunc ), + DFUNCTION(sqlite_source_id, 0, 0, 0, sourceidFunc ), FUNCTION(sqlite_log, 2, 0, 0, errlogFunc ), #if SQLITE_USER_AUTHENTICATION FUNCTION(sqlite_crypt, 2, 0, 0, sqlite3CryptFunc ), #endif #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS - FUNCTION(sqlite_compileoption_used,1, 0, 0, compileoptionusedFunc ), - FUNCTION(sqlite_compileoption_get, 1, 0, 0, compileoptiongetFunc ), + DFUNCTION(sqlite_compileoption_used,1, 0, 0, compileoptionusedFunc ), + DFUNCTION(sqlite_compileoption_get, 1, 0, 0, compileoptiongetFunc ), #endif /* SQLITE_OMIT_COMPILEOPTION_DIAGS */ FUNCTION(quote, 1, 0, 0, quoteFunc ), VFUNCTION(last_insert_rowid, 0, 0, 0, last_insert_rowid), @@ -99310,8 +100329,8 @@ SQLITE_PRIVATE void sqlite3RegisterGlobalFunctions(void){ FUNCTION(soundex, 1, 0, 0, soundexFunc ), #endif #ifndef SQLITE_OMIT_LOAD_EXTENSION - FUNCTION(load_extension, 1, 0, 0, loadExt ), - FUNCTION(load_extension, 2, 0, 0, loadExt ), + VFUNCTION(load_extension, 1, 0, 0, loadExt ), + VFUNCTION(load_extension, 2, 0, 0, loadExt ), #endif AGGREGATE(sum, 1, 0, 0, sumStep, sumFinalize ), AGGREGATE(total, 1, 0, 0, sumStep, totalFinalize ), @@ -99604,6 +100623,8 @@ SQLITE_PRIVATE int sqlite3FkLocateIndex( char *zDfltColl; /* Def. collation for column */ char *zIdxCol; /* Name of indexed column */ + if( iCol<0 ) break; /* No foreign keys against expression indexes */ + /* If the index uses a collation sequence that is different from ** the default collation sequence for the column, this index is ** unusable. Bail out early in this case. */ @@ -99726,7 +100747,7 @@ static void fkLookupParent( sqlite3OpenTable(pParse, iCur, iDb, pTab, OP_OpenRead); sqlite3VdbeAddOp3(v, OP_NotExists, iCur, 0, regTemp); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, iOk); + sqlite3VdbeGoto(v, iOk); sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2); sqlite3VdbeJumpHere(v, iMustBeInt); sqlite3ReleaseTempReg(pParse, regTemp); @@ -99756,6 +100777,7 @@ static void fkLookupParent( for(i=0; iaiColumn[i]+1+regData; + assert( pIdx->aiColumn[i]>=0 ); assert( aiCol[i]!=pTab->iPKey ); if( pIdx->aiColumn[i]==pTab->iPKey ){ /* The parent key is a composite key that includes the IPK column */ @@ -99764,11 +100786,11 @@ static void fkLookupParent( sqlite3VdbeAddOp3(v, OP_Ne, iChild, iJump, iParent); VdbeCoverage(v); sqlite3VdbeChangeP5(v, SQLITE_JUMPIFNULL); } - sqlite3VdbeAddOp2(v, OP_Goto, 0, iOk); + sqlite3VdbeGoto(v, iOk); } sqlite3VdbeAddOp4(v, OP_MakeRecord, regTemp, nCol, regRec, - sqlite3IndexAffinityStr(v,pIdx), nCol); + sqlite3IndexAffinityStr(pParse->db,pIdx), nCol); sqlite3VdbeAddOp4Int(v, OP_Found, iCur, iOk, regRec, 0); VdbeCoverage(v); sqlite3ReleaseTempReg(pParse, regRec); @@ -99964,6 +100986,7 @@ static void fkScanChildren( assert( pIdx!=0 ); for(i=0; inKeyCol; i++){ i16 iCol = pIdx->aiColumn[i]; + assert( iCol>=0 ); pLeft = exprTableRegister(pParse, pTab, regData, iCol); pRight = exprTableColumn(db, pTab, pSrc->a[0].iCursor, iCol); pEq = sqlite3PExpr(pParse, TK_EQ, pLeft, pRight, 0); @@ -100283,6 +101306,7 @@ SQLITE_PRIVATE void sqlite3FkCheck( if( aiCol[i]==pTab->iPKey ){ aiCol[i] = -1; } + assert( pIdx==0 || pIdx->aiColumn[i]>=0 ); #ifndef SQLITE_OMIT_AUTHORIZATION /* Request permission to read the parent key columns. If the ** authorization callback returns SQLITE_IGNORE, behave as if any @@ -100414,7 +101438,10 @@ SQLITE_PRIVATE u32 sqlite3FkOldmask( Index *pIdx = 0; sqlite3FkLocateIndex(pParse, pTab, p, &pIdx, 0); if( pIdx ){ - for(i=0; inKeyCol; i++) mask |= COLUMN_MASK(pIdx->aiColumn[i]); + for(i=0; inKeyCol; i++){ + assert( pIdx->aiColumn[i]>=0 ); + mask |= COLUMN_MASK(pIdx->aiColumn[i]); + } } } } @@ -100537,6 +101564,7 @@ static Trigger *fkActionTrigger( iFromCol = aiCol ? aiCol[i] : pFKey->aCol[0].iFrom; assert( iFromCol>=0 ); assert( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKeynCol) ); + assert( pIdx==0 || pIdx->aiColumn[i]>=0 ); tToCol.z = pTab->aCol[pIdx ? pIdx->aiColumn[i] : pTab->iPKey].zName; tFromCol.z = pFKey->pFrom->aCol[iFromCol].zName; @@ -100825,7 +101853,7 @@ SQLITE_PRIVATE void sqlite3OpenTable( ** is managed along with the rest of the Index structure. It will be ** released when sqlite3DeleteIndex() is called. */ -SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(Vdbe *v, Index *pIdx){ +SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(sqlite3 *db, Index *pIdx){ if( !pIdx->zColAff ){ /* The first time a column affinity string for a particular index is ** required, it is allocated and populated here. It is then stored as @@ -100837,7 +101865,6 @@ SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(Vdbe *v, Index *pIdx){ */ int n; Table *pTab = pIdx->pTable; - sqlite3 *db = sqlite3VdbeDb(v); pIdx->zColAff = (char *)sqlite3DbMallocRaw(0, pIdx->nColumn+1); if( !pIdx->zColAff ){ db->mallocFailed = 1; @@ -100845,7 +101872,18 @@ SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(Vdbe *v, Index *pIdx){ } for(n=0; nnColumn; n++){ i16 x = pIdx->aiColumn[n]; - pIdx->zColAff[n] = x<0 ? SQLITE_AFF_INTEGER : pTab->aCol[x].affinity; + if( x>=0 ){ + pIdx->zColAff[n] = pTab->aCol[x].affinity; + }else if( x==XN_ROWID ){ + pIdx->zColAff[n] = SQLITE_AFF_INTEGER; + }else{ + char aff; + assert( x==XN_EXPR ); + assert( pIdx->aColExpr!=0 ); + aff = sqlite3ExprAffinity(pIdx->aColExpr->a[n].pExpr); + if( aff==0 ) aff = SQLITE_AFF_BLOB; + pIdx->zColAff[n] = aff; + } } pIdx->zColAff[n] = 0; } @@ -101006,7 +102044,7 @@ SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse){ /* This routine is never called during trigger-generation. It is ** only called from the top-level */ assert( pParse->pTriggerTab==0 ); - assert( pParse==sqlite3ParseToplevel(pParse) ); + assert( sqlite3IsToplevel(pParse) ); assert( v ); /* We failed long ago if this is not so */ for(p = pParse->pAinc; p; p = p->pNext){ @@ -101016,14 +102054,14 @@ SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse){ sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenRead); sqlite3VdbeAddOp3(v, OP_Null, 0, memId, memId+1); addr = sqlite3VdbeCurrentAddr(v); - sqlite3VdbeAddOp4(v, OP_String8, 0, memId-1, 0, p->pTab->zName, 0); + sqlite3VdbeLoadString(v, memId-1, p->pTab->zName); sqlite3VdbeAddOp2(v, OP_Rewind, 0, addr+9); VdbeCoverage(v); sqlite3VdbeAddOp3(v, OP_Column, 0, 0, memId); sqlite3VdbeAddOp3(v, OP_Ne, memId-1, addr+7, memId); VdbeCoverage(v); sqlite3VdbeChangeP5(v, SQLITE_JUMPIFNULL); sqlite3VdbeAddOp2(v, OP_Rowid, 0, memId+1); sqlite3VdbeAddOp3(v, OP_Column, 0, 1, memId); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addr+9); + sqlite3VdbeGoto(v, addr+9); sqlite3VdbeAddOp2(v, OP_Next, 0, addr+2); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_Integer, 0, memId); sqlite3VdbeAddOp0(v, OP_Close); @@ -101059,16 +102097,16 @@ SQLITE_PRIVATE void sqlite3AutoincrementEnd(Parse *pParse){ assert( v ); for(p = pParse->pAinc; p; p = p->pNext){ Db *pDb = &db->aDb[p->iDb]; - int j1; + int addr1; int iRec; int memId = p->regCtr; iRec = sqlite3GetTempReg(pParse); assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) ); sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenWrite); - j1 = sqlite3VdbeAddOp1(v, OP_NotNull, memId+1); VdbeCoverage(v); + addr1 = sqlite3VdbeAddOp1(v, OP_NotNull, memId+1); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_NewRowid, 0, memId+1); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); sqlite3VdbeAddOp3(v, OP_MakeRecord, memId-1, 2, iRec); sqlite3VdbeAddOp3(v, OP_Insert, 0, iRec, memId+1); sqlite3VdbeChangeP5(v, OPFLAG_APPEND); @@ -101447,7 +102485,7 @@ SQLITE_PRIVATE void sqlite3Insert( sqlite3VdbeAddOp3(v, OP_MakeRecord, regFromSelect, nColumn, regRec); sqlite3VdbeAddOp2(v, OP_NewRowid, srcTab, regTempRowid); sqlite3VdbeAddOp3(v, OP_Insert, srcTab, regRec, regTempRowid); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrL); + sqlite3VdbeGoto(v, addrL); sqlite3VdbeJumpHere(v, addrL); sqlite3ReleaseTempReg(pParse, regRec); sqlite3ReleaseTempReg(pParse, regTempRowid); @@ -101461,11 +102499,13 @@ SQLITE_PRIVATE void sqlite3Insert( sNC.pParse = pParse; srcTab = -1; assert( useTempTable==0 ); - nColumn = pList ? pList->nExpr : 0; - for(i=0; ia[i].pExpr) ){ + if( pList ){ + nColumn = pList->nExpr; + if( sqlite3ResolveExprListNames(&sNC, pList) ){ goto insert_cleanup; } + }else{ + nColumn = 0; } } @@ -101558,7 +102598,7 @@ SQLITE_PRIVATE void sqlite3Insert( if( ipkColumn<0 ){ sqlite3VdbeAddOp2(v, OP_Integer, -1, regCols); }else{ - int j1; + int addr1; assert( !withoutRowid ); if( useTempTable ){ sqlite3VdbeAddOp3(v, OP_Column, srcTab, ipkColumn, regCols); @@ -101566,9 +102606,9 @@ SQLITE_PRIVATE void sqlite3Insert( assert( pSelect==0 ); /* Otherwise useTempTable is true */ sqlite3ExprCode(pParse, pList->a[ipkColumn].pExpr, regCols); } - j1 = sqlite3VdbeAddOp1(v, OP_NotNull, regCols); VdbeCoverage(v); + addr1 = sqlite3VdbeAddOp1(v, OP_NotNull, regCols); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_Integer, -1, regCols); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); sqlite3VdbeAddOp1(v, OP_MustBeInt, regCols); VdbeCoverage(v); } @@ -101642,14 +102682,14 @@ SQLITE_PRIVATE void sqlite3Insert( ** to generate a unique primary key value. */ if( !appendFlag ){ - int j1; + int addr1; if( !IsVirtual(pTab) ){ - j1 = sqlite3VdbeAddOp1(v, OP_NotNull, regRowid); VdbeCoverage(v); + addr1 = sqlite3VdbeAddOp1(v, OP_NotNull, regRowid); VdbeCoverage(v); sqlite3VdbeAddOp3(v, OP_NewRowid, iDataCur, regRowid, regAutoinc); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); }else{ - j1 = sqlite3VdbeCurrentAddr(v); - sqlite3VdbeAddOp2(v, OP_IsNull, regRowid, j1+2); VdbeCoverage(v); + addr1 = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp2(v, OP_IsNull, regRowid, addr1+2); VdbeCoverage(v); } sqlite3VdbeAddOp1(v, OP_MustBeInt, regRowid); VdbeCoverage(v); } @@ -101746,7 +102786,7 @@ SQLITE_PRIVATE void sqlite3Insert( sqlite3VdbeJumpHere(v, addrInsTop); sqlite3VdbeAddOp1(v, OP_Close, srcTab); }else if( pSelect ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrCont); + sqlite3VdbeGoto(v, addrCont); sqlite3VdbeJumpHere(v, addrInsTop); } @@ -101903,7 +102943,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( int ix; /* Index loop counter */ int nCol; /* Number of columns */ int onError; /* Conflict resolution strategy */ - int j1; /* Address of jump instruction */ + int addr1; /* Address of jump instruction */ int seenReplace = 0; /* True if REPLACE is used to resolve INT PK conflict */ int nPkField; /* Number of fields in PRIMARY KEY. 1 for ROWID tables */ int ipkTop = 0; /* Top of the rowid change constraint check */ @@ -101974,9 +103014,10 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( } default: { assert( onError==OE_Replace ); - j1 = sqlite3VdbeAddOp1(v, OP_NotNull, regNewData+1+i); VdbeCoverage(v); + addr1 = sqlite3VdbeAddOp1(v, OP_NotNull, regNewData+1+i); + VdbeCoverage(v); sqlite3ExprCode(pParse, pTab->aCol[i].pDflt, regNewData+1+i); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); break; } } @@ -101993,7 +103034,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( int allOk = sqlite3VdbeMakeLabel(v); sqlite3ExprIfTrue(pParse, pCheck->a[i].pExpr, allOk, SQLITE_JUMPIFNULL); if( onError==OE_Ignore ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, ignoreDest); + sqlite3VdbeGoto(v, ignoreDest); }else{ char *zName = pCheck->a[i].zName; if( zName==0 ) zName = pTab->zName; @@ -102091,17 +103132,20 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( if( pTrigger || sqlite3FkRequired(pParse, pTab, 0, 0) ){ sqlite3MultiWrite(pParse); sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, - regNewData, 1, 0, OE_Replace, 1); - }else if( pTab->pIndex ){ - sqlite3MultiWrite(pParse); - sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur, 0); + regNewData, 1, 0, OE_Replace, + ONEPASS_SINGLE, -1); + }else{ + if( pTab->pIndex ){ + sqlite3MultiWrite(pParse); + sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur,0,-1); + } } seenReplace = 1; break; } case OE_Ignore: { /*assert( seenReplace==0 );*/ - sqlite3VdbeAddOp2(v, OP_Goto, 0, ignoreDest); + sqlite3VdbeGoto(v, ignoreDest); break; } } @@ -102149,15 +103193,22 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( for(i=0; inColumn; i++){ int iField = pIdx->aiColumn[i]; int x; - if( iField<0 || iField==pTab->iPKey ){ - if( regRowid==regIdx+i ) continue; /* ROWID already in regIdx+i */ - x = regNewData; - regRowid = pIdx->pPartIdxWhere ? -1 : regIdx+i; + if( iField==XN_EXPR ){ + pParse->ckBase = regNewData+1; + sqlite3ExprCode(pParse, pIdx->aColExpr->a[i].pExpr, regIdx+i); + pParse->ckBase = 0; + VdbeComment((v, "%s column %d", pIdx->zName, i)); }else{ - x = iField + regNewData + 1; + if( iField==XN_ROWID || iField==pTab->iPKey ){ + if( regRowid==regIdx+i ) continue; /* ROWID already in regIdx+i */ + x = regNewData; + regRowid = pIdx->pPartIdxWhere ? -1 : regIdx+i; + }else{ + x = iField + regNewData + 1; + } + sqlite3VdbeAddOp2(v, OP_SCopy, x, regIdx+i); + VdbeComment((v, "%s", iField<0 ? "rowid" : pTab->aCol[iField].zName)); } - sqlite3VdbeAddOp2(v, OP_SCopy, x, regIdx+i); - VdbeComment((v, "%s", iField<0 ? "rowid" : pTab->aCol[iField].zName)); } sqlite3VdbeAddOp3(v, OP_MakeRecord, regIdx, pIdx->nColumn, aRegIdx[ix]); VdbeComment((v, "for %s", pIdx->zName)); @@ -102207,6 +103258,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( ** store it in registers regR..regR+nPk-1 */ if( pIdx!=pPk ){ for(i=0; inKeyCol; i++){ + assert( pPk->aiColumn[i]>=0 ); x = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[i]); sqlite3VdbeAddOp3(v, OP_Column, iThisCur, x, regR+i); VdbeComment((v, "%s.%s", pTab->zName, @@ -102228,6 +103280,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( for(i=0; inKeyCol; i++){ char *p4 = (char*)sqlite3LocateCollSeq(pParse, pPk->azColl[i]); x = pPk->aiColumn[i]; + assert( x>=0 ); if( i==(pPk->nKeyCol-1) ){ addrJump = addrUniqueOk; op = OP_Eq; @@ -102254,7 +103307,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( break; } case OE_Ignore: { - sqlite3VdbeAddOp2(v, OP_Goto, 0, ignoreDest); + sqlite3VdbeGoto(v, ignoreDest); break; } default: { @@ -102265,7 +103318,8 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( pTrigger = sqlite3TriggersExist(pParse, pTab, TK_DELETE, 0, 0); } sqlite3GenerateRowDelete(pParse, pTab, pTrigger, iDataCur, iIdxCur, - regR, nPkField, 0, OE_Replace, pIdx==pPk); + regR, nPkField, 0, OE_Replace, + (pIdx==pPk ? ONEPASS_SINGLE : ONEPASS_OFF), -1); seenReplace = 1; break; } @@ -102275,7 +103329,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( if( regR!=regIdx ) sqlite3ReleaseTempRange(pParse, regR, nPkField); } if( ipkTop ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, ipkTop+1); + sqlite3VdbeGoto(v, ipkTop+1); sqlite3VdbeJumpHere(v, ipkBottom); } @@ -102478,6 +103532,13 @@ static int xferCompatibleIndex(Index *pDest, Index *pSrc){ if( pSrc->aiColumn[i]!=pDest->aiColumn[i] ){ return 0; /* Different columns indexed */ } + if( pSrc->aiColumn[i]==XN_EXPR ){ + assert( pSrc->aColExpr!=0 && pDest->aColExpr!=0 ); + if( sqlite3ExprCompare(pSrc->aColExpr->a[i].pExpr, + pDest->aColExpr->a[i].pExpr, -1)!=0 ){ + return 0; /* Different expressions in the index */ + } + } if( pSrc->aSortOrder[i]!=pDest->aSortOrder[i] ){ return 0; /* Different sort orders */ } @@ -102721,7 +103782,7 @@ static int xferOptimization( ** (3) onError is something other than OE_Abort and OE_Rollback. */ addr1 = sqlite3VdbeAddOp2(v, OP_Rewind, iDest, 0); VdbeCoverage(v); - emptyDestTest = sqlite3VdbeAddOp2(v, OP_Goto, 0, 0); + emptyDestTest = sqlite3VdbeAddOp0(v, OP_Goto); sqlite3VdbeJumpHere(v, addr1); } if( HasRowid(pSrc) ){ @@ -103258,6 +104319,9 @@ struct sqlite3_api_routines { void (*value_free)(sqlite3_value*); int (*result_zeroblob64)(sqlite3_context*,sqlite3_uint64); int (*bind_zeroblob64)(sqlite3_stmt*, int, sqlite3_uint64); + /* Version 3.9.0 and later */ + unsigned int (*value_subtype)(sqlite3_value*); + void (*result_subtype)(sqlite3_context*,unsigned int); }; /* @@ -103271,7 +104335,7 @@ struct sqlite3_api_routines { ** the API. So the redefinition macros are only valid if the ** SQLITE_CORE macros is undefined. */ -#ifndef SQLITE_CORE +#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) #define sqlite3_aggregate_context sqlite3_api->aggregate_context #ifndef SQLITE_OMIT_DEPRECATED #define sqlite3_aggregate_count sqlite3_api->aggregate_count @@ -103398,6 +104462,7 @@ struct sqlite3_api_routines { #define sqlite3_value_text16le sqlite3_api->value_text16le #define sqlite3_value_type sqlite3_api->value_type #define sqlite3_vmprintf sqlite3_api->vmprintf +#define sqlite3_vsnprintf sqlite3_api->vsnprintf #define sqlite3_overload_function sqlite3_api->overload_function #define sqlite3_prepare_v2 sqlite3_api->prepare_v2 #define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2 @@ -103493,9 +104558,12 @@ struct sqlite3_api_routines { #define sqlite3_value_free sqlite3_api->value_free #define sqlite3_result_zeroblob64 sqlite3_api->result_zeroblob64 #define sqlite3_bind_zeroblob64 sqlite3_api->bind_zeroblob64 -#endif /* SQLITE_CORE */ +/* Version 3.9.0 and later */ +#define sqlite3_value_subtype sqlite3_api->value_subtype +#define sqlite3_result_subtype sqlite3_api->result_subtype +#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ -#ifndef SQLITE_CORE +#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) /* This case when the file really is being compiled as a loadable ** extension */ # define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0; @@ -103904,7 +104972,10 @@ static const sqlite3_api_routines sqlite3Apis = { (sqlite3_value*(*)(const sqlite3_value*))sqlite3_value_dup, sqlite3_value_free, sqlite3_result_zeroblob64, - sqlite3_bind_zeroblob64 + sqlite3_bind_zeroblob64, + /* Version 3.9.0 and later */ + sqlite3_value_subtype, + sqlite3_result_subtype }; /* @@ -104109,7 +105180,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_enable_load_extension(sqlite3 *db, int ono ** dummy pointer. */ #ifdef SQLITE_OMIT_LOAD_EXTENSION -static const sqlite3_api_routines sqlite3Apis = { 0 }; +static const sqlite3_api_routines sqlite3Apis; #endif @@ -104901,20 +105972,46 @@ static int changeTempStorage(Parse *pParse, const char *zStorageType){ } #endif /* SQLITE_PAGER_PRAGMAS */ +/* +** Set the names of the first N columns to the values in azCol[] +*/ +static void setAllColumnNames( + Vdbe *v, /* The query under construction */ + int N, /* Number of columns */ + const char **azCol /* Names of columns */ +){ + int i; + sqlite3VdbeSetNumCols(v, N); + for(i=0; inMem; - i64 *pI64 = sqlite3DbMallocRaw(pParse->db, sizeof(value)); - if( pI64 ){ - memcpy(pI64, &value, sizeof(value)); +static void returnSingleInt(Vdbe *v, const char *zLabel, i64 value){ + sqlite3VdbeAddOp4Dup8(v, OP_Int64, 0, 1, 0, (const u8*)&value, P4_INT64); + setOneColumnName(v, zLabel); + sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); +} + +/* +** Generate code to return a single text value. +*/ +static void returnSingleText( + Vdbe *v, /* Prepared statement under construction */ + const char *zLabel, /* Name of the result column */ + const char *zValue /* Value to be returned */ +){ + if( zValue ){ + sqlite3VdbeLoadString(v, 1, (const char*)zValue); + setOneColumnName(v, zLabel); + sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); } - sqlite3VdbeAddOp4(v, OP_Int64, 0, nMem, 0, (char*)pI64, P4_INT64); - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, zLabel, SQLITE_STATIC); - sqlite3VdbeAddOp2(v, OP_ResultRow, nMem, 1); } @@ -105078,14 +106175,8 @@ SQLITE_PRIVATE void sqlite3Pragma( db->busyHandler.nBusy = 0; rc = sqlite3_file_control(db, zDb, SQLITE_FCNTL_PRAGMA, (void*)aFcntl); if( rc==SQLITE_OK ){ - if( aFcntl[0] ){ - int nMem = ++pParse->nMem; - sqlite3VdbeAddOp4(v, OP_String8, 0, nMem, 0, aFcntl[0], 0); - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "result", SQLITE_STATIC); - sqlite3VdbeAddOp2(v, OP_ResultRow, nMem, 1); - sqlite3_free(aFcntl[0]); - } + returnSingleText(v, "result", aFcntl[0]); + sqlite3_free(aFcntl[0]); goto pragma_out; } if( rc!=SQLITE_NOTFOUND ){ @@ -105155,8 +106246,7 @@ SQLITE_PRIVATE void sqlite3Pragma( int addr; sqlite3VdbeUsesBtree(v, iDb); if( !zRight ){ - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "cache_size", SQLITE_STATIC); + setOneColumnName(v, "cache_size"); pParse->nMem += 2; addr = sqlite3VdbeAddOpList(v, ArraySize(getCacheSize), getCacheSize,iLn); sqlite3VdbeChangeP1(v, addr, iDb); @@ -105190,7 +106280,7 @@ SQLITE_PRIVATE void sqlite3Pragma( assert( pBt!=0 ); if( !zRight ){ int size = ALWAYS(pBt) ? sqlite3BtreeGetPageSize(pBt) : 0; - returnSingleInt(pParse, "page_size", size); + returnSingleInt(v, "page_size", size); }else{ /* Malloc may fail when setting the page-size, as there is an internal ** buffer that the pager module resizes using sqlite3_realloc(). @@ -105225,7 +106315,7 @@ SQLITE_PRIVATE void sqlite3Pragma( } } b = sqlite3BtreeSecureDelete(pBt, b); - returnSingleInt(pParse, "secure_delete", b); + returnSingleInt(v, "secure_delete", b); break; } @@ -105304,10 +106394,7 @@ SQLITE_PRIVATE void sqlite3Pragma( if( eMode==PAGER_LOCKINGMODE_EXCLUSIVE ){ zRet = "exclusive"; } - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "locking_mode", SQLITE_STATIC); - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, zRet, 0); - sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); + returnSingleText(v, "locking_mode", zRet); break; } @@ -105320,9 +106407,7 @@ SQLITE_PRIVATE void sqlite3Pragma( int eMode; /* One of the PAGER_JOURNALMODE_XXX symbols */ int ii; /* Loop counter */ - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "journal_mode", SQLITE_STATIC); - + setOneColumnName(v, "journal_mode"); if( zRight==0 ){ /* If there is no "=MODE" part of the pragma, do a query for the ** current mode */ @@ -105368,7 +106453,7 @@ SQLITE_PRIVATE void sqlite3Pragma( if( iLimit<-1 ) iLimit = -1; } iLimit = sqlite3PagerJournalSizeLimit(pPager, iLimit); - returnSingleInt(pParse, "journal_size_limit", iLimit); + returnSingleInt(v, "journal_size_limit", iLimit); break; } @@ -105386,7 +106471,7 @@ SQLITE_PRIVATE void sqlite3Pragma( Btree *pBt = pDb->pBt; assert( pBt!=0 ); if( !zRight ){ - returnSingleInt(pParse, "auto_vacuum", sqlite3BtreeGetAutoVacuum(pBt)); + returnSingleInt(v, "auto_vacuum", sqlite3BtreeGetAutoVacuum(pBt)); }else{ int eAuto = getAutoVacuum(zRight); assert( eAuto>=0 && eAuto<=2 ); @@ -105464,7 +106549,7 @@ SQLITE_PRIVATE void sqlite3Pragma( assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); if( !zRight ){ if( sqlite3ReadSchema(pParse) ) goto pragma_out; - returnSingleInt(pParse, "cache_size", pDb->pSchema->cache_size); + returnSingleInt(v, "cache_size", pDb->pSchema->cache_size); }else{ int size = sqlite3Atoi(zRight); pDb->pSchema->cache_size = size; @@ -105510,7 +106595,7 @@ SQLITE_PRIVATE void sqlite3Pragma( rc = SQLITE_OK; #endif if( rc==SQLITE_OK ){ - returnSingleInt(pParse, "mmap_size", sz); + returnSingleInt(v, "mmap_size", sz); }else if( rc!=SQLITE_NOTFOUND ){ pParse->nErr++; pParse->rc = rc; @@ -105531,7 +106616,7 @@ SQLITE_PRIVATE void sqlite3Pragma( */ case PragTyp_TEMP_STORE: { if( !zRight ){ - returnSingleInt(pParse, "temp_store", db->temp_store); + returnSingleInt(v, "temp_store", db->temp_store); }else{ changeTempStorage(pParse, zRight); } @@ -105550,13 +106635,7 @@ SQLITE_PRIVATE void sqlite3Pragma( */ case PragTyp_TEMP_STORE_DIRECTORY: { if( !zRight ){ - if( sqlite3_temp_directory ){ - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, - "temp_store_directory", SQLITE_STATIC); - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, sqlite3_temp_directory, 0); - sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); - } + returnSingleText(v, "temp_store_directory", sqlite3_temp_directory); }else{ #ifndef SQLITE_OMIT_WSD if( zRight[0] ){ @@ -105600,13 +106679,7 @@ SQLITE_PRIVATE void sqlite3Pragma( */ case PragTyp_DATA_STORE_DIRECTORY: { if( !zRight ){ - if( sqlite3_data_directory ){ - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, - "data_store_directory", SQLITE_STATIC); - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, sqlite3_data_directory, 0); - sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); - } + returnSingleText(v, "data_store_directory", sqlite3_data_directory); }else{ #ifndef SQLITE_OMIT_WSD if( zRight[0] ){ @@ -105645,14 +106718,7 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3_file *pFile = sqlite3PagerFile(pPager); sqlite3OsFileControlHint(pFile, SQLITE_GET_LOCKPROXYFILE, &proxy_file_path); - - if( proxy_file_path ){ - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, - "lock_proxy_file", SQLITE_STATIC); - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, proxy_file_path, 0); - sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); - } + returnSingleText(v, "lock_proxy_file", proxy_file_path); }else{ Pager *pPager = sqlite3BtreePager(pDb->pBt); sqlite3_file *pFile = sqlite3PagerFile(pPager); @@ -105684,7 +106750,7 @@ SQLITE_PRIVATE void sqlite3Pragma( */ case PragTyp_SYNCHRONOUS: { if( !zRight ){ - returnSingleInt(pParse, "synchronous", pDb->safety_level-1); + returnSingleInt(v, "synchronous", pDb->safety_level-1); }else{ if( !db->autoCommit ){ sqlite3ErrorMsg(pParse, @@ -105703,7 +106769,7 @@ SQLITE_PRIVATE void sqlite3Pragma( #ifndef SQLITE_OMIT_FLAG_PRAGMAS case PragTyp_FLAG: { if( zRight==0 ){ - returnSingleInt(pParse, pPragma->zName, (db->flags & pPragma->iArg)!=0 ); + returnSingleInt(v, pPragma->zName, (db->flags & pPragma->iArg)!=0 ); }else{ int mask = pPragma->iArg; /* Mask of bits to set or clear. */ if( db->autoCommit==0 ){ @@ -105753,35 +106819,22 @@ SQLITE_PRIVATE void sqlite3Pragma( Table *pTab; pTab = sqlite3FindTable(db, zRight, zDb); if( pTab ){ + static const char *azCol[] = { + "cid", "name", "type", "notnull", "dflt_value", "pk" + }; int i, k; int nHidden = 0; Column *pCol; Index *pPk = sqlite3PrimaryKeyIndex(pTab); - sqlite3VdbeSetNumCols(v, 6); pParse->nMem = 6; sqlite3CodeVerifySchema(pParse, iDb); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "cid", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "type", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "notnull", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 4, COLNAME_NAME, "dflt_value", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 5, COLNAME_NAME, "pk", SQLITE_STATIC); + setAllColumnNames(v, 6, azCol); assert( 6==ArraySize(azCol) ); sqlite3ViewGetColumnNames(pParse, pTab); for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ if( IsHiddenColumn(pCol) ){ nHidden++; continue; } - sqlite3VdbeAddOp2(v, OP_Integer, i-nHidden, 1); - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pCol->zName, 0); - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, - pCol->zType ? pCol->zType : "", 0); - sqlite3VdbeAddOp2(v, OP_Integer, (pCol->notNull ? 1 : 0), 4); - if( pCol->zDflt ){ - sqlite3VdbeAddOp4(v, OP_String8, 0, 5, 0, (char*)pCol->zDflt, 0); - }else{ - sqlite3VdbeAddOp2(v, OP_Null, 0, 5); - } if( (pCol->colFlags & COLFLAG_PRIMKEY)==0 ){ k = 0; }else if( pPk==0 ){ @@ -105789,7 +106842,13 @@ SQLITE_PRIVATE void sqlite3Pragma( }else{ for(k=1; k<=pTab->nCol && pPk->aiColumn[k-1]!=i; k++){} } - sqlite3VdbeAddOp2(v, OP_Integer, k, 6); + sqlite3VdbeMultiLoad(v, 1, "issisi", + i-nHidden, + pCol->zName, + pCol->zType ? pCol->zType : "", + pCol->notNull ? 1 : 0, + pCol->zDflt, + k); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 6); } } @@ -105797,31 +106856,26 @@ SQLITE_PRIVATE void sqlite3Pragma( break; case PragTyp_STATS: { + static const char *azCol[] = { "table", "index", "width", "height" }; Index *pIdx; HashElem *i; v = sqlite3GetVdbe(pParse); - sqlite3VdbeSetNumCols(v, 4); pParse->nMem = 4; sqlite3CodeVerifySchema(pParse, iDb); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "table", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "index", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "width", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "height", SQLITE_STATIC); + setAllColumnNames(v, 4, azCol); assert( 4==ArraySize(azCol) ); for(i=sqliteHashFirst(&pDb->pSchema->tblHash); i; i=sqliteHashNext(i)){ Table *pTab = sqliteHashData(i); - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, pTab->zName, 0); - sqlite3VdbeAddOp2(v, OP_Null, 0, 2); - sqlite3VdbeAddOp2(v, OP_Integer, - (int)sqlite3LogEstToInt(pTab->szTabRow), 3); - sqlite3VdbeAddOp2(v, OP_Integer, - (int)sqlite3LogEstToInt(pTab->nRowLogEst), 4); + sqlite3VdbeMultiLoad(v, 1, "ssii", + pTab->zName, + 0, + (int)sqlite3LogEstToInt(pTab->szTabRow), + (int)sqlite3LogEstToInt(pTab->nRowLogEst)); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 4); for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pIdx->zName, 0); - sqlite3VdbeAddOp2(v, OP_Integer, - (int)sqlite3LogEstToInt(pIdx->szIdxRow), 3); - sqlite3VdbeAddOp2(v, OP_Integer, - (int)sqlite3LogEstToInt(pIdx->aiRowLogEst[0]), 4); + sqlite3VdbeMultiLoad(v, 2, "sii", + pIdx->zName, + (int)sqlite3LogEstToInt(pIdx->szIdxRow), + (int)sqlite3LogEstToInt(pIdx->aiRowLogEst[0])); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 4); } } @@ -105833,6 +106887,9 @@ SQLITE_PRIVATE void sqlite3Pragma( Table *pTab; pIdx = sqlite3FindIndex(db, zRight, zDb); if( pIdx ){ + static const char *azCol[] = { + "seqno", "cid", "name", "desc", "coll", "key" + }; int i; int mx; if( pPragma->iArg ){ @@ -105845,29 +106902,18 @@ SQLITE_PRIVATE void sqlite3Pragma( pParse->nMem = 3; } pTab = pIdx->pTable; - sqlite3VdbeSetNumCols(v, pParse->nMem); sqlite3CodeVerifySchema(pParse, iDb); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seqno", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "cid", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "name", SQLITE_STATIC); - if( pPragma->iArg ){ - sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "desc", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 4, COLNAME_NAME, "coll", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 5, COLNAME_NAME, "key", SQLITE_STATIC); - } + assert( pParse->nMem<=ArraySize(azCol) ); + setAllColumnNames(v, pParse->nMem, azCol); for(i=0; iaiColumn[i]; - sqlite3VdbeAddOp2(v, OP_Integer, i, 1); - sqlite3VdbeAddOp2(v, OP_Integer, cnum, 2); - if( cnum<0 ){ - sqlite3VdbeAddOp2(v, OP_Null, 0, 3); - }else{ - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, pTab->aCol[cnum].zName, 0); - } + sqlite3VdbeMultiLoad(v, 1, "iis", i, cnum, + cnum<0 ? 0 : pTab->aCol[cnum].zName); if( pPragma->iArg ){ - sqlite3VdbeAddOp2(v, OP_Integer, pIdx->aSortOrder[i], 4); - sqlite3VdbeAddOp4(v, OP_String8, 0, 5, 0, pIdx->azColl[i], 0); - sqlite3VdbeAddOp2(v, OP_Integer, inKeyCol, 6); + sqlite3VdbeMultiLoad(v, 4, "isi", + pIdx->aSortOrder[i], + pIdx->azColl[i], + inKeyCol); } sqlite3VdbeAddOp2(v, OP_ResultRow, 1, pParse->nMem); } @@ -105881,22 +106927,21 @@ SQLITE_PRIVATE void sqlite3Pragma( int i; pTab = sqlite3FindTable(db, zRight, zDb); if( pTab ){ + static const char *azCol[] = { + "seq", "name", "unique", "origin", "partial" + }; v = sqlite3GetVdbe(pParse); - sqlite3VdbeSetNumCols(v, 5); pParse->nMem = 5; sqlite3CodeVerifySchema(pParse, iDb); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "unique", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "origin", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 4, COLNAME_NAME, "partial", SQLITE_STATIC); + setAllColumnNames(v, 5, azCol); assert( 5==ArraySize(azCol) ); for(pIdx=pTab->pIndex, i=0; pIdx; pIdx=pIdx->pNext, i++){ const char *azOrigin[] = { "c", "u", "pk" }; - sqlite3VdbeAddOp2(v, OP_Integer, i, 1); - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pIdx->zName, 0); - sqlite3VdbeAddOp2(v, OP_Integer, IsUniqueIndex(pIdx), 3); - sqlite3VdbeAddOp4(v, OP_String8, 0, 4, 0, azOrigin[pIdx->idxType], 0); - sqlite3VdbeAddOp2(v, OP_Integer, pIdx->pPartIdxWhere!=0, 5); + sqlite3VdbeMultiLoad(v, 1, "isisi", + i, + pIdx->zName, + IsUniqueIndex(pIdx), + azOrigin[pIdx->idxType], + pIdx->pPartIdxWhere!=0); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 5); } } @@ -105904,35 +106949,31 @@ SQLITE_PRIVATE void sqlite3Pragma( break; case PragTyp_DATABASE_LIST: { + static const char *azCol[] = { "seq", "name", "file" }; int i; - sqlite3VdbeSetNumCols(v, 3); pParse->nMem = 3; - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "file", SQLITE_STATIC); + setAllColumnNames(v, 3, azCol); assert( 3==ArraySize(azCol) ); for(i=0; inDb; i++){ if( db->aDb[i].pBt==0 ) continue; assert( db->aDb[i].zName!=0 ); - sqlite3VdbeAddOp2(v, OP_Integer, i, 1); - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, db->aDb[i].zName, 0); - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, - sqlite3BtreeGetFilename(db->aDb[i].pBt), 0); + sqlite3VdbeMultiLoad(v, 1, "iss", + i, + db->aDb[i].zName, + sqlite3BtreeGetFilename(db->aDb[i].pBt)); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 3); } } break; case PragTyp_COLLATION_LIST: { + static const char *azCol[] = { "seq", "name" }; int i = 0; HashElem *p; - sqlite3VdbeSetNumCols(v, 2); pParse->nMem = 2; - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "seq", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "name", SQLITE_STATIC); + setAllColumnNames(v, 2, azCol); assert( 2==ArraySize(azCol) ); for(p=sqliteHashFirst(&db->aCollSeq); p; p=sqliteHashNext(p)){ CollSeq *pColl = (CollSeq *)sqliteHashData(p); - sqlite3VdbeAddOp2(v, OP_Integer, i++, 1); - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, pColl->zName, 0); + sqlite3VdbeMultiLoad(v, 1, "is", i++, pColl->zName); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 2); } } @@ -105948,33 +106989,26 @@ SQLITE_PRIVATE void sqlite3Pragma( v = sqlite3GetVdbe(pParse); pFK = pTab->pFKey; if( pFK ){ + static const char *azCol[] = { + "id", "seq", "table", "from", "to", "on_update", "on_delete", + "match" + }; int i = 0; - sqlite3VdbeSetNumCols(v, 8); pParse->nMem = 8; sqlite3CodeVerifySchema(pParse, iDb); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "id", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "seq", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "table", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "from", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 4, COLNAME_NAME, "to", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 5, COLNAME_NAME, "on_update", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 6, COLNAME_NAME, "on_delete", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 7, COLNAME_NAME, "match", SQLITE_STATIC); + setAllColumnNames(v, 8, azCol); assert( 8==ArraySize(azCol) ); while(pFK){ int j; for(j=0; jnCol; j++){ - char *zCol = pFK->aCol[j].zCol; - char *zOnDelete = (char *)actionName(pFK->aAction[0]); - char *zOnUpdate = (char *)actionName(pFK->aAction[1]); - sqlite3VdbeAddOp2(v, OP_Integer, i, 1); - sqlite3VdbeAddOp2(v, OP_Integer, j, 2); - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, pFK->zTo, 0); - sqlite3VdbeAddOp4(v, OP_String8, 0, 4, 0, - pTab->aCol[pFK->aCol[j].iFrom].zName, 0); - sqlite3VdbeAddOp4(v, zCol ? OP_String8 : OP_Null, 0, 5, 0, zCol, 0); - sqlite3VdbeAddOp4(v, OP_String8, 0, 6, 0, zOnUpdate, 0); - sqlite3VdbeAddOp4(v, OP_String8, 0, 7, 0, zOnDelete, 0); - sqlite3VdbeAddOp4(v, OP_String8, 0, 8, 0, "NONE", 0); + sqlite3VdbeMultiLoad(v, 1, "iissssss", + i, + j, + pFK->zTo, + pTab->aCol[pFK->aCol[j].iFrom].zName, + pFK->aCol[j].zCol, + actionName(pFK->aAction[1]), /* ON UPDATE */ + actionName(pFK->aAction[0]), /* ON DELETE */ + "NONE"); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 8); } ++i; @@ -106003,17 +107037,14 @@ SQLITE_PRIVATE void sqlite3Pragma( int addrTop; /* Top of a loop checking foreign keys */ int addrOk; /* Jump here if the key is OK */ int *aiCols; /* child to parent column mapping */ + static const char *azCol[] = { "table", "rowid", "parent", "fkid" }; regResult = pParse->nMem+1; pParse->nMem += 4; regKey = ++pParse->nMem; regRow = ++pParse->nMem; v = sqlite3GetVdbe(pParse); - sqlite3VdbeSetNumCols(v, 4); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "table", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "rowid", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "parent", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 3, COLNAME_NAME, "fkid", SQLITE_STATIC); + setAllColumnNames(v, 4, azCol); assert( 4==ArraySize(azCol) ); sqlite3CodeVerifySchema(pParse, iDb); k = sqliteHashFirst(&db->aDb[iDb].pSchema->tblHash); while( k ){ @@ -106028,8 +107059,7 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName); if( pTab->nCol+regRow>pParse->nMem ) pParse->nMem = pTab->nCol + regRow; sqlite3OpenTable(pParse, 0, iDb, pTab, OP_OpenRead); - sqlite3VdbeAddOp4(v, OP_String8, 0, regResult, 0, pTab->zName, - P4_TRANSIENT); + sqlite3VdbeLoadString(v, regResult, pTab->zName); for(i=1, pFK=pTab->pFKey; pFK; i++, pFK=pFK->pNextFrom){ pParent = sqlite3FindTable(db, pFK->zTo, zDb); if( pParent==0 ) continue; @@ -106074,7 +107104,7 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3VdbeAddOp2(v, OP_Rowid, 0, regRow); } sqlite3VdbeAddOp3(v, OP_NotExists, i, 0, regRow); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrOk); + sqlite3VdbeGoto(v, addrOk); sqlite3VdbeJumpHere(v, sqlite3VdbeCurrentAddr(v)-2); }else{ for(j=0; jnCol; j++){ @@ -106084,15 +107114,13 @@ SQLITE_PRIVATE void sqlite3Pragma( } if( pParent ){ sqlite3VdbeAddOp4(v, OP_MakeRecord, regRow, pFK->nCol, regKey, - sqlite3IndexAffinityStr(v,pIdx), pFK->nCol); + sqlite3IndexAffinityStr(db,pIdx), pFK->nCol); sqlite3VdbeAddOp4Int(v, OP_Found, i, addrOk, regKey, 0); VdbeCoverage(v); } } sqlite3VdbeAddOp2(v, OP_Rowid, 0, regResult+1); - sqlite3VdbeAddOp4(v, OP_String8, 0, regResult+2, 0, - pFK->zTo, P4_TRANSIENT); - sqlite3VdbeAddOp2(v, OP_Integer, i-1, regResult+3); + sqlite3VdbeMultiLoad(v, regResult+2, "si", pFK->zTo, i-1); sqlite3VdbeAddOp2(v, OP_ResultRow, regResult, 4); sqlite3VdbeResolveLabel(v, addrOk); sqlite3DbFree(db, aiCols); @@ -106146,8 +107174,9 @@ SQLITE_PRIVATE void sqlite3Pragma( */ static const int iLn = VDBE_OFFSET_LINENO(2); static const VdbeOpList endCode[] = { - { OP_IfNeg, 1, 0, 0}, /* 0 */ - { OP_String8, 0, 3, 0}, /* 1 */ + { OP_AddImm, 1, 0, 0}, /* 0 */ + { OP_If, 1, 0, 0}, /* 1 */ + { OP_String8, 0, 3, 0}, /* 2 */ { OP_ResultRow, 3, 1, 0}, }; @@ -106168,8 +107197,7 @@ SQLITE_PRIVATE void sqlite3Pragma( /* Initialize the VDBE program */ pParse->nMem = 6; - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "integrity_check", SQLITE_STATIC); + setOneColumnName(v, "integrity_check"); /* Set the maximum error count */ mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX; @@ -106291,13 +107319,11 @@ SQLITE_PRIVATE void sqlite3Pragma( jmp2 = sqlite3VdbeAddOp4Int(v, OP_Found, iIdxCur+j, ckUniq, r1, pIdx->nColumn); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_AddImm, 1, -1); /* Decrement error limit */ - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, "row ", P4_STATIC); + sqlite3VdbeLoadString(v, 3, "row "); sqlite3VdbeAddOp3(v, OP_Concat, 7, 3, 3); - sqlite3VdbeAddOp4(v, OP_String8, 0, 4, 0, - " missing from index ", P4_STATIC); + sqlite3VdbeLoadString(v, 4, " missing from index "); sqlite3VdbeAddOp3(v, OP_Concat, 4, 3, 3); - jmp5 = sqlite3VdbeAddOp4(v, OP_String8, 0, 4, 0, - pIdx->zName, P4_TRANSIENT); + jmp5 = sqlite3VdbeLoadString(v, 4, pIdx->zName); sqlite3VdbeAddOp3(v, OP_Concat, 4, 3, 3); sqlite3VdbeAddOp2(v, OP_ResultRow, 3, 1); jmp4 = sqlite3VdbeAddOp1(v, OP_IfPos, 1); VdbeCoverage(v); @@ -106312,20 +107338,19 @@ SQLITE_PRIVATE void sqlite3Pragma( int kk; for(kk=0; kknKeyCol; kk++){ int iCol = pIdx->aiColumn[kk]; - assert( iCol>=0 && iColnCol ); - if( pTab->aCol[iCol].notNull ) continue; + assert( iCol!=XN_ROWID && iColnCol ); + if( iCol>=0 && pTab->aCol[iCol].notNull ) continue; sqlite3VdbeAddOp2(v, OP_IsNull, r1+kk, uniqOk); VdbeCoverage(v); } jmp6 = sqlite3VdbeAddOp1(v, OP_Next, iIdxCur+j); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, uniqOk); + sqlite3VdbeGoto(v, uniqOk); sqlite3VdbeJumpHere(v, jmp6); sqlite3VdbeAddOp4Int(v, OP_IdxGT, iIdxCur+j, uniqOk, r1, pIdx->nKeyCol); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_AddImm, 1, -1); /* Decrement error limit */ - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, - "non-unique entry in index ", P4_STATIC); - sqlite3VdbeAddOp2(v, OP_Goto, 0, jmp5); + sqlite3VdbeLoadString(v, 3, "non-unique entry in index "); + sqlite3VdbeGoto(v, jmp5); sqlite3VdbeResolveLabel(v, uniqOk); } sqlite3VdbeJumpHere(v, jmp4); @@ -106334,8 +107359,7 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3VdbeAddOp2(v, OP_Next, iDataCur, loopTop); VdbeCoverage(v); sqlite3VdbeJumpHere(v, loopTop-1); #ifndef SQLITE_OMIT_BTREECOUNT - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, - "wrong # of entries in index ", P4_STATIC); + sqlite3VdbeLoadString(v, 2, "wrong # of entries in index "); for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ if( pPk==pIdx ) continue; addr = sqlite3VdbeCurrentAddr(v); @@ -106345,7 +107369,7 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3VdbeAddOp3(v, OP_Eq, 8+j, addr+8, 3); VdbeCoverage(v); sqlite3VdbeChangeP5(v, SQLITE_NOTNULL); sqlite3VdbeAddOp2(v, OP_AddImm, 1, -1); - sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, pIdx->zName, P4_TRANSIENT); + sqlite3VdbeLoadString(v, 3, pIdx->zName); sqlite3VdbeAddOp3(v, OP_Concat, 3, 2, 7); sqlite3VdbeAddOp2(v, OP_ResultRow, 7, 1); } @@ -106353,9 +107377,9 @@ SQLITE_PRIVATE void sqlite3Pragma( } } addr = sqlite3VdbeAddOpList(v, ArraySize(endCode), endCode, iLn); - sqlite3VdbeChangeP3(v, addr, -mxErr); - sqlite3VdbeJumpHere(v, addr); - sqlite3VdbeChangeP4(v, addr+1, "ok", P4_STATIC); + sqlite3VdbeChangeP2(v, addr, -mxErr); + sqlite3VdbeJumpHere(v, addr+1); + sqlite3VdbeChangeP4(v, addr+2, "ok", P4_STATIC); } break; #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ @@ -106401,14 +107425,10 @@ SQLITE_PRIVATE void sqlite3Pragma( const struct EncName *pEnc; if( !zRight ){ /* "PRAGMA encoding" */ if( sqlite3ReadSchema(pParse) ) goto pragma_out; - sqlite3VdbeSetNumCols(v, 1); - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "encoding", SQLITE_STATIC); - sqlite3VdbeAddOp2(v, OP_String8, 0, 1); assert( encnames[SQLITE_UTF8].enc==SQLITE_UTF8 ); assert( encnames[SQLITE_UTF16LE].enc==SQLITE_UTF16LE ); assert( encnames[SQLITE_UTF16BE].enc==SQLITE_UTF16BE ); - sqlite3VdbeChangeP4(v, -1, encnames[ENC(pParse->db)].zName, P4_STATIC); - sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); + returnSingleText(v, "encoding", encnames[ENC(pParse->db)].zName); }else{ /* "PRAGMA encoding = XXX" */ /* Only change the value of sqlite.enc if the database handle is not ** initialized. If the main database exists, the new sqlite.enc value @@ -106509,11 +107529,10 @@ SQLITE_PRIVATE void sqlite3Pragma( case PragTyp_COMPILE_OPTIONS: { int i = 0; const char *zOpt; - sqlite3VdbeSetNumCols(v, 1); pParse->nMem = 1; - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "compile_option", SQLITE_STATIC); + setOneColumnName(v, "compile_option"); while( (zOpt = sqlite3_compileoption_get(i++))!=0 ){ - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, zOpt, 0); + sqlite3VdbeLoadString(v, 1, zOpt); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 1); } } @@ -106527,6 +107546,7 @@ SQLITE_PRIVATE void sqlite3Pragma( ** Checkpoint the database. */ case PragTyp_WAL_CHECKPOINT: { + static const char *azCol[] = { "busy", "log", "checkpointed" }; int iBt = (pId2->z?iDb:SQLITE_MAX_ATTACHED); int eMode = SQLITE_CHECKPOINT_PASSIVE; if( zRight ){ @@ -106538,12 +107558,8 @@ SQLITE_PRIVATE void sqlite3Pragma( eMode = SQLITE_CHECKPOINT_TRUNCATE; } } - sqlite3VdbeSetNumCols(v, 3); + setAllColumnNames(v, 3, azCol); assert( 3==ArraySize(azCol) ); pParse->nMem = 3; - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "busy", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "log", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 2, COLNAME_NAME, "checkpointed", SQLITE_STATIC); - sqlite3VdbeAddOp3(v, OP_Checkpoint, iBt, eMode, 1); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 3); } @@ -106561,7 +107577,7 @@ SQLITE_PRIVATE void sqlite3Pragma( if( zRight ){ sqlite3_wal_autocheckpoint(db, sqlite3Atoi(zRight)); } - returnSingleInt(pParse, "wal_autocheckpoint", + returnSingleInt(v, "wal_autocheckpoint", db->xWalCallback==sqlite3WalDefaultHook ? SQLITE_PTR_TO_INT(db->pWalArg) : 0); } @@ -106594,7 +107610,7 @@ SQLITE_PRIVATE void sqlite3Pragma( if( zRight ){ sqlite3_busy_timeout(db, sqlite3Atoi(zRight)); } - returnSingleInt(pParse, "timeout", db->busyTimeout); + returnSingleInt(v, "timeout", db->busyTimeout); break; } @@ -106614,7 +107630,7 @@ SQLITE_PRIVATE void sqlite3Pragma( if( zRight && sqlite3DecOrHexToI64(zRight, &N)==SQLITE_OK ){ sqlite3_soft_heap_limit64(N); } - returnSingleInt(pParse, "soft_heap_limit", sqlite3_soft_heap_limit64(-1)); + returnSingleInt(v, "soft_heap_limit", sqlite3_soft_heap_limit64(-1)); break; } @@ -106633,7 +107649,7 @@ SQLITE_PRIVATE void sqlite3Pragma( ){ sqlite3_limit(db, SQLITE_LIMIT_WORKER_THREADS, (int)(N&0x7fffffff)); } - returnSingleInt(pParse, "threads", + returnSingleInt(v, "threads", sqlite3_limit(db, SQLITE_LIMIT_WORKER_THREADS, -1)); break; } @@ -106646,17 +107662,15 @@ SQLITE_PRIVATE void sqlite3Pragma( static const char *const azLockName[] = { "unlocked", "shared", "reserved", "pending", "exclusive" }; + static const char *azCol[] = { "database", "status" }; int i; - sqlite3VdbeSetNumCols(v, 2); + setAllColumnNames(v, 2, azCol); assert( 2==ArraySize(azCol) ); pParse->nMem = 2; - sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "database", SQLITE_STATIC); - sqlite3VdbeSetColName(v, 1, COLNAME_NAME, "status", SQLITE_STATIC); for(i=0; inDb; i++){ Btree *pBt; const char *zState = "unknown"; int j; if( db->aDb[i].zName==0 ) continue; - sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0, db->aDb[i].zName, P4_STATIC); pBt = db->aDb[i].pBt; if( pBt==0 || sqlite3BtreePager(pBt)==0 ){ zState = "closed"; @@ -106664,7 +107678,7 @@ SQLITE_PRIVATE void sqlite3Pragma( SQLITE_FCNTL_LOCKSTATE, &j)==SQLITE_OK ){ zState = azLockName[j]; } - sqlite3VdbeAddOp4(v, OP_String8, 0, 2, 0, zState, P4_STATIC); + sqlite3VdbeMultiLoad(v, 1, "ss", db->aDb[i].zName, zState); sqlite3VdbeAddOp2(v, OP_ResultRow, 1, 2); } break; @@ -108029,12 +109043,12 @@ static int sqliteProcessJoin(Parse *pParse, Select *p){ int isOuter; if( NEVER(pLeftTab==0 || pRightTab==0) ) continue; - isOuter = (pRight->jointype & JT_OUTER)!=0; + isOuter = (pRight->fg.jointype & JT_OUTER)!=0; /* When the NATURAL keyword is present, add WHERE clause terms for ** every column that the two tables have in common. */ - if( pRight->jointype & JT_NATURAL ){ + if( pRight->fg.jointype & JT_NATURAL ){ if( pRight->pOn || pRight->pUsing ){ sqlite3ErrorMsg(pParse, "a NATURAL join may not have " "an ON or USING clause", 0); @@ -108119,6 +109133,7 @@ static void pushOntoSorter( SortCtx *pSort, /* Information about the ORDER BY clause */ Select *pSelect, /* The whole SELECT statement */ int regData, /* First register holding data to be sorted */ + int regOrigData, /* First register holding data before packing */ int nData, /* Number of elements in the data array */ int nPrefixReg /* No. of reg prior to regData available for use */ ){ @@ -108132,6 +109147,7 @@ static void pushOntoSorter( int op; /* Opcode to add sorter record to sorter */ assert( bSeq==0 || bSeq==1 ); + assert( nData==1 || regData==regOrigData ); if( nPrefixReg ){ assert( nPrefixReg==nExpr+bSeq ); regBase = regData - nExpr - bSeq; @@ -108139,7 +109155,8 @@ static void pushOntoSorter( regBase = pParse->nMem + 1; pParse->nMem += nBase; } - sqlite3ExprCodeExprList(pParse, pSort->pOrderBy, regBase, SQLITE_ECEL_DUP); + sqlite3ExprCodeExprList(pParse, pSort->pOrderBy, regBase, regOrigData, + SQLITE_ECEL_DUP|SQLITE_ECEL_REF); if( bSeq ){ sqlite3VdbeAddOp2(v, OP_Sequence, pSort->iECursor, regBase+nExpr); } @@ -108199,7 +109216,7 @@ static void pushOntoSorter( }else{ iLimit = pSelect->iLimit; } - addr = sqlite3VdbeAddOp3(v, OP_IfNotZero, iLimit, 0, -1); VdbeCoverage(v); + addr = sqlite3VdbeAddOp3(v, OP_IfNotZero, iLimit, 0, 1); VdbeCoverage(v); sqlite3VdbeAddOp1(v, OP_Last, pSort->iECursor); sqlite3VdbeAddOp1(v, OP_Delete, pSort->iECursor); sqlite3VdbeJumpHere(v, addr); @@ -108215,11 +109232,8 @@ static void codeOffset( int iContinue /* Jump here to skip the current record */ ){ if( iOffset>0 ){ - int addr; - addr = sqlite3VdbeAddOp3(v, OP_IfNeg, iOffset, 0, -1); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, iContinue); - VdbeComment((v, "skip OFFSET records")); - sqlite3VdbeJumpHere(v, addr); + sqlite3VdbeAddOp3(v, OP_IfPos, iOffset, iContinue, 1); VdbeCoverage(v); + VdbeComment((v, "OFFSET")); } } @@ -108349,7 +109363,7 @@ static void selectInnerLoop( }else{ ecelFlags = 0; } - sqlite3ExprCodeExprList(pParse, pEList, regResult, ecelFlags); + sqlite3ExprCodeExprList(pParse, pEList, regResult, 0, ecelFlags); } /* If the DISTINCT keyword was present on the SELECT statement @@ -108465,7 +109479,7 @@ static void selectInnerLoop( } #endif if( pSort ){ - pushOntoSorter(pParse, pSort, p, r1+nPrefixReg, 1, nPrefixReg); + pushOntoSorter(pParse, pSort, p, r1+nPrefixReg,regResult,1,nPrefixReg); }else{ int r2 = sqlite3GetTempReg(pParse); sqlite3VdbeAddOp2(v, OP_NewRowid, iParm, r2); @@ -108491,7 +109505,7 @@ static void selectInnerLoop( ** ORDER BY in this case since the order of entries in the set ** does not matter. But there might be a LIMIT clause, in which ** case the order does matter */ - pushOntoSorter(pParse, pSort, p, regResult, 1, nPrefixReg); + pushOntoSorter(pParse, pSort, p, regResult, regResult, 1, nPrefixReg); }else{ int r1 = sqlite3GetTempReg(pParse); sqlite3VdbeAddOp4(v, OP_MakeRecord, regResult,1,r1, &pDest->affSdst, 1); @@ -108517,7 +109531,7 @@ static void selectInnerLoop( case SRT_Mem: { assert( nResultCol==1 ); if( pSort ){ - pushOntoSorter(pParse, pSort, p, regResult, 1, nPrefixReg); + pushOntoSorter(pParse, pSort, p, regResult, regResult, 1, nPrefixReg); }else{ assert( regResult==iParm ); /* The LIMIT clause will jump out of the loop for us */ @@ -108531,7 +109545,8 @@ static void selectInnerLoop( testcase( eDest==SRT_Coroutine ); testcase( eDest==SRT_Output ); if( pSort ){ - pushOntoSorter(pParse, pSort, p, regResult, nResultCol, nPrefixReg); + pushOntoSorter(pParse, pSort, p, regResult, regResult, nResultCol, + nPrefixReg); }else if( eDest==SRT_Coroutine ){ sqlite3VdbeAddOp1(v, OP_Yield, pDest->iSDParm); }else{ @@ -108825,7 +109840,7 @@ static void generateSortTail( if( pSort->labelBkOut ){ sqlite3VdbeAddOp2(v, OP_Gosub, pSort->regReturn, pSort->labelBkOut); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrBreak); + sqlite3VdbeGoto(v, addrBreak); sqlite3VdbeResolveLabel(v, pSort->labelBkOut); } iTab = pSort->iECursor; @@ -109210,7 +110225,7 @@ static void generateColumnNames( ** Return SQLITE_OK on success. If a memory allocation error occurs, ** store NULL in *paCol and 0 in *pnCol and return SQLITE_NOMEM. */ -static int selectColumnsFromExprList( +SQLITE_PRIVATE int sqlite3ColumnsFromExprList( Parse *pParse, /* Parsing context */ ExprList *pEList, /* Expr list from which to derive column names */ i16 *pnCol, /* Write the number of columns here */ @@ -109377,7 +110392,7 @@ SQLITE_PRIVATE Table *sqlite3ResultSetOfSelect(Parse *pParse, Select *pSelect){ pTab->nRef = 1; pTab->zName = 0; pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); - selectColumnsFromExprList(pParse, pSelect->pEList, &pTab->nCol, &pTab->aCol); + sqlite3ColumnsFromExprList(pParse, pSelect->pEList, &pTab->nCol, &pTab->aCol); selectAddColumnTypeAndCollation(pParse, pTab, pSelect); pTab->iPKey = -1; if( db->mallocFailed ){ @@ -109434,7 +110449,7 @@ static void computeLimitRegisters(Parse *pParse, Select *p, int iBreak){ Vdbe *v = 0; int iLimit = 0; int iOffset; - int addr1, n; + int n; if( p->iLimit ) return; /* @@ -109453,7 +110468,7 @@ static void computeLimitRegisters(Parse *pParse, Select *p, int iBreak){ sqlite3VdbeAddOp2(v, OP_Integer, n, iLimit); VdbeComment((v, "LIMIT counter")); if( n==0 ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, iBreak); + sqlite3VdbeGoto(v, iBreak); }else if( n>=0 && p->nSelectRow>(u64)n ){ p->nSelectRow = n; } @@ -109469,14 +110484,10 @@ static void computeLimitRegisters(Parse *pParse, Select *p, int iBreak){ sqlite3ExprCode(pParse, p->pOffset, iOffset); sqlite3VdbeAddOp1(v, OP_MustBeInt, iOffset); VdbeCoverage(v); VdbeComment((v, "OFFSET counter")); - addr1 = sqlite3VdbeAddOp1(v, OP_IfPos, iOffset); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Integer, 0, iOffset); - sqlite3VdbeJumpHere(v, addr1); + sqlite3VdbeAddOp3(v, OP_SetIfNotPos, iOffset, iOffset, 0); sqlite3VdbeAddOp3(v, OP_Add, iLimit, iOffset, iOffset+1); VdbeComment((v, "LIMIT+OFFSET")); - addr1 = sqlite3VdbeAddOp1(v, OP_IfPos, iLimit); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Integer, -1, iOffset+1); - sqlite3VdbeJumpHere(v, addr1); + sqlite3VdbeAddOp3(v, OP_SetIfNotPos, iLimit, iOffset+1, -1); } } } @@ -109556,7 +110567,7 @@ static KeyInfo *multiSelectOrderByKeyInfo(Parse *pParse, Select *p, int nExtra){ ** ** ** There is exactly one reference to the recursive-table in the FROM clause -** of recursive-query, marked with the SrcList->a[].isRecursive flag. +** of recursive-query, marked with the SrcList->a[].fg.isRecursive flag. ** ** The setup-query runs once to generate an initial set of rows that go ** into a Queue table. Rows are extracted from the Queue table one by @@ -109621,7 +110632,7 @@ static void generateWithRecursiveQuery( /* Locate the cursor number of the Current table */ for(i=0; ALWAYS(inSrc); i++){ - if( pSrc->a[i].isRecursive ){ + if( pSrc->a[i].fg.isRecursive ){ iCurrent = pSrc->a[i].iCursor; break; } @@ -109701,7 +110712,7 @@ static void generateWithRecursiveQuery( } /* Keep running the loop until the Queue is empty */ - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop); + sqlite3VdbeGoto(v, addrTop); sqlite3VdbeResolveLabel(v, addrBreak); end_of_recursive_query: @@ -109892,6 +110903,11 @@ static int multiSelect( if( p->iLimit ){ addr = sqlite3VdbeAddOp1(v, OP_IfNot, p->iLimit); VdbeCoverage(v); VdbeComment((v, "Jump ahead if LIMIT reached")); + if( p->iOffset ){ + sqlite3VdbeAddOp3(v, OP_SetIfNotPos, p->iOffset, p->iOffset, 0); + sqlite3VdbeAddOp3(v, OP_Add, p->iLimit, p->iOffset, p->iOffset+1); + sqlite3VdbeAddOp3(v, OP_SetIfNotPos, p->iLimit, p->iOffset+1, -1); + } } explainSetInteger(iSub2, pParse->iNextSelectId); rc = sqlite3Select(pParse, p, &dest); @@ -110199,12 +111215,12 @@ static int generateOutputSubroutine( /* Suppress duplicates for UNION, EXCEPT, and INTERSECT */ if( regPrev ){ - int j1, j2; - j1 = sqlite3VdbeAddOp1(v, OP_IfNot, regPrev); VdbeCoverage(v); - j2 = sqlite3VdbeAddOp4(v, OP_Compare, pIn->iSdst, regPrev+1, pIn->nSdst, + int addr1, addr2; + addr1 = sqlite3VdbeAddOp1(v, OP_IfNot, regPrev); VdbeCoverage(v); + addr2 = sqlite3VdbeAddOp4(v, OP_Compare, pIn->iSdst, regPrev+1, pIn->nSdst, (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO); - sqlite3VdbeAddOp3(v, OP_Jump, j2+2, iContinue, j2+2); VdbeCoverage(v); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeAddOp3(v, OP_Jump, addr2+2, iContinue, addr2+2); VdbeCoverage(v); + sqlite3VdbeJumpHere(v, addr1); sqlite3VdbeAddOp3(v, OP_Copy, pIn->iSdst, regPrev+1, pIn->nSdst-1); sqlite3VdbeAddOp2(v, OP_Integer, 1, regPrev); } @@ -110421,7 +111437,7 @@ static int multiSelectOrderBy( int savedOffset; /* Saved value of p->iOffset */ int labelCmpr; /* Label for the start of the merge algorithm */ int labelEnd; /* Label for the end of the overall SELECT stmt */ - int j1; /* Jump instructions that get retargetted */ + int addr1; /* Jump instructions that get retargetted */ int op; /* One of TK_ALL, TK_UNION, TK_EXCEPT, TK_INTERSECT */ KeyInfo *pKeyDup = 0; /* Comparison information for duplicate removal */ KeyInfo *pKeyMerge; /* Comparison information for merging rows */ @@ -110557,19 +111573,19 @@ static int multiSelectOrderBy( ** left of the compound operator - the "A" select. */ addrSelectA = sqlite3VdbeCurrentAddr(v) + 1; - j1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrA, 0, addrSelectA); + addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrA, 0, addrSelectA); VdbeComment((v, "left SELECT")); pPrior->iLimit = regLimitA; explainSetInteger(iSub1, pParse->iNextSelectId); sqlite3Select(pParse, pPrior, &destA); sqlite3VdbeAddOp1(v, OP_EndCoroutine, regAddrA); - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); /* Generate a coroutine to evaluate the SELECT statement on ** the right - the "B" select */ addrSelectB = sqlite3VdbeCurrentAddr(v) + 1; - j1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrB, 0, addrSelectB); + addr1 = sqlite3VdbeAddOp3(v, OP_InitCoroutine, regAddrB, 0, addrSelectB); VdbeComment((v, "right SELECT")); savedLimit = p->iLimit; savedOffset = p->iOffset; @@ -110610,7 +111626,7 @@ static int multiSelectOrderBy( addrEofA = sqlite3VdbeAddOp2(v, OP_Gosub, regOutB, addrOutB); addrEofA_noB = sqlite3VdbeAddOp2(v, OP_Yield, regAddrB, labelEnd); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrEofA); + sqlite3VdbeGoto(v, addrEofA); p->nSelectRow += pPrior->nSelectRow; } @@ -110624,7 +111640,7 @@ static int multiSelectOrderBy( VdbeNoopComment((v, "eof-B subroutine")); addrEofB = sqlite3VdbeAddOp2(v, OP_Gosub, regOutA, addrOutA); sqlite3VdbeAddOp2(v, OP_Yield, regAddrA, labelEnd); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrEofB); + sqlite3VdbeGoto(v, addrEofB); } /* Generate code to handle the case of AB @@ -110656,11 +111672,11 @@ static int multiSelectOrderBy( sqlite3VdbeAddOp2(v, OP_Gosub, regOutB, addrOutB); } sqlite3VdbeAddOp2(v, OP_Yield, regAddrB, addrEofB); VdbeCoverage(v); - sqlite3VdbeAddOp2(v, OP_Goto, 0, labelCmpr); + sqlite3VdbeGoto(v, labelCmpr); /* This code runs once to initialize everything. */ - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); sqlite3VdbeAddOp2(v, OP_Yield, regAddrA, addrEofA_noB); VdbeCoverage(v); sqlite3VdbeAddOp2(v, OP_Yield, regAddrB, addrEofB); VdbeCoverage(v); @@ -110703,7 +111719,7 @@ static int multiSelectOrderBy( #if !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) /* Forward Declarations */ static void substExprList(sqlite3*, ExprList*, int, ExprList*); -static void substSelect(sqlite3*, Select *, int, ExprList *); +static void substSelect(sqlite3*, Select *, int, ExprList*, int); /* ** Scan through the expression pExpr. Replace every reference to @@ -110740,7 +111756,7 @@ static Expr *substExpr( pExpr->pLeft = substExpr(db, pExpr->pLeft, iTable, pEList); pExpr->pRight = substExpr(db, pExpr->pRight, iTable, pEList); if( ExprHasProperty(pExpr, EP_xIsSelect) ){ - substSelect(db, pExpr->x.pSelect, iTable, pEList); + substSelect(db, pExpr->x.pSelect, iTable, pEList, 1); }else{ substExprList(db, pExpr->x.pList, iTable, pEList); } @@ -110763,25 +111779,28 @@ static void substSelect( sqlite3 *db, /* Report malloc errors here */ Select *p, /* SELECT statement in which to make substitutions */ int iTable, /* Table to be replaced */ - ExprList *pEList /* Substitute values */ + ExprList *pEList, /* Substitute values */ + int doPrior /* Do substitutes on p->pPrior too */ ){ SrcList *pSrc; struct SrcList_item *pItem; int i; if( !p ) return; - substExprList(db, p->pEList, iTable, pEList); - substExprList(db, p->pGroupBy, iTable, pEList); - substExprList(db, p->pOrderBy, iTable, pEList); - p->pHaving = substExpr(db, p->pHaving, iTable, pEList); - p->pWhere = substExpr(db, p->pWhere, iTable, pEList); - substSelect(db, p->pPrior, iTable, pEList); - pSrc = p->pSrc; - assert( pSrc ); /* Even for (SELECT 1) we have: pSrc!=0 but pSrc->nSrc==0 */ - if( ALWAYS(pSrc) ){ + do{ + substExprList(db, p->pEList, iTable, pEList); + substExprList(db, p->pGroupBy, iTable, pEList); + substExprList(db, p->pOrderBy, iTable, pEList); + p->pHaving = substExpr(db, p->pHaving, iTable, pEList); + p->pWhere = substExpr(db, p->pWhere, iTable, pEList); + pSrc = p->pSrc; + assert( pSrc!=0 ); for(i=pSrc->nSrc, pItem=pSrc->a; i>0; i--, pItem++){ - substSelect(db, pItem->pSelect, iTable, pEList); + substSelect(db, pItem->pSelect, iTable, pEList, 1); + if( pItem->fg.isTabFunc ){ + substExprList(db, pItem->u1.pFuncArg, iTable, pEList); + } } - } + }while( doPrior && (p = p->pPrior)!=0 ); } #endif /* !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) */ @@ -110933,7 +111952,7 @@ static int flattenSubquery( int subqueryIsAgg /* True if the subquery uses aggregate functions */ ){ const char *zSavedAuthContext = pParse->zAuthContext; - Select *pParent; + Select *pParent; /* Current UNION ALL term of the other query */ Select *pSub; /* The inner query or "subquery" */ Select *pSub1; /* Pointer to the rightmost select in sub-query */ SrcList *pSrc; /* The FROM clause of the outer query */ @@ -111036,7 +112055,7 @@ static int flattenSubquery( ** is fraught with danger. Best to avoid the whole thing. If the ** subquery is the right term of a LEFT JOIN, then do not flatten. */ - if( (pSubitem->jointype & JT_OUTER)!=0 ){ + if( (pSubitem->fg.jointype & JT_OUTER)!=0 ){ return 0; } @@ -111207,7 +112226,7 @@ static int flattenSubquery( if( pSrc ){ assert( pParent==p ); /* First time through the loop */ - jointype = pSubitem->jointype; + jointype = pSubitem->fg.jointype; }else{ assert( pParent!=p ); /* 2nd and subsequent times through the loop */ pSrc = pParent->pSrc = sqlite3SrcListAppend(db, 0, 0, 0); @@ -111228,9 +112247,9 @@ static int flattenSubquery( ** ** The outer query has 3 slots in its FROM clause. One slot of the ** outer query (the middle slot) is used by the subquery. The next - ** block of code will expand the out query to 4 slots. The middle - ** slot is expanded to two slots in order to make space for the - ** two elements in the FROM clause of the subquery. + ** block of code will expand the outer query FROM clause to 4 slots. + ** The middle slot is expanded to two slots in order to make space + ** for the two elements in the FROM clause of the subquery. */ if( nSubSrc>1 ){ pParent->pSrc = pSrc = sqlite3SrcListEnlarge(db, pSrc, nSubSrc-1,iFrom+1); @@ -111247,7 +112266,7 @@ static int flattenSubquery( pSrc->a[i+iFrom] = pSubSrc->a[i]; memset(&pSubSrc->a[i], 0, sizeof(pSubSrc->a[i])); } - pSrc->a[iFrom].jointype = jointype; + pSrc->a[iFrom].fg.jointype = jointype; /* Now begin substituting subquery result set expressions for ** references to the iParent in the outer query. @@ -111269,11 +112288,6 @@ static int flattenSubquery( pList->a[i].zName = zName; } } - substExprList(db, pParent->pEList, iParent, pSub->pEList); - if( isAgg ){ - substExprList(db, pParent->pGroupBy, iParent, pSub->pEList); - pParent->pHaving = substExpr(db, pParent->pHaving, iParent, pSub->pEList); - } if( pSub->pOrderBy ){ /* At this point, any non-zero iOrderByCol values indicate that the ** ORDER BY column expression is identical to the iOrderByCol'th @@ -111293,27 +112307,20 @@ static int flattenSubquery( assert( pSub->pPrior==0 ); pParent->pOrderBy = pOrderBy; pSub->pOrderBy = 0; - }else if( pParent->pOrderBy ){ - substExprList(db, pParent->pOrderBy, iParent, pSub->pEList); - } - if( pSub->pWhere ){ - pWhere = sqlite3ExprDup(db, pSub->pWhere, 0); - }else{ - pWhere = 0; } + pWhere = sqlite3ExprDup(db, pSub->pWhere, 0); if( subqueryIsAgg ){ assert( pParent->pHaving==0 ); pParent->pHaving = pParent->pWhere; pParent->pWhere = pWhere; - pParent->pHaving = substExpr(db, pParent->pHaving, iParent, pSub->pEList); pParent->pHaving = sqlite3ExprAnd(db, pParent->pHaving, sqlite3ExprDup(db, pSub->pHaving, 0)); assert( pParent->pGroupBy==0 ); pParent->pGroupBy = sqlite3ExprListDup(db, pSub->pGroupBy, 0); }else{ - pParent->pWhere = substExpr(db, pParent->pWhere, iParent, pSub->pEList); pParent->pWhere = sqlite3ExprAnd(db, pParent->pWhere, pWhere); } + substSelect(db, pParent, iParent, pSub->pEList, 0); /* The flattened query is distinct if either the inner or the ** outer query is distinct. @@ -111380,6 +112387,9 @@ static int flattenSubquery( ** enforces this restriction since this routine does not have enough ** information to know.) ** +** (5) The WHERE clause expression originates in the ON or USING clause +** of a LEFT JOIN. +** ** Return 0 if no changes are made and non-zero if one or more WHERE clause ** terms are duplicated into the subquery. */ @@ -111402,6 +112412,7 @@ static int pushDownWhereTerms( nChng += pushDownWhereTerms(db, pSubq, pWhere->pRight, iCursor); pWhere = pWhere->pLeft; } + if( ExprHasProperty(pWhere,EP_FromJoin) ) return 0; /* restriction 5 */ if( sqlite3ExprIsTableConstant(pWhere, iCursor) ){ nChng++; while( pSubq ){ @@ -111498,9 +112509,9 @@ static Table *isSimpleCount(Select *p, AggInfo *pAggInfo){ ** pFrom->pIndex and return SQLITE_OK. */ SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *pParse, struct SrcList_item *pFrom){ - if( pFrom->pTab && pFrom->zIndexedBy ){ + if( pFrom->pTab && pFrom->fg.isIndexedBy ){ Table *pTab = pFrom->pTab; - char *zIndexedBy = pFrom->zIndexedBy; + char *zIndexedBy = pFrom->u1.zIndexedBy; Index *pIdx; for(pIdx=pTab->pIndex; pIdx && sqlite3StrICmp(pIdx->zName, zIndexedBy); @@ -111511,7 +112522,7 @@ SQLITE_PRIVATE int sqlite3IndexedByLookup(Parse *pParse, struct SrcList_item *pF pParse->checkSchema = 1; return SQLITE_ERROR; } - pFrom->pIndex = pIdx; + pFrom->pIBIndex = pIdx; } return SQLITE_OK; } @@ -111672,12 +112683,12 @@ static int withExpand( int bMayRecursive; /* True if compound joined by UNION [ALL] */ With *pSavedWith; /* Initial value of pParse->pWith */ - /* If pCte->zErr is non-NULL at this point, then this is an illegal + /* If pCte->zCteErr is non-NULL at this point, then this is an illegal ** recursive reference to CTE pCte. Leave an error in pParse and return - ** early. If pCte->zErr is NULL, then this is not a recursive reference. + ** early. If pCte->zCteErr is NULL, then this is not a recursive reference. ** In this case, proceed. */ - if( pCte->zErr ){ - sqlite3ErrorMsg(pParse, pCte->zErr, pCte->zName); + if( pCte->zCteErr ){ + sqlite3ErrorMsg(pParse, pCte->zCteErr, pCte->zName); return SQLITE_ERROR; } @@ -111706,7 +112717,7 @@ static int withExpand( && 0==sqlite3StrICmp(pItem->zName, pCte->zName) ){ pItem->pTab = pTab; - pItem->isRecursive = 1; + pItem->fg.isRecursive = 1; pTab->nRef++; pSel->selFlags |= SF_Recursive; } @@ -111722,7 +112733,7 @@ static int withExpand( } assert( pTab->nRef==1 || ((pSel->selFlags&SF_Recursive) && pTab->nRef==2 )); - pCte->zErr = "circular reference: %s"; + pCte->zCteErr = "circular reference: %s"; pSavedWith = pParse->pWith; pParse->pWith = pWith; sqlite3WalkSelect(pWalker, bMayRecursive ? pSel->pPrior : pSel); @@ -111740,16 +112751,16 @@ static int withExpand( pEList = pCte->pCols; } - selectColumnsFromExprList(pParse, pEList, &pTab->nCol, &pTab->aCol); + sqlite3ColumnsFromExprList(pParse, pEList, &pTab->nCol, &pTab->aCol); if( bMayRecursive ){ if( pSel->selFlags & SF_Recursive ){ - pCte->zErr = "multiple recursive references: %s"; + pCte->zCteErr = "multiple recursive references: %s"; }else{ - pCte->zErr = "recursive reference in a subquery: %s"; + pCte->zCteErr = "recursive reference in a subquery: %s"; } sqlite3WalkSelect(pWalker, pSel); } - pCte->zErr = 0; + pCte->zCteErr = 0; pParse->pWith = pSavedWith; } @@ -111836,17 +112847,9 @@ static int selectExpander(Walker *pWalker, Select *p){ */ for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ Table *pTab; - assert( pFrom->isRecursive==0 || pFrom->pTab ); - if( pFrom->isRecursive ) continue; - if( pFrom->pTab!=0 ){ - /* This statement has already been prepared. There is no need - ** to go further. */ - assert( i==0 ); -#ifndef SQLITE_OMIT_CTE - selectPopWith(pWalker, p); -#endif - return WRC_Prune; - } + assert( pFrom->fg.isRecursive==0 || pFrom->pTab!=0 ); + if( pFrom->fg.isRecursive ) continue; + assert( pFrom->pTab==0 ); #ifndef SQLITE_OMIT_CTE if( withExpand(pWalker, pFrom) ) return WRC_Abort; if( pFrom->pTab ) {} else @@ -111863,7 +112866,7 @@ static int selectExpander(Walker *pWalker, Select *p){ pTab->nRef = 1; pTab->zName = sqlite3MPrintf(db, "sqlite_sq_%p", (void*)pTab); while( pSel->pPrior ){ pSel = pSel->pPrior; } - selectColumnsFromExprList(pParse, pSel->pEList, &pTab->nCol, &pTab->aCol); + sqlite3ColumnsFromExprList(pParse, pSel->pEList,&pTab->nCol,&pTab->aCol); pTab->iPKey = -1; pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); pTab->tabFlags |= TF_Ephemeral; @@ -111882,12 +112885,19 @@ static int selectExpander(Walker *pWalker, Select *p){ pTab->nRef++; #if !defined(SQLITE_OMIT_VIEW) || !defined (SQLITE_OMIT_VIRTUALTABLE) if( pTab->pSelect || IsVirtual(pTab) ){ - /* We reach here if the named table is a really a view */ + i16 nCol; if( sqlite3ViewGetColumnNames(pParse, pTab) ) return WRC_Abort; assert( pFrom->pSelect==0 ); + if( pFrom->fg.isTabFunc && !IsVirtual(pTab) ){ + sqlite3ErrorMsg(pParse, "'%s' is not a function", pTab->zName); + return WRC_Abort; + } pFrom->pSelect = sqlite3SelectDup(db, pTab->pSelect, 0); sqlite3SelectSetName(pFrom->pSelect, pTab->zName); + nCol = pTab->nCol; + pTab->nCol = -1; sqlite3WalkSelect(pWalker, pFrom->pSelect); + pTab->nCol = nCol; } #endif } @@ -112000,7 +113010,7 @@ static int selectExpander(Walker *pWalker, Select *p){ tableSeen = 1; if( i>0 && zTName==0 ){ - if( (pFrom->jointype & JT_NATURAL)!=0 + if( (pFrom->fg.jointype & JT_NATURAL)!=0 && tableAndColumnIndex(pTabList, i, zName, 0, 0) ){ /* In a NATURAL join, omit the join columns from the @@ -112135,19 +113145,19 @@ static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p){ struct SrcList_item *pFrom; assert( p->selFlags & SF_Resolved ); - if( (p->selFlags & SF_HasTypeInfo)==0 ){ - p->selFlags |= SF_HasTypeInfo; - pParse = pWalker->pParse; - pTabList = p->pSrc; - for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ - Table *pTab = pFrom->pTab; - if( ALWAYS(pTab!=0) && (pTab->tabFlags & TF_Ephemeral)!=0 ){ - /* A sub-query in the FROM clause of a SELECT */ - Select *pSel = pFrom->pSelect; - if( pSel ){ - while( pSel->pPrior ) pSel = pSel->pPrior; - selectAddColumnTypeAndCollation(pParse, pTab, pSel); - } + assert( (p->selFlags & SF_HasTypeInfo)==0 ); + p->selFlags |= SF_HasTypeInfo; + pParse = pWalker->pParse; + pTabList = p->pSrc; + for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ + Table *pTab = pFrom->pTab; + assert( pTab!=0 ); + if( (pTab->tabFlags & TF_Ephemeral)!=0 ){ + /* A sub-query in the FROM clause of a SELECT */ + Select *pSel = pFrom->pSelect; + if( pSel ){ + while( pSel->pPrior ) pSel = pSel->pPrior; + selectAddColumnTypeAndCollation(pParse, pTab, pSel); } } } @@ -112286,7 +113296,7 @@ static void updateAccumulator(Parse *pParse, AggInfo *pAggInfo){ if( pList ){ nArg = pList->nExpr; regAgg = sqlite3GetTempRange(pParse, nArg); - sqlite3ExprCodeExprList(pParse, pList, regAgg, SQLITE_ECEL_DUP); + sqlite3ExprCodeExprList(pParse, pList, regAgg, 0, SQLITE_ECEL_DUP); }else{ nArg = 0; regAgg = 0; @@ -112473,7 +113483,17 @@ SQLITE_PRIVATE int sqlite3Select( struct SrcList_item *pItem = &pTabList->a[i]; Select *pSub = pItem->pSelect; int isAggSub; + Table *pTab = pItem->pTab; if( pSub==0 ) continue; + + /* Catch mismatch in the declared columns of a view and the number of + ** columns in the SELECT on the RHS */ + if( pTab->nCol!=pSub->pEList->nExpr ){ + sqlite3ErrorMsg(pParse, "expected %d columns for '%s' but got %d", + pTab->nCol, pTab->zName, pSub->pEList->nExpr); + goto select_end; + } + isAggSub = (pSub->selFlags & SF_Aggregate)!=0; if( flattenSubquery(pParse, p, i, isAgg, isAggSub) ){ /* This subquery can be absorbed into its parent. */ @@ -112527,7 +113547,7 @@ SQLITE_PRIVATE int sqlite3Select( ** is sufficient, though the subroutine to manifest the view does need ** to be invoked again. */ if( pItem->addrFillSub ){ - if( pItem->viaCoroutine==0 ){ + if( pItem->fg.viaCoroutine==0 ){ sqlite3VdbeAddOp2(v, OP_Gosub, pItem->regReturn, pItem->addrFillSub); } continue; @@ -112545,7 +113565,7 @@ SQLITE_PRIVATE int sqlite3Select( /* Make copies of constant WHERE-clause terms in the outer query down ** inside the subquery. This can help the subquery to run more efficiently. */ - if( (pItem->jointype & JT_OUTER)==0 + if( (pItem->fg.jointype & JT_OUTER)==0 && pushDownWhereTerms(db, pSub, p->pWhere, pItem->iCursor) ){ #if SELECTTRACE_ENABLED @@ -112574,7 +113594,7 @@ SQLITE_PRIVATE int sqlite3Select( explainSetInteger(pItem->iSelectId, (u8)pParse->iNextSelectId); sqlite3Select(pParse, pSub, &dest); pItem->pTab->nRowLogEst = sqlite3LogEst(pSub->nSelectRow); - pItem->viaCoroutine = 1; + pItem->fg.viaCoroutine = 1; pItem->regResult = dest.iSdst; sqlite3VdbeAddOp1(v, OP_EndCoroutine, pItem->regReturn); sqlite3VdbeJumpHere(v, addrTop-1); @@ -112592,7 +113612,7 @@ SQLITE_PRIVATE int sqlite3Select( pItem->regReturn = ++pParse->nMem; topAddr = sqlite3VdbeAddOp2(v, OP_Integer, 0, pItem->regReturn); pItem->addrFillSub = topAddr+1; - if( pItem->isCorrelated==0 ){ + if( pItem->fg.isCorrelated==0 ){ /* If the subquery is not correlated and if we are not inside of ** a trigger, then we only need to compute the value of the subquery ** once. */ @@ -112690,7 +113710,7 @@ SQLITE_PRIVATE int sqlite3Select( p->nSelectRow = LARGEST_INT64; computeLimitRegisters(pParse, p, iEnd); if( p->iLimit==0 && sSort.addrSortIndex>=0 ){ - sqlite3VdbeGetOp(v, sSort.addrSortIndex)->opcode = OP_SorterOpen; + sqlite3VdbeChangeOpcode(v, sSort.addrSortIndex, OP_SorterOpen); sSort.sortFlags |= SORTFLAG_UseSorter; } @@ -112825,7 +113845,7 @@ SQLITE_PRIVATE int sqlite3Select( */ if( pGroupBy ){ KeyInfo *pKeyInfo; /* Keying information for the group by clause */ - int j1; /* A-vs-B comparision jump */ + int addr1; /* A-vs-B comparision jump */ int addrOutputRow; /* Start of subroutine that outputs a result row */ int regOutputRow; /* Return address register for output subroutine */ int addrSetAbort; /* Set the abort flag and return */ @@ -112906,7 +113926,7 @@ SQLITE_PRIVATE int sqlite3Select( } regBase = sqlite3GetTempRange(pParse, nCol); sqlite3ExprCacheClear(pParse); - sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0); + sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0, 0); j = nGroupBy; for(i=0; inExpr, (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO); - j1 = sqlite3VdbeCurrentAddr(v); - sqlite3VdbeAddOp3(v, OP_Jump, j1+1, 0, j1+1); VdbeCoverage(v); + addr1 = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp3(v, OP_Jump, addr1+1, 0, addr1+1); VdbeCoverage(v); /* Generate code that runs whenever the GROUP BY changes. ** Changes in the GROUP BY are detected by the previous code @@ -112996,7 +114016,7 @@ SQLITE_PRIVATE int sqlite3Select( /* Update the aggregate accumulators based on the content of ** the current row */ - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); updateAccumulator(pParse, &sAggInfo); sqlite3VdbeAddOp2(v, OP_Integer, 1, iUseFlag); VdbeComment((v, "indicate data in accumulator")); @@ -113018,7 +114038,7 @@ SQLITE_PRIVATE int sqlite3Select( /* Jump over the subroutines */ - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrEnd); + sqlite3VdbeGoto(v, addrEnd); /* Generate a subroutine that outputs a single row of the result ** set. This subroutine first looks at the iUseFlag. If iUseFlag @@ -113172,7 +114192,7 @@ SQLITE_PRIVATE int sqlite3Select( updateAccumulator(pParse, &sAggInfo); assert( pMinMax==0 || pMinMax->nExpr==1 ); if( sqlite3WhereIsOrdered(pWInfo)>0 ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, sqlite3WhereBreakLabel(pWInfo)); + sqlite3VdbeGoto(v, sqlite3WhereBreakLabel(pWInfo)); VdbeComment((v, "%s() by index", (flag==WHERE_ORDERBY_MIN?"min":"max"))); } @@ -114695,9 +115715,9 @@ SQLITE_PRIVATE void sqlite3Update( /* Register Allocations */ int regRowCount = 0; /* A count of rows changed */ - int regOldRowid; /* The old rowid */ - int regNewRowid; /* The new rowid */ - int regNew; /* Content of the NEW.* table in triggers */ + int regOldRowid = 0; /* The old rowid */ + int regNewRowid = 0; /* The new rowid */ + int regNew = 0; /* Content of the NEW.* table in triggers */ int regOld = 0; /* Content of OLD.* table in triggers */ int regRowSet = 0; /* Rowset of rows to be updated */ int regKey = 0; /* composite PRIMARY KEY value */ @@ -114833,7 +115853,9 @@ SQLITE_PRIVATE void sqlite3Update( /* There is one entry in the aRegIdx[] array for each index on the table ** being updated. Fill in aRegIdx[] with a register number that will hold - ** the key for accessing each index. + ** the key for accessing each index. + ** + ** FIXME: Be smarter about omitting indexes that use expressions. */ for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ int reg; @@ -114842,7 +115864,8 @@ SQLITE_PRIVATE void sqlite3Update( }else{ reg = 0; for(i=0; inKeyCol; i++){ - if( aXRef[pIdx->aiColumn[i]]>=0 ){ + i16 iIdxCol = pIdx->aiColumn[i]; + if( iIdxCol<0 || aXRef[iIdxCol]>=0 ){ reg = ++pParse->nMem; break; } @@ -114858,29 +115881,20 @@ SQLITE_PRIVATE void sqlite3Update( if( pParse->nested==0 ) sqlite3VdbeCountChanges(v); sqlite3BeginWriteOperation(pParse, 1, iDb); -#ifndef SQLITE_OMIT_VIRTUALTABLE - /* Virtual tables must be handled separately */ - if( IsVirtual(pTab) ){ - updateVirtualTable(pParse, pTabList, pTab, pChanges, pRowidExpr, aXRef, - pWhere, onError); - pWhere = 0; - pTabList = 0; - goto update_cleanup; - } -#endif - /* Allocate required registers. */ - regRowSet = ++pParse->nMem; - regOldRowid = regNewRowid = ++pParse->nMem; - if( chngPk || pTrigger || hasFK ){ - regOld = pParse->nMem + 1; + if( !IsVirtual(pTab) ){ + regRowSet = ++pParse->nMem; + regOldRowid = regNewRowid = ++pParse->nMem; + if( chngPk || pTrigger || hasFK ){ + regOld = pParse->nMem + 1; + pParse->nMem += pTab->nCol; + } + if( chngKey || pTrigger || hasFK ){ + regNewRowid = ++pParse->nMem; + } + regNew = pParse->nMem + 1; pParse->nMem += pTab->nCol; } - if( chngKey || pTrigger || hasFK ){ - regNewRowid = ++pParse->nMem; - } - regNew = pParse->nMem + 1; - pParse->nMem += pTab->nCol; /* Start the view context. */ if( isView ){ @@ -114903,6 +115917,15 @@ SQLITE_PRIVATE void sqlite3Update( goto update_cleanup; } +#ifndef SQLITE_OMIT_VIRTUALTABLE + /* Virtual tables must be handled separately */ + if( IsVirtual(pTab) ){ + updateVirtualTable(pParse, pTabList, pTab, pChanges, pRowidExpr, aXRef, + pWhere, onError); + goto update_cleanup; + } +#endif + /* Begin the database scan */ if( HasRowid(pTab) ){ @@ -114942,6 +115965,7 @@ SQLITE_PRIVATE void sqlite3Update( if( pWInfo==0 ) goto update_cleanup; okOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); for(i=0; iaiColumn[i]>=0 ); sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, pPk->aiColumn[i], iPk+i); } @@ -114951,7 +115975,7 @@ SQLITE_PRIVATE void sqlite3Update( regKey = iPk; }else{ sqlite3VdbeAddOp4(v, OP_MakeRecord, iPk, nPk, regKey, - sqlite3IndexAffinityStr(v, pPk), nPk); + sqlite3IndexAffinityStr(db, pPk), nPk); sqlite3VdbeAddOp2(v, OP_IdxInsert, iEph, regKey); } sqlite3WhereEnd(pWInfo); @@ -115064,7 +116088,6 @@ SQLITE_PRIVATE void sqlite3Update( newmask = sqlite3TriggerColmask( pParse, pTrigger, pChanges, 1, TRIGGER_BEFORE, pTab, onError ); - /*sqlite3VdbeAddOp3(v, OP_Null, 0, regNew, regNew+pTab->nCol-1);*/ for(i=0; inCol; i++){ if( i==pTab->iPKey ){ sqlite3VdbeAddOp2(v, OP_Null, 0, regNew+i); @@ -115122,7 +116145,7 @@ SQLITE_PRIVATE void sqlite3Update( } if( !isView ){ - int j1 = 0; /* Address of jump instruction */ + int addr1 = 0; /* Address of jump instruction */ int bReplace = 0; /* True if REPLACE conflict resolution might happen */ /* Do constraint checks. */ @@ -115138,20 +116161,20 @@ SQLITE_PRIVATE void sqlite3Update( /* Delete the index entries associated with the current record. */ if( bReplace || chngKey ){ if( pPk ){ - j1 = sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, 0, regKey, nKey); + addr1 = sqlite3VdbeAddOp4Int(v, OP_NotFound, iDataCur, 0, regKey, nKey); }else{ - j1 = sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, 0, regOldRowid); + addr1 = sqlite3VdbeAddOp3(v, OP_NotExists, iDataCur, 0, regOldRowid); } VdbeCoverageNeverTaken(v); } - sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur, aRegIdx); + sqlite3GenerateRowIndexDelete(pParse, pTab, iDataCur, iIdxCur, aRegIdx, -1); /* If changing the record number, delete the old record. */ if( hasFK || chngKey || pPk!=0 ){ sqlite3VdbeAddOp2(v, OP_Delete, iDataCur, 0); } if( bReplace || chngKey ){ - sqlite3VdbeJumpHere(v, j1); + sqlite3VdbeJumpHere(v, addr1); } if( hasFK ){ @@ -115188,7 +116211,7 @@ SQLITE_PRIVATE void sqlite3Update( sqlite3VdbeResolveLabel(v, labelContinue); sqlite3VdbeAddOp2(v, OP_Next, iEph, addrTop); VdbeCoverage(v); }else{ - sqlite3VdbeAddOp2(v, OP_Goto, 0, labelContinue); + sqlite3VdbeGoto(v, labelContinue); } sqlite3VdbeResolveLabel(v, labelBreak); @@ -115242,21 +116265,23 @@ update_cleanup: /* ** Generate code for an UPDATE of a virtual table. ** -** The strategy is that we create an ephemeral table that contains +** There are two possible strategies - the default and the special +** "onepass" strategy. Onepass is only used if the virtual table +** implementation indicates that pWhere may match at most one row. +** +** The default strategy is to create an ephemeral table that contains ** for each row to be changed: ** ** (A) The original rowid of that row. -** (B) The revised rowid for the row. (note1) +** (B) The revised rowid for the row. ** (C) The content of every column in the row. ** -** Then we loop over this ephemeral table and for each row in -** the ephemeral table call VUpdate. +** Then loop through the contents of this ephemeral table executing a +** VUpdate for each row. When finished, drop the ephemeral table. ** -** When finished, drop the ephemeral table. -** -** (note1) Actually, if we know in advance that (A) is always the same -** as (B) we only store (A), then duplicate (A) when pulling -** it out of the ephemeral table before calling VUpdate. +** The "onepass" strategy does not use an ephemeral table. Instead, it +** stores the same values (A, B and C above) in a register array and +** makes a single invocation of VUpdate. */ static void updateVirtualTable( Parse *pParse, /* The parsing context */ @@ -115269,66 +116294,96 @@ static void updateVirtualTable( int onError /* ON CONFLICT strategy */ ){ Vdbe *v = pParse->pVdbe; /* Virtual machine under construction */ - ExprList *pEList = 0; /* The result set of the SELECT statement */ - Select *pSelect = 0; /* The SELECT statement */ - Expr *pExpr; /* Temporary expression */ int ephemTab; /* Table holding the result of the SELECT */ int i; /* Loop counter */ - int addr; /* Address of top of loop */ - int iReg; /* First register in set passed to OP_VUpdate */ sqlite3 *db = pParse->db; /* Database connection */ const char *pVTab = (const char*)sqlite3GetVTable(db, pTab); - SelectDest dest; + WhereInfo *pWInfo; + int nArg = 2 + pTab->nCol; /* Number of arguments to VUpdate */ + int regArg; /* First register in VUpdate arg array */ + int regRec; /* Register in which to assemble record */ + int regRowid; /* Register for ephem table rowid */ + int iCsr = pSrc->a[0].iCursor; /* Cursor used for virtual table scan */ + int aDummy[2]; /* Unused arg for sqlite3WhereOkOnePass() */ + int bOnePass; /* True to use onepass strategy */ + int addr; /* Address of OP_OpenEphemeral */ - /* Construct the SELECT statement that will find the new values for - ** all updated rows. - */ - pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db, TK_ID, "_rowid_")); - if( pRowid ){ - pEList = sqlite3ExprListAppend(pParse, pEList, - sqlite3ExprDup(db, pRowid, 0)); - } - assert( pTab->iPKey<0 ); - for(i=0; inCol; i++){ - if( aXRef[i]>=0 ){ - pExpr = sqlite3ExprDup(db, pChanges->a[aXRef[i]].pExpr, 0); - }else{ - pExpr = sqlite3Expr(db, TK_ID, pTab->aCol[i].zName); - } - pEList = sqlite3ExprListAppend(pParse, pEList, pExpr); - } - pSelect = sqlite3SelectNew(pParse, pEList, pSrc, pWhere, 0, 0, 0, 0, 0, 0); - - /* Create the ephemeral table into which the update results will - ** be stored. - */ + /* Allocate nArg registers to martial the arguments to VUpdate. Then + ** create and open the ephemeral table in which the records created from + ** these arguments will be temporarily stored. */ assert( v ); ephemTab = pParse->nTab++; + addr= sqlite3VdbeAddOp2(v, OP_OpenEphemeral, ephemTab, nArg); + regArg = pParse->nMem + 1; + pParse->nMem += nArg; + regRec = ++pParse->nMem; + regRowid = ++pParse->nMem; - /* fill the ephemeral table - */ - sqlite3SelectDestInit(&dest, SRT_EphemTab, ephemTab); - sqlite3Select(pParse, pSelect, &dest); + /* Start scanning the virtual table */ + pWInfo = sqlite3WhereBegin(pParse, pSrc, pWhere, 0,0,WHERE_ONEPASS_DESIRED,0); + if( pWInfo==0 ) return; - /* Generate code to scan the ephemeral table and call VUpdate. */ - iReg = ++pParse->nMem; - pParse->nMem += pTab->nCol+1; - addr = sqlite3VdbeAddOp2(v, OP_Rewind, ephemTab, 0); VdbeCoverage(v); - sqlite3VdbeAddOp3(v, OP_Column, ephemTab, 0, iReg); - sqlite3VdbeAddOp3(v, OP_Column, ephemTab, (pRowid?1:0), iReg+1); + /* Populate the argument registers. */ + sqlite3VdbeAddOp2(v, OP_Rowid, iCsr, regArg); + if( pRowid ){ + sqlite3ExprCode(pParse, pRowid, regArg+1); + }else{ + sqlite3VdbeAddOp2(v, OP_Rowid, iCsr, regArg+1); + } for(i=0; inCol; i++){ - sqlite3VdbeAddOp3(v, OP_Column, ephemTab, i+1+(pRowid!=0), iReg+2+i); + if( aXRef[i]>=0 ){ + sqlite3ExprCode(pParse, pChanges->a[aXRef[i]].pExpr, regArg+2+i); + }else{ + sqlite3VdbeAddOp3(v, OP_VColumn, iCsr, i, regArg+2+i); + } + } + + bOnePass = sqlite3WhereOkOnePass(pWInfo, aDummy); + + if( bOnePass ){ + /* If using the onepass strategy, no-op out the OP_OpenEphemeral coded + ** above. Also, if this is a top-level parse (not a trigger), clear the + ** multi-write flag so that the VM does not open a statement journal */ + sqlite3VdbeChangeToNoop(v, addr); + if( sqlite3IsToplevel(pParse) ){ + pParse->isMultiWrite = 0; + } + }else{ + /* Create a record from the argument register contents and insert it into + ** the ephemeral table. */ + sqlite3VdbeAddOp3(v, OP_MakeRecord, regArg, nArg, regRec); + sqlite3VdbeAddOp2(v, OP_NewRowid, ephemTab, regRowid); + sqlite3VdbeAddOp3(v, OP_Insert, ephemTab, regRec, regRowid); + } + + + if( bOnePass==0 ){ + /* End the virtual table scan */ + sqlite3WhereEnd(pWInfo); + + /* Begin scannning through the ephemeral table. */ + addr = sqlite3VdbeAddOp1(v, OP_Rewind, ephemTab); VdbeCoverage(v); + + /* Extract arguments from the current row of the ephemeral table and + ** invoke the VUpdate method. */ + for(i=0; inCol+2, iReg, pVTab, P4_VTAB); + sqlite3VdbeAddOp4(v, OP_VUpdate, 0, nArg, regArg, pVTab, P4_VTAB); sqlite3VdbeChangeP5(v, onError==OE_Default ? OE_Abort : onError); sqlite3MayAbort(pParse); - sqlite3VdbeAddOp2(v, OP_Next, ephemTab, addr+1); VdbeCoverage(v); - sqlite3VdbeJumpHere(v, addr); - sqlite3VdbeAddOp2(v, OP_Close, ephemTab, 0); - /* Cleanup */ - sqlite3SelectDelete(db, pSelect); + /* End of the ephemeral table scan. Or, if using the onepass strategy, + ** jump to here if the scan visited zero rows. */ + if( bOnePass==0 ){ + sqlite3VdbeAddOp2(v, OP_Next, ephemTab, addr+1); VdbeCoverage(v); + sqlite3VdbeJumpHere(v, addr); + sqlite3VdbeAddOp2(v, OP_Close, ephemTab, 0); + }else{ + sqlite3WhereEnd(pWInfo); + } } #endif /* SQLITE_OMIT_VIRTUALTABLE */ @@ -115770,6 +116825,7 @@ static int createModule( pMod->pModule = pModule; pMod->pAux = pAux; pMod->xDestroy = xDestroy; + pMod->pEpoTab = 0; pDel = (Module *)sqlite3HashInsert(&db->aModule,zCopy,(void*)pMod); assert( pDel==0 || pDel==pMod ); if( pDel ){ @@ -115997,23 +117053,17 @@ SQLITE_PRIVATE void sqlite3VtabClear(sqlite3 *db, Table *p){ ** deleted. */ static void addModuleArgument(sqlite3 *db, Table *pTable, char *zArg){ - int i = pTable->nModuleArg++; - int nBytes = sizeof(char *)*(1+pTable->nModuleArg); + int nBytes = sizeof(char *)*(2+pTable->nModuleArg); char **azModuleArg; azModuleArg = sqlite3DbRealloc(db, pTable->azModuleArg, nBytes); if( azModuleArg==0 ){ - int j; - for(j=0; jazModuleArg[j]); - } sqlite3DbFree(db, zArg); - sqlite3DbFree(db, pTable->azModuleArg); - pTable->nModuleArg = 0; }else{ + int i = pTable->nModuleArg++; azModuleArg[i] = zArg; azModuleArg[i+1] = 0; + pTable->azModuleArg = azModuleArg; } - pTable->azModuleArg = azModuleArg; } /* @@ -116140,7 +117190,7 @@ SQLITE_PRIVATE void sqlite3VtabFinishParse(Parse *pParse, Token *pEnd){ sqlite3VdbeAddParseSchemaOp(v, iDb, zWhere); iReg = ++pParse->nMem; - sqlite3VdbeAddOp4(v, OP_String8, 0, iReg, 0, pTab->zName, 0); + sqlite3VdbeLoadString(v, iReg, pTab->zName); sqlite3VdbeAddOp2(v, OP_VCreate, iDb, iReg); } @@ -116416,7 +117466,7 @@ SQLITE_PRIVATE int sqlite3VtabCallCreate(sqlite3 *db, int iDb, const char *zTab, ** invoke it now. If the module has not been registered, return an ** error. Otherwise, do nothing. */ - if( !pMod ){ + if( pMod==0 || pMod->pModule->xCreate==0 || pMod->pModule->xDestroy==0 ){ *pzErr = sqlite3MPrintf(db, "no such module: %s", zMod); rc = SQLITE_ERROR; }else{ @@ -116518,6 +117568,7 @@ SQLITE_PRIVATE int sqlite3VtabCallDestroy(sqlite3 *db, int iDb, const char *zTab pTab = sqlite3FindTable(db, zTab, db->aDb[iDb].zName); if( ALWAYS(pTab!=0 && pTab->pVTable!=0) ){ VTable *p; + int (*xDestroy)(sqlite3_vtab *); for(p=pTab->pVTable; p; p=p->pNext){ assert( p->pVtab ); if( p->pVtab->nRef>0 ){ @@ -116525,7 +117576,9 @@ SQLITE_PRIVATE int sqlite3VtabCallDestroy(sqlite3 *db, int iDb, const char *zTab } } p = vtabDisconnectAll(db, pTab); - rc = p->pMod->pModule->xDestroy(p->pVtab); + xDestroy = p->pMod->pModule->xDestroy; + assert( xDestroy!=0 ); /* Checked before the virtual table is created */ + rc = xDestroy(p->pVtab); /* Remove the sqlite3_vtab* from the aVTrans[] array, if applicable */ if( rc==SQLITE_OK ){ assert( pTab->pVTable==p && p->pNext==0 ); @@ -116651,7 +117704,9 @@ SQLITE_PRIVATE int sqlite3VtabBegin(sqlite3 *db, VTable *pVTab){ if( rc==SQLITE_OK ){ rc = pModule->xBegin(pVTab->pVtab); if( rc==SQLITE_OK ){ + int iSvpt = db->nStatement + db->nSavepoint; addToVTrans(db, pVTab); + if( iSvpt ) rc = sqlite3VtabSavepoint(db, SAVEPOINT_BEGIN, iSvpt-1); } } } @@ -116804,6 +117859,67 @@ SQLITE_PRIVATE void sqlite3VtabMakeWritable(Parse *pParse, Table *pTab){ } } +/* +** Check to see if virtual tale module pMod can be have an eponymous +** virtual table instance. If it can, create one if one does not already +** exist. Return non-zero if the eponymous virtual table instance exists +** when this routine returns, and return zero if it does not exist. +** +** An eponymous virtual table instance is one that is named after its +** module, and more importantly, does not require a CREATE VIRTUAL TABLE +** statement in order to come into existance. Eponymous virtual table +** instances always exist. They cannot be DROP-ed. +** +** Any virtual table module for which xConnect and xCreate are the same +** method can have an eponymous virtual table instance. +*/ +SQLITE_PRIVATE int sqlite3VtabEponymousTableInit(Parse *pParse, Module *pMod){ + const sqlite3_module *pModule = pMod->pModule; + Table *pTab; + char *zErr = 0; + int nName; + int rc; + sqlite3 *db = pParse->db; + if( pMod->pEpoTab ) return 1; + if( pModule->xCreate!=0 && pModule->xCreate!=pModule->xConnect ) return 0; + nName = sqlite3Strlen30(pMod->zName) + 1; + pTab = sqlite3DbMallocZero(db, sizeof(Table) + nName); + if( pTab==0 ) return 0; + pMod->pEpoTab = pTab; + pTab->zName = (char*)&pTab[1]; + memcpy(pTab->zName, pMod->zName, nName); + pTab->nRef = 1; + pTab->pSchema = db->aDb[0].pSchema; + pTab->tabFlags |= TF_Virtual; + pTab->nModuleArg = 0; + pTab->iPKey = -1; + addModuleArgument(db, pTab, sqlite3DbStrDup(db, pTab->zName)); + addModuleArgument(db, pTab, 0); + addModuleArgument(db, pTab, sqlite3DbStrDup(db, pTab->zName)); + rc = vtabCallConstructor(db, pTab, pMod, pModule->xConnect, &zErr); + if( rc ){ + sqlite3ErrorMsg(pParse, "%s", zErr); + sqlite3DbFree(db, zErr); + sqlite3VtabEponymousTableClear(db, pMod); + return 0; + } + return 1; +} + +/* +** Erase the eponymous virtual table instance associated with +** virtual table module pMod, if it exists. +*/ +SQLITE_PRIVATE void sqlite3VtabEponymousTableClear(sqlite3 *db, Module *pMod){ + Table *pTab = pMod->pEpoTab; + if( pTab!=0 ){ + sqlite3DeleteColumnNames(db, pTab); + sqlite3VtabClear(db, pTab); + sqlite3DbFree(db, pTab); + pMod->pEpoTab = 0; + } +} + /* ** Return the ON CONFLICT resolution mode in effect for the virtual ** table update operation currently in progress. @@ -117174,12 +118290,14 @@ struct WhereScan { WhereClause *pOrigWC; /* Original, innermost WhereClause */ WhereClause *pWC; /* WhereClause currently being scanned */ char *zCollName; /* Required collating sequence, if not NULL */ + Expr *pIdxExpr; /* Search for this index expression */ char idxaff; /* Must match this affinity, if zCollName!=NULL */ unsigned char nEquiv; /* Number of entries in aEquiv[] */ unsigned char iEquiv; /* Next unused slot in aEquiv[] */ u32 opMask; /* Acceptable operators */ int k; /* Resume scanning at this->pWC->a[this->k] */ - int aEquiv[22]; /* Cursor,Column pairs for equivalence classes */ + int aiCur[11]; /* Cursors in the equivalence class */ + i16 aiColumn[11]; /* Corresponding column number in the eq-class */ }; /* @@ -117298,7 +118416,7 @@ struct WhereInfo { u16 wctrlFlags; /* Flags originally passed to sqlite3WhereBegin() */ i8 nOBSat; /* Number of ORDER BY terms satisfied by indices */ u8 sorted; /* True if really sorted (not just grouped) */ - u8 okOnePass; /* Ok to use one-pass algorithm for UPDATE/DELETE */ + u8 eOnePass; /* ONEPASS_OFF, or _SINGLE, or _MULTI */ u8 untestedTerms; /* Not all WHERE terms resolved by outer loop */ u8 eDistinct; /* One of the WHERE_DISTINCT_* values below */ u8 nLevel; /* Number of nested loop */ @@ -117363,6 +118481,7 @@ SQLITE_PRIVATE void sqlite3WhereSplit(WhereClause*,Expr*,u8); SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet*, Expr*); SQLITE_PRIVATE Bitmask sqlite3WhereExprListUsage(WhereMaskSet*, ExprList*); SQLITE_PRIVATE void sqlite3WhereExprAnalyze(SrcList*, WhereClause*); +SQLITE_PRIVATE void sqlite3WhereTabFuncArgs(Parse*, struct SrcList_item*, WhereClause*); @@ -117440,6 +118559,16 @@ static void explainAppendTerm( sqlite3StrAccumAppend(pStr, "?", 1); } +/* +** Return the name of the i-th column of the pIdx index. +*/ +static const char *explainIndexColumnName(Index *pIdx, int i){ + i = pIdx->aiColumn[i]; + if( i==XN_EXPR ) return ""; + if( i==XN_ROWID ) return "rowid"; + return pIdx->pTable->aCol[i].zName; +} + /* ** Argument pLevel describes a strategy for scanning table pTab. This ** function appends text to pStr that describes the subset of table @@ -117454,33 +118583,27 @@ static void explainAppendTerm( ** ** "a=? AND b>?" */ -static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop, Table *pTab){ +static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop){ Index *pIndex = pLoop->u.btree.pIndex; u16 nEq = pLoop->u.btree.nEq; u16 nSkip = pLoop->nSkip; int i, j; - Column *aCol = pTab->aCol; - i16 *aiColumn = pIndex->aiColumn; if( nEq==0 && (pLoop->wsFlags&(WHERE_BTM_LIMIT|WHERE_TOP_LIMIT))==0 ) return; sqlite3StrAccumAppend(pStr, " (", 2); for(i=0; i=nSkip ){ - explainAppendTerm(pStr, i, z, "="); - }else{ - if( i ) sqlite3StrAccumAppend(pStr, " AND ", 5); - sqlite3XPrintf(pStr, 0, "ANY(%s)", z); - } + const char *z = explainIndexColumnName(pIndex, i); + if( i ) sqlite3StrAccumAppend(pStr, " AND ", 5); + sqlite3XPrintf(pStr, 0, i>=nSkip ? "%s=?" : "ANY(%s)", z); } j = i; if( pLoop->wsFlags&WHERE_BTM_LIMIT ){ - char *z = aiColumn[j] < 0 ? "rowid" : aCol[aiColumn[j]].zName; + const char *z = explainIndexColumnName(pIndex, i); explainAppendTerm(pStr, i++, z, ">"); } if( pLoop->wsFlags&WHERE_TOP_LIMIT ){ - char *z = aiColumn[j] < 0 ? "rowid" : aCol[aiColumn[j]].zName; + const char *z = explainIndexColumnName(pIndex, j); explainAppendTerm(pStr, i, z, "<"); } sqlite3StrAccumAppend(pStr, ")", 1); @@ -117561,22 +118684,21 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( if( zFmt ){ sqlite3StrAccumAppend(&str, " USING ", 7); sqlite3XPrintf(&str, 0, zFmt, pIdx->zName); - explainIndexRange(&str, pLoop, pItem->pTab); + explainIndexRange(&str, pLoop); } }else if( (flags & WHERE_IPK)!=0 && (flags & WHERE_CONSTRAINT)!=0 ){ - const char *zRange; + const char *zRangeOp; if( flags&(WHERE_COLUMN_EQ|WHERE_COLUMN_IN) ){ - zRange = "(rowid=?)"; + zRangeOp = "="; }else if( (flags&WHERE_BOTH_LIMIT)==WHERE_BOTH_LIMIT ){ - zRange = "(rowid>? AND rowid? AND rowid<"; }else if( flags&WHERE_BTM_LIMIT ){ - zRange = "(rowid>?)"; + zRangeOp = ">"; }else{ assert( flags&WHERE_TOP_LIMIT); - zRange = "(rowidu.btree.nEq + nExtraReg; pParse->nMem += nReg; - zAff = sqlite3DbStrDup(pParse->db, sqlite3IndexAffinityStr(v, pIdx)); + zAff = sqlite3DbStrDup(pParse->db,sqlite3IndexAffinityStr(pParse->db,pIdx)); if( !zAff ){ pParse->db->mallocFailed = 1; } @@ -117910,8 +119032,8 @@ static int codeAllEqualityTerms( sqlite3VdbeJumpHere(v, j); for(j=0; jaiColumn[j]>=0 ); - VdbeComment((v, "%s", pIdx->pTable->aCol[pIdx->aiColumn[j]].zName)); + testcase( pIdx->aiColumn[j]==XN_EXPR ); + VdbeComment((v, "%s", explainIndexColumnName(pIdx, j))); } } @@ -118045,14 +119167,14 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** initialize a memory cell that records if this table matches any ** row of the left table of the join. */ - if( pLevel->iFrom>0 && (pTabItem[0].jointype & JT_LEFT)!=0 ){ + if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){ pLevel->iLeftJoin = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Integer, 0, pLevel->iLeftJoin); VdbeComment((v, "init LEFT JOIN no-match flag")); } /* Special case of a FROM clause subquery implemented as a co-routine */ - if( pTabItem->viaCoroutine ){ + if( pTabItem->fg.viaCoroutine ){ int regYield = pTabItem->regReturn; sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub); pLevel->p2 = sqlite3VdbeAddOp2(v, OP_Yield, regYield, addrBrk); @@ -118096,8 +119218,8 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( disableTerm(pLevel, pLoop->aLTerm[j]); } } - pLevel->op = OP_VNext; pLevel->p1 = iCur; + pLevel->op = pWInfo->eOnePass ? OP_Noop : OP_VNext; pLevel->p2 = sqlite3VdbeCurrentAddr(v); sqlite3ReleaseTempRange(pParse, iReg, nConstraint+2); sqlite3ExprCachePop(pParse); @@ -118465,7 +119587,12 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( iRowidReg = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_IdxRowid, iIdxCur, iRowidReg); sqlite3ExprCacheStore(pParse, iCur, -1, iRowidReg); - sqlite3VdbeAddOp2(v, OP_Seek, iCur, iRowidReg); /* Deferred seek */ + if( pWInfo->eOnePass!=ONEPASS_OFF ){ + sqlite3VdbeAddOp3(v, OP_NotExists, iCur, 0, iRowidReg); + VdbeCoverage(v); + }else{ + sqlite3VdbeAddOp2(v, OP_Seek, iCur, iRowidReg); /* Deferred seek */ + } }else if( iCur!=iIdxCur ){ Index *pPk = sqlite3PrimaryKeyIndex(pIdx->pTable); iRowidReg = sqlite3GetTempRange(pParse, pPk->nKeyCol); @@ -118657,7 +119784,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( pOrTerm->leftCursor==iCur || (pOrTerm->eOperator & WO_AND)!=0 ){ WhereInfo *pSubWInfo; /* Info for single OR-term scan */ Expr *pOrExpr = pOrTerm->pExpr; /* Current OR clause term */ - int j1 = 0; /* Address of jump operation */ + int jmp1 = 0; /* Address of jump operation */ if( pAndExpr && !ExprHasProperty(pOrExpr, EP_FromJoin) ){ pAndExpr->pLeft = pOrExpr; pOrExpr = pAndExpr; @@ -118684,7 +119811,8 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( int iSet = ((ii==pOrWc->nTerm-1)?-1:ii); if( HasRowid(pTab) ){ r = sqlite3ExprCodeGetColumn(pParse, pTab, -1, iCur, regRowid, 0); - j1 = sqlite3VdbeAddOp4Int(v, OP_RowSetTest, regRowset, 0, r,iSet); + jmp1 = sqlite3VdbeAddOp4Int(v, OP_RowSetTest, regRowset, 0, + r,iSet); VdbeCoverage(v); }else{ Index *pPk = sqlite3PrimaryKeyIndex(pTab); @@ -118714,7 +119842,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** need to insert the key into the temp table, as it will never ** be tested for. */ if( iSet ){ - j1 = sqlite3VdbeAddOp4Int(v, OP_Found, regRowset, 0, r, nPk); + jmp1 = sqlite3VdbeAddOp4Int(v, OP_Found, regRowset, 0, r, nPk); VdbeCoverage(v); } if( iSet>=0 ){ @@ -118733,7 +119861,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( /* Jump here (skipping the main loop body subroutine) if the ** current sub-WHERE row is a duplicate from prior sub-WHEREs. */ - if( j1 ) sqlite3VdbeJumpHere(v, j1); + if( jmp1 ) sqlite3VdbeJumpHere(v, jmp1); /* The pSubWInfo->untestedTerms flag means that this OR term ** contained one or more AND term from a notReady table. The @@ -118779,7 +119907,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( sqlite3ExprDelete(db, pAndExpr); } sqlite3VdbeChangeP1(v, iRetInit, sqlite3VdbeCurrentAddr(v)); - sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrBrk); + sqlite3VdbeGoto(v, pLevel->addrBrk); sqlite3VdbeResolveLabel(v, iLoopBody); if( pWInfo->nLevel>1 ) sqlite3StackFree(db, pOrTab); @@ -118794,7 +119922,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( static const u8 aStep[] = { OP_Next, OP_Prev }; static const u8 aStart[] = { OP_Rewind, OP_Last }; assert( bRev==0 || bRev==1 ); - if( pTabItem->isRecursive ){ + if( pTabItem->fg.isRecursive ){ /* Tables marked isRecursive have only a single row that is stored in ** a pseudo-cursor. No need to Rewind or Next such cursors. */ pLevel->op = OP_Noop; @@ -119702,6 +120830,51 @@ static Bitmask exprSelectUsage(WhereMaskSet *pMaskSet, Select *pS){ return mask; } +/* +** Expression pExpr is one operand of a comparison operator that might +** be useful for indexing. This routine checks to see if pExpr appears +** in any index. Return TRUE (1) if pExpr is an indexed term and return +** FALSE (0) if not. If TRUE is returned, also set *piCur to the cursor +** number of the table that is indexed and *piColumn to the column number +** of the column that is indexed, or -2 if an expression is being indexed. +** +** If pExpr is a TK_COLUMN column reference, then this routine always returns +** true even if that particular column is not indexed, because the column +** might be added to an automatic index later. +*/ +static int exprMightBeIndexed( + SrcList *pFrom, /* The FROM clause */ + Bitmask mPrereq, /* Bitmask of FROM clause terms referenced by pExpr */ + Expr *pExpr, /* An operand of a comparison operator */ + int *piCur, /* Write the referenced table cursor number here */ + int *piColumn /* Write the referenced table column number here */ +){ + Index *pIdx; + int i; + int iCur; + if( pExpr->op==TK_COLUMN ){ + *piCur = pExpr->iTable; + *piColumn = pExpr->iColumn; + return 1; + } + if( mPrereq==0 ) return 0; /* No table references */ + if( (mPrereq&(mPrereq-1))!=0 ) return 0; /* Refs more than one table */ + for(i=0; mPrereq>1; i++, mPrereq>>=1){} + iCur = pFrom->a[i].iCursor; + for(pIdx=pFrom->a[i].pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + if( pIdx->aColExpr==0 ) continue; + for(i=0; inKeyCol; i++){ + if( pIdx->aiColumn[i]!=(-2) ) continue; + if( sqlite3ExprCompare(pExpr, pIdx->aColExpr->a[i].pExpr, iCur)==0 ){ + *piCur = iCur; + *piColumn = -2; + return 1; + } + } + } + return 0; +} + /* ** The input to this routine is an WhereTerm structure with only the ** "pExpr" field filled in. The job of this routine is to analyze the @@ -119772,16 +120945,19 @@ static void exprAnalyze( pTerm->iParent = -1; pTerm->eOperator = 0; if( allowedOp(op) ){ + int iCur, iColumn; Expr *pLeft = sqlite3ExprSkipCollate(pExpr->pLeft); Expr *pRight = sqlite3ExprSkipCollate(pExpr->pRight); u16 opMask = (pTerm->prereqRight & prereqLeft)==0 ? WO_ALL : WO_EQUIV; - if( pLeft->op==TK_COLUMN ){ - pTerm->leftCursor = pLeft->iTable; - pTerm->u.leftColumn = pLeft->iColumn; + if( exprMightBeIndexed(pSrc, prereqLeft, pLeft, &iCur, &iColumn) ){ + pTerm->leftCursor = iCur; + pTerm->u.leftColumn = iColumn; pTerm->eOperator = operatorMask(op) & opMask; } if( op==TK_IS ) pTerm->wtFlags |= TERM_IS; - if( pRight && pRight->op==TK_COLUMN ){ + if( pRight + && exprMightBeIndexed(pSrc, pTerm->prereqRight, pRight, &iCur, &iColumn) + ){ WhereTerm *pNew; Expr *pDup; u16 eExtraOp = 0; /* Extra bits for pNew->eOperator */ @@ -119809,9 +120985,8 @@ static void exprAnalyze( pNew = pTerm; } exprCommute(pParse, pDup); - pLeft = sqlite3ExprSkipCollate(pDup->pLeft); - pNew->leftCursor = pLeft->iTable; - pNew->u.leftColumn = pLeft->iColumn; + pNew->leftCursor = iCur; + pNew->u.leftColumn = iColumn; testcase( (prereqLeft | extraRight) != prereqLeft ); pNew->prereqRight = prereqLeft | extraRight; pNew->prereqAll = prereqAll; @@ -120155,6 +121330,46 @@ SQLITE_PRIVATE void sqlite3WhereExprAnalyze( } } +/* +** For table-valued-functions, transform the function arguments into +** new WHERE clause terms. +** +** Each function argument translates into an equality constraint against +** a HIDDEN column in the table. +*/ +SQLITE_PRIVATE void sqlite3WhereTabFuncArgs( + Parse *pParse, /* Parsing context */ + struct SrcList_item *pItem, /* The FROM clause term to process */ + WhereClause *pWC /* Xfer function arguments to here */ +){ + Table *pTab; + int j, k; + ExprList *pArgs; + Expr *pColRef; + Expr *pTerm; + if( pItem->fg.isTabFunc==0 ) return; + pTab = pItem->pTab; + assert( pTab!=0 ); + pArgs = pItem->u1.pFuncArg; + assert( pArgs!=0 ); + for(j=k=0; jnExpr; j++){ + while( knCol && (pTab->aCol[k].colFlags & COLFLAG_HIDDEN)==0 ){ k++; } + if( k>=pTab->nCol ){ + sqlite3ErrorMsg(pParse, "too many arguments on %s() - max %d", + pTab->zName, j); + return; + } + pColRef = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); + if( pColRef==0 ) return; + pColRef->iTable = pItem->iCursor; + pColRef->iColumn = k++; + pColRef->pTab = pTab; + pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef, + sqlite3ExprDup(pParse->db, pArgs->a[j].pExpr, 0), 0); + whereClauseInsert(pWC, pTerm, TERM_DYNAMIC); + } +} + /************** End of whereexpr.c *******************************************/ /************** Begin file where.c *******************************************/ /* @@ -120228,9 +121443,11 @@ SQLITE_PRIVATE int sqlite3WhereBreakLabel(WhereInfo *pWInfo){ } /* -** Return TRUE if an UPDATE or DELETE statement can operate directly on -** the rowids returned by a WHERE clause. Return FALSE if doing an -** UPDATE or DELETE might change subsequent WHERE clause results. +** Return ONEPASS_OFF (0) if an UPDATE or DELETE statement is unable to +** operate directly on the rowis returned by a WHERE clause. Return +** ONEPASS_SINGLE (1) if the statement can operation directly because only +** a single row is to be changed. Return ONEPASS_MULTI (2) if the one-pass +** optimization can be used on multiple ** ** If the ONEPASS optimization is used (if this routine returns true) ** then also write the indices of open cursors used by ONEPASS @@ -120244,7 +121461,14 @@ SQLITE_PRIVATE int sqlite3WhereBreakLabel(WhereInfo *pWInfo){ */ SQLITE_PRIVATE int sqlite3WhereOkOnePass(WhereInfo *pWInfo, int *aiCur){ memcpy(aiCur, pWInfo->aiCurOnePass, sizeof(int)*2); - return pWInfo->okOnePass; +#ifdef WHERETRACE_ENABLED + if( sqlite3WhereTrace && pWInfo->eOnePass!=ONEPASS_OFF ){ + sqlite3DebugPrintf("%s cursors: %d %d\n", + pWInfo->eOnePass==ONEPASS_SINGLE ? "ONEPASS_SINGLE" : "ONEPASS_MULTI", + aiCur[0], aiCur[1]); + } +#endif + return pWInfo->eOnePass; } /* @@ -120330,37 +121554,39 @@ static void createMask(WhereMaskSet *pMaskSet, int iCursor){ */ static WhereTerm *whereScanNext(WhereScan *pScan){ int iCur; /* The cursor on the LHS of the term */ - int iColumn; /* The column on the LHS of the term. -1 for IPK */ + i16 iColumn; /* The column on the LHS of the term. -1 for IPK */ Expr *pX; /* An expression being tested */ WhereClause *pWC; /* Shorthand for pScan->pWC */ WhereTerm *pTerm; /* The term being tested */ int k = pScan->k; /* Where to start scanning */ while( pScan->iEquiv<=pScan->nEquiv ){ - iCur = pScan->aEquiv[pScan->iEquiv-2]; - iColumn = pScan->aEquiv[pScan->iEquiv-1]; + iCur = pScan->aiCur[pScan->iEquiv-1]; + iColumn = pScan->aiColumn[pScan->iEquiv-1]; + if( iColumn==XN_EXPR && pScan->pIdxExpr==0 ) return 0; while( (pWC = pScan->pWC)!=0 ){ for(pTerm=pWC->a+k; knTerm; k++, pTerm++){ if( pTerm->leftCursor==iCur && pTerm->u.leftColumn==iColumn - && (pScan->iEquiv<=2 || !ExprHasProperty(pTerm->pExpr, EP_FromJoin)) + && (iColumn!=XN_EXPR + || sqlite3ExprCompare(pTerm->pExpr->pLeft,pScan->pIdxExpr,iCur)==0) + && (pScan->iEquiv<=1 || !ExprHasProperty(pTerm->pExpr, EP_FromJoin)) ){ if( (pTerm->eOperator & WO_EQUIV)!=0 - && pScan->nEquivaEquiv) + && pScan->nEquivaiCur) + && (pX = sqlite3ExprSkipCollate(pTerm->pExpr->pRight))->op==TK_COLUMN ){ int j; - pX = sqlite3ExprSkipCollate(pTerm->pExpr->pRight); - assert( pX->op==TK_COLUMN ); - for(j=0; jnEquiv; j+=2){ - if( pScan->aEquiv[j]==pX->iTable - && pScan->aEquiv[j+1]==pX->iColumn ){ + for(j=0; jnEquiv; j++){ + if( pScan->aiCur[j]==pX->iTable + && pScan->aiColumn[j]==pX->iColumn ){ break; } } if( j==pScan->nEquiv ){ - pScan->aEquiv[j] = pX->iTable; - pScan->aEquiv[j+1] = pX->iColumn; - pScan->nEquiv += 2; + pScan->aiCur[j] = pX->iTable; + pScan->aiColumn[j] = pX->iColumn; + pScan->nEquiv++; } } if( (pTerm->eOperator & pScan->opMask)!=0 ){ @@ -120382,8 +121608,8 @@ static WhereTerm *whereScanNext(WhereScan *pScan){ } if( (pTerm->eOperator & (WO_EQ|WO_IS))!=0 && (pX = pTerm->pExpr->pRight)->op==TK_COLUMN - && pX->iTable==pScan->aEquiv[0] - && pX->iColumn==pScan->aEquiv[1] + && pX->iTable==pScan->aiCur[0] + && pX->iColumn==pScan->aiColumn[0] ){ testcase( pTerm->eOperator & WO_IS ); continue; @@ -120398,7 +121624,7 @@ static WhereTerm *whereScanNext(WhereScan *pScan){ } pScan->pWC = pScan->pOrigWC; k = 0; - pScan->iEquiv += 2; + pScan->iEquiv++; } return 0; } @@ -120427,16 +121653,19 @@ static WhereTerm *whereScanInit( u32 opMask, /* Operator(s) to scan for */ Index *pIdx /* Must be compatible with this index */ ){ - int j; + int j = 0; /* memset(pScan, 0, sizeof(*pScan)); */ pScan->pOrigWC = pWC; pScan->pWC = pWC; + pScan->pIdxExpr = 0; + if( pIdx ){ + j = iColumn; + iColumn = pIdx->aiColumn[j]; + if( iColumn==XN_EXPR ) pScan->pIdxExpr = pIdx->aColExpr->a[j].pExpr; + } if( pIdx && iColumn>=0 ){ pScan->idxaff = pIdx->pTable->aCol[iColumn].affinity; - for(j=0; pIdx->aiColumn[j]!=iColumn; j++){ - if( NEVER(j>pIdx->nColumn) ) return 0; - } pScan->zCollName = pIdx->azColl[j]; }else{ pScan->idxaff = 0; @@ -120444,10 +121673,10 @@ static WhereTerm *whereScanInit( } pScan->opMask = opMask; pScan->k = 0; - pScan->aEquiv[0] = iCur; - pScan->aEquiv[1] = iColumn; - pScan->nEquiv = 2; - pScan->iEquiv = 2; + pScan->aiCur[0] = iCur; + pScan->aiColumn[0] = iColumn; + pScan->nEquiv = 1; + pScan->iEquiv = 1; return whereScanNext(pScan); } @@ -120457,15 +121686,16 @@ static WhereTerm *whereScanInit( ** the WO_xx operator codes specified by the op parameter. ** Return a pointer to the term. Return 0 if not found. ** +** If pIdx!=0 then search for terms matching the iColumn-th column of pIdx +** rather than the iColumn-th column of table iCur. +** ** The term returned might by Y= if there is another constraint in ** the WHERE clause that specifies that X=Y. Any such constraints will be ** identified by the WO_EQUIV bit in the pTerm->eOperator field. The -** aEquiv[] array holds X and all its equivalents, with each SQL variable -** taking up two slots in aEquiv[]. The first slot is for the cursor number -** and the second is for the column number. There are 22 slots in aEquiv[] -** so that means we can look for X plus up to 10 other equivalent values. -** Hence a search for X will return if X=A1 and A1=A2 and A2=A3 -** and ... and A9=A10 and A10=. +** aiCur[]/iaColumn[] arrays hold X and all its equivalents. There are 11 +** slots in aiCur[]/aiColumn[] so that means we can look for X plus up to 10 +** other equivalent values. Hence a search for X will return if X=A1 +** and A1=A2 and A2=A3 and ... and A9=A10 and A10=. ** ** If there are multiple terms in the WHERE clause of the form "X " ** then try for the one with no dependencies on - in other words where @@ -120534,6 +121764,25 @@ static int findIndexCol( return -1; } +/* +** Return TRUE if the iCol-th column of index pIdx is NOT NULL +*/ +static int indexColumnNotNull(Index *pIdx, int iCol){ + int j; + assert( pIdx!=0 ); + assert( iCol>=0 && iColnColumn ); + j = pIdx->aiColumn[iCol]; + if( j>=0 ){ + return pIdx->pTable->aCol[j].notNull; + }else if( j==(-1) ){ + return 1; + }else{ + assert( j==(-2) ); + return 0; /* Assume an indexed expression can always yield a NULL */ + + } +} + /* ** Return true if the DISTINCT expression-list passed as the third argument ** is redundant. @@ -120584,12 +121833,9 @@ static int isDistinctRedundant( for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ if( !IsUniqueIndex(pIdx) ) continue; for(i=0; inKeyCol; i++){ - i16 iCol = pIdx->aiColumn[i]; - if( 0==sqlite3WhereFindTerm(pWC, iBase, iCol, ~(Bitmask)0, WO_EQ, pIdx) ){ - int iIdxCol = findIndexCol(pParse, pDistinct, iBase, pIdx, i); - if( iIdxCol<0 || pTab->aCol[iCol].notNull==0 ){ - break; - } + if( 0==sqlite3WhereFindTerm(pWC, iBase, i, ~(Bitmask)0, WO_EQ, pIdx) ){ + if( findIndexCol(pParse, pDistinct, iBase, pIdx, i)<0 ) break; + if( indexColumnNotNull(pIdx, i)==0 ) break; } } if( i==pIdx->nKeyCol ){ @@ -120613,14 +121859,20 @@ static LogEst estLog(LogEst N){ ** Convert OP_Column opcodes to OP_Copy in previously generated code. ** ** This routine runs over generated VDBE code and translates OP_Column -** opcodes into OP_Copy, and OP_Rowid into OP_Null, when the table is being -** accessed via co-routine instead of via table lookup. +** opcodes into OP_Copy when the table is being accessed via co-routine +** instead of via table lookup. +** +** If the bIncrRowid parameter is 0, then any OP_Rowid instructions on +** cursor iTabCur are transformed into OP_Null. Or, if bIncrRowid is non-zero, +** then each OP_Rowid is transformed into an instruction to increment the +** value stored in its output register. */ static void translateColumnToCopy( Vdbe *v, /* The VDBE containing code to translate */ int iStart, /* Translate from this opcode to the end */ int iTabCur, /* OP_Column/OP_Rowid references to this table */ - int iRegister /* The first column is in this register */ + int iRegister, /* The first column is in this register */ + int bIncrRowid /* If non-zero, transform OP_rowid to OP_AddImm(1) */ ){ VdbeOp *pOp = sqlite3VdbeGetOp(v, iStart); int iEnd = sqlite3VdbeCurrentAddr(v); @@ -120632,9 +121884,16 @@ static void translateColumnToCopy( pOp->p2 = pOp->p3; pOp->p3 = 0; }else if( pOp->opcode==OP_Rowid ){ - pOp->opcode = OP_Null; - pOp->p1 = 0; - pOp->p3 = 0; + if( bIncrRowid ){ + /* Increment the value stored in the P2 operand of the OP_Rowid. */ + pOp->opcode = OP_AddImm; + pOp->p1 = pOp->p2; + pOp->p2 = 1; + }else{ + pOp->opcode = OP_Null; + pOp->p1 = 0; + pOp->p3 = 0; + } } } } @@ -120742,6 +122001,8 @@ static void constructAutomaticIndex( Expr *pPartial = 0; /* Partial Index Expression */ int iContinue = 0; /* Jump here to skip excluded rows */ struct SrcList_item *pTabItem; /* FROM clause term being indexed */ + int addrCounter; /* Address where integer counter is initialized */ + int regBase; /* Array of registers where record is assembled */ /* Generate code to skip over the creation and initialization of the ** transient index on 2nd and subsequent iterations of the loop. */ @@ -120855,7 +122116,7 @@ static void constructAutomaticIndex( } } assert( n==nKeyCol ); - pIdx->aiColumn[n] = -1; + pIdx->aiColumn[n] = XN_ROWID; pIdx->azColl[n] = "BINARY"; /* Create the automatic index */ @@ -120868,8 +122129,9 @@ static void constructAutomaticIndex( /* Fill the automatic index with content */ sqlite3ExprCachePush(pParse); pTabItem = &pWC->pWInfo->pTabList->a[pLevel->iFrom]; - if( pTabItem->viaCoroutine ){ + if( pTabItem->fg.viaCoroutine ){ int regYield = pTabItem->regReturn; + addrCounter = sqlite3VdbeAddOp2(v, OP_Integer, 0, 0); sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub); addrTop = sqlite3VdbeAddOp1(v, OP_Yield, regYield); VdbeCoverage(v); @@ -120883,14 +122145,17 @@ static void constructAutomaticIndex( pLoop->wsFlags |= WHERE_PARTIALIDX; } regRecord = sqlite3GetTempReg(pParse); - sqlite3GenerateIndexKey(pParse, pIdx, pLevel->iTabCur, regRecord, 0, 0, 0, 0); + regBase = sqlite3GenerateIndexKey( + pParse, pIdx, pLevel->iTabCur, regRecord, 0, 0, 0, 0 + ); sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord); sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT); if( pPartial ) sqlite3VdbeResolveLabel(v, iContinue); - if( pTabItem->viaCoroutine ){ - translateColumnToCopy(v, addrTop, pLevel->iTabCur, pTabItem->regResult); - sqlite3VdbeAddOp2(v, OP_Goto, 0, addrTop); - pTabItem->viaCoroutine = 0; + if( pTabItem->fg.viaCoroutine ){ + sqlite3VdbeChangeP2(v, addrCounter, regBase+n); + translateColumnToCopy(v, addrTop, pLevel->iTabCur, pTabItem->regResult, 1); + sqlite3VdbeGoto(v, addrTop); + pTabItem->fg.viaCoroutine = 0; }else{ sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v); } @@ -120941,6 +122206,7 @@ static sqlite3_index_info *allocateIndexInfo( testcase( pTerm->eOperator & WO_ALL ); if( (pTerm->eOperator & ~(WO_ISNULL|WO_EQUIV|WO_IS))==0 ) continue; if( pTerm->wtFlags & TERM_VNULL ) continue; + assert( pTerm->u.leftColumn>=(-1) ); nTerm++; } @@ -120996,6 +122262,7 @@ static sqlite3_index_info *allocateIndexInfo( testcase( pTerm->eOperator & WO_ALL ); if( (pTerm->eOperator & ~(WO_ISNULL|WO_EQUIV|WO_IS))==0 ) continue; if( pTerm->wtFlags & TERM_VNULL ) continue; + assert( pTerm->u.leftColumn>=(-1) ); pIdxCons[j].iColumn = pTerm->u.leftColumn; pIdxCons[j].iTermOffset = i; op = (u8)pTerm->eOperator & WO_ALL; @@ -121286,6 +122553,21 @@ static LogEst whereRangeAdjust(WhereTerm *pTerm, LogEst nNew){ return nRet; } + +#ifdef SQLITE_ENABLE_STAT3_OR_STAT4 +/* +** Return the affinity for a single column of an index. +*/ +static char sqlite3IndexColumnAffinity(sqlite3 *db, Index *pIdx, int iCol){ + assert( iCol>=0 && iColnColumn ); + if( !pIdx->zColAff ){ + if( sqlite3IndexAffinityStr(db, pIdx)==0 ) return SQLITE_AFF_BLOB; + } + return pIdx->zColAff[iCol]; +} +#endif + + #ifdef SQLITE_ENABLE_STAT3_OR_STAT4 /* ** This function is called to estimate the number of rows visited by a @@ -121335,8 +122617,7 @@ static int whereRangeSkipScanEst( int nLower = -1; int nUpper = p->nSample+1; int rc = SQLITE_OK; - int iCol = p->aiColumn[nEq]; - u8 aff = iCol>=0 ? p->pTable->aCol[iCol].affinity : SQLITE_AFF_INTEGER; + u8 aff = sqlite3IndexColumnAffinity(db, p, nEq); CollSeq *pColl; sqlite3_value *p1 = 0; /* Value extracted from pLower */ @@ -121484,11 +122765,8 @@ static int whereRangeScanEst( testcase( pRec->nField!=pBuilder->nRecValid ); pRec->nField = pBuilder->nRecValid; } - if( nEq==p->nKeyCol ){ - aff = SQLITE_AFF_INTEGER; - }else{ - aff = p->pTable->aCol[p->aiColumn[nEq]].affinity; - } + aff = sqlite3IndexColumnAffinity(pParse->db, p, nEq); + assert( nEq!=p->nKeyCol || aff==SQLITE_AFF_INTEGER ); /* Determine iLower and iUpper using ($P) only. */ if( nEq==0 ){ iLower = 0; @@ -121646,7 +122924,7 @@ static int whereEqualScanEst( return SQLITE_OK; } - aff = p->pTable->aCol[p->aiColumn[nEq-1]].affinity; + aff = sqlite3IndexColumnAffinity(pParse->db, p, nEq-1); rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, aff, nEq-1, &bOk); pBuilder->pRec = pRec; if( rc!=SQLITE_OK ) return rc; @@ -122073,18 +123351,20 @@ static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate){ ** and prereqs. */ if( pBuilder->pOrSet!=0 ){ + if( pTemplate->nLTerm ){ #if WHERETRACE_ENABLED - u16 n = pBuilder->pOrSet->n; - int x = + u16 n = pBuilder->pOrSet->n; + int x = #endif - whereOrInsert(pBuilder->pOrSet, pTemplate->prereq, pTemplate->rRun, + whereOrInsert(pBuilder->pOrSet, pTemplate->prereq, pTemplate->rRun, pTemplate->nOut); #if WHERETRACE_ENABLED /* 0x8 */ - if( sqlite3WhereTrace & 0x8 ){ - sqlite3DebugPrintf(x?" or-%d: ":" or-X: ", n); - whereLoopPrint(pTemplate, pBuilder->pWC); - } + if( sqlite3WhereTrace & 0x8 ){ + sqlite3DebugPrintf(x?" or-%d: ":" or-X: ", n); + whereLoopPrint(pTemplate, pBuilder->pWC); + } #endif + } return SQLITE_OK; } @@ -122274,7 +123554,6 @@ static int whereLoopAddBtreeIndex( u16 saved_nSkip; /* Original value of pNew->nSkip */ u32 saved_wsFlags; /* Original value of pNew->wsFlags */ LogEst saved_nOut; /* Original value of pNew->nOut */ - int iCol; /* Index of the column in the table */ int rc = SQLITE_OK; /* Return code */ LogEst rSize; /* Number of rows in the table */ LogEst rLogSize; /* Logarithm of table size */ @@ -122287,7 +123566,7 @@ static int whereLoopAddBtreeIndex( assert( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 ); if( pNew->wsFlags & WHERE_BTM_LIMIT ){ opMask = WO_LT|WO_LE; - }else if( /*pProbe->tnum<=0 ||*/ (pSrc->jointype & JT_LEFT)!=0 ){ + }else if( /*pProbe->tnum<=0 ||*/ (pSrc->fg.jointype & JT_LEFT)!=0 ){ opMask = WO_EQ|WO_IN|WO_GT|WO_GE|WO_LT|WO_LE; }else{ opMask = WO_EQ|WO_IN|WO_GT|WO_GE|WO_LT|WO_LE|WO_ISNULL|WO_IS; @@ -122295,16 +123574,15 @@ static int whereLoopAddBtreeIndex( if( pProbe->bUnordered ) opMask &= ~(WO_GT|WO_GE|WO_LT|WO_LE); assert( pNew->u.btree.nEqnColumn ); - iCol = pProbe->aiColumn[pNew->u.btree.nEq]; - pTerm = whereScanInit(&scan, pBuilder->pWC, pSrc->iCursor, iCol, - opMask, pProbe); saved_nEq = pNew->u.btree.nEq; saved_nSkip = pNew->nSkip; saved_nLTerm = pNew->nLTerm; saved_wsFlags = pNew->wsFlags; saved_prereq = pNew->prereq; saved_nOut = pNew->nOut; + pTerm = whereScanInit(&scan, pBuilder->pWC, pSrc->iCursor, saved_nEq, + opMask, pProbe); pNew->rSetup = 0; rSize = pProbe->aiRowLogEst[0]; rLogSize = estLog(rSize); @@ -122317,7 +123595,7 @@ static int whereLoopAddBtreeIndex( int nRecValid = pBuilder->nRecValid; #endif if( (eOp==WO_ISNULL || (pTerm->wtFlags&TERM_VNULL)!=0) - && (iCol<0 || pSrc->pTab->aCol[iCol].notNull) + && indexColumnNotNull(pProbe, saved_nEq) ){ continue; /* ignore IS [NOT] NULL constraints on NOT NULL columns */ } @@ -122354,8 +123632,12 @@ static int whereLoopAddBtreeIndex( ** changes "x IN (?)" into "x=?". */ }else if( eOp & (WO_EQ|WO_IS) ){ + int iCol = pProbe->aiColumn[saved_nEq]; pNew->wsFlags |= WHERE_COLUMN_EQ; - if( iCol<0 || (nInMul==0 && pNew->u.btree.nEq==pProbe->nKeyCol-1) ){ + assert( saved_nEq==pNew->u.btree.nEq ); + if( iCol==XN_ROWID + || (iCol>0 && nInMul==0 && saved_nEq==pProbe->nKeyCol-1) + ){ if( iCol>=0 && pProbe->uniqNotNull==0 ){ pNew->wsFlags |= WHERE_UNQ_WANTED; }else{ @@ -122406,7 +123688,7 @@ static int whereLoopAddBtreeIndex( assert( eOp & (WO_ISNULL|WO_EQ|WO_IN|WO_IS) ); assert( pNew->nOut==saved_nOut ); - if( pTerm->truthProb<=0 && iCol>=0 ){ + if( pTerm->truthProb<=0 && pProbe->aiColumn[saved_nEq]>=0 ){ assert( (eOp & WO_IN) || nIn==0 ); testcase( eOp & WO_IN ); pNew->nOut += pTerm->truthProb; @@ -122541,18 +123823,25 @@ static int indexMightHelpWithOrderBy( int iCursor ){ ExprList *pOB; + ExprList *aColExpr; int ii, jj; if( pIndex->bUnordered ) return 0; if( (pOB = pBuilder->pWInfo->pOrderBy)==0 ) return 0; for(ii=0; iinExpr; ii++){ Expr *pExpr = sqlite3ExprSkipCollate(pOB->a[ii].pExpr); - if( pExpr->op!=TK_COLUMN ) return 0; - if( pExpr->iTable==iCursor ){ + if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){ if( pExpr->iColumn<0 ) return 1; for(jj=0; jjnKeyCol; jj++){ if( pExpr->iColumn==pIndex->aiColumn[jj] ) return 1; } + }else if( (aColExpr = pIndex->aColExpr)!=0 ){ + for(jj=0; jjnKeyCol; jj++){ + if( pIndex->aiColumn[jj]!=XN_EXPR ) continue; + if( sqlite3ExprCompare(pExpr,aColExpr->a[jj].pExpr,iCursor)==0 ){ + return 1; + } + } } } return 0; @@ -122582,6 +123871,10 @@ static Bitmask columnsInIndex(Index *pIdx){ static int whereUsablePartialIndex(int iTab, WhereClause *pWC, Expr *pWhere){ int i; WhereTerm *pTerm; + while( pWhere->op==TK_AND ){ + if( !whereUsablePartialIndex(iTab,pWC,pWhere->pLeft) ) return 0; + pWhere = pWhere->pRight; + } for(i=0, pTerm=pWC->a; inTerm; i++, pTerm++){ Expr *pExpr = pTerm->pExpr; if( sqlite3ExprImpliesExpr(pExpr, pWhere, iTab) @@ -122657,9 +123950,9 @@ static int whereLoopAddBtree( pWC = pBuilder->pWC; assert( !IsVirtual(pSrc->pTab) ); - if( pSrc->pIndex ){ + if( pSrc->pIBIndex ){ /* An INDEXED BY clause specifies a particular index to use */ - pProbe = pSrc->pIndex; + pProbe = pSrc->pIBIndex; }else if( !HasRowid(pTab) ){ pProbe = pTab->pIndex; }else{ @@ -122679,7 +123972,7 @@ static int whereLoopAddBtree( aiRowEstPk[0] = pTab->nRowLogEst; aiRowEstPk[1] = 0; pFirst = pSrc->pTab->pIndex; - if( pSrc->notIndexed==0 ){ + if( pSrc->fg.notIndexed==0 ){ /* The real indices of the table are only considered if the ** NOT INDEXED qualifier is omitted from the FROM clause */ sPk.pNext = pFirst; @@ -122691,14 +123984,14 @@ static int whereLoopAddBtree( #ifndef SQLITE_OMIT_AUTOMATIC_INDEX /* Automatic indexes */ - if( !pBuilder->pOrSet /* Not part of an OR optimization */ + if( !pBuilder->pOrSet /* Not part of an OR optimization */ && (pWInfo->wctrlFlags & WHERE_NO_AUTOINDEX)==0 && (pWInfo->pParse->db->flags & SQLITE_AutoIndex)!=0 - && pSrc->pIndex==0 /* Has no INDEXED BY clause */ - && !pSrc->notIndexed /* Has no NOT INDEXED clause */ - && HasRowid(pTab) /* Is not a WITHOUT ROWID table. (FIXME: Why not?) */ - && !pSrc->isCorrelated /* Not a correlated subquery */ - && !pSrc->isRecursive /* Not a recursive common table expression. */ + && pSrc->pIBIndex==0 /* Has no INDEXED BY clause */ + && !pSrc->fg.notIndexed /* Has no NOT INDEXED clause */ + && HasRowid(pTab) /* Not WITHOUT ROWID table. (FIXME: Why not?) */ + && !pSrc->fg.isCorrelated /* Not a correlated subquery */ + && !pSrc->fg.isRecursive /* Not a recursive common table expression. */ ){ /* Generate auto-index WhereLoops */ WhereTerm *pTerm; @@ -122819,7 +124112,7 @@ static int whereLoopAddBtree( /* If there was an INDEXED BY clause, then only that one index is ** considered. */ - if( pSrc->pIndex ) break; + if( pSrc->pIBIndex ) break; } return rc; } @@ -122941,6 +124234,7 @@ static int whereLoopAddVirtual( pIdxInfo->orderByConsumed = 0; pIdxInfo->estimatedCost = SQLITE_BIG_DBL / (double)2; pIdxInfo->estimatedRows = 25; + pIdxInfo->idxFlags = 0; rc = vtabBestIndex(pParse, pTab, pIdxInfo); if( rc ) goto whereLoopAddVtab_exit; pIdxCons = *(struct sqlite3_index_constraint**)&pIdxInfo->aConstraint; @@ -122986,6 +124280,7 @@ static int whereLoopAddVirtual( ** (2) Multiple outputs from a single IN value will not merge ** together. */ pIdxInfo->orderByConsumed = 0; + pIdxInfo->idxFlags &= ~SQLITE_INDEX_SCAN_UNIQUE; } } } @@ -123001,6 +124296,14 @@ static int whereLoopAddVirtual( pNew->rSetup = 0; pNew->rRun = sqlite3LogEstFromDouble(pIdxInfo->estimatedCost); pNew->nOut = sqlite3LogEst(pIdxInfo->estimatedRows); + + /* Set the WHERE_ONEROW flag if the xBestIndex() method indicated + ** that the scan will visit at most one row. Clear it otherwise. */ + if( pIdxInfo->idxFlags & SQLITE_INDEX_SCAN_UNIQUE ){ + pNew->wsFlags |= WHERE_ONEROW; + }else{ + pNew->wsFlags &= ~WHERE_ONEROW; + } whereLoopInsert(pBuilder, pNew); if( pNew->u.vtab.needFree ){ sqlite3_free(pNew->u.vtab.idxStr); @@ -123165,16 +124468,16 @@ static int whereLoopAddAll(WhereLoopBuilder *pBuilder){ Bitmask mUnusable = 0; pNew->iTab = iTab; pNew->maskSelf = sqlite3WhereGetMask(&pWInfo->sMaskSet, pItem->iCursor); - if( ((pItem->jointype|priorJointype) & (JT_LEFT|JT_CROSS))!=0 ){ + if( ((pItem->fg.jointype|priorJointype) & (JT_LEFT|JT_CROSS))!=0 ){ /* This condition is true when pItem is the FROM clause term on the ** right-hand-side of a LEFT or CROSS JOIN. */ mExtra = mPrior; } - priorJointype = pItem->jointype; + priorJointype = pItem->fg.jointype; if( IsVirtual(pItem->pTab) ){ struct SrcList_item *p; for(p=&pItem[1]; pjointype & (JT_LEFT|JT_CROSS)) ){ + if( mUnusable || (p->fg.jointype & (JT_LEFT|JT_CROSS)) ){ mUnusable |= sqlite3WhereGetMask(&pWInfo->sMaskSet, p->iCursor); } } @@ -123322,7 +124625,8 @@ static i8 wherePathSatisfiesOrderBy( nKeyCol = pIndex->nKeyCol; nColumn = pIndex->nColumn; assert( nColumn==nKeyCol+1 || !HasRowid(pIndex->pTable) ); - assert( pIndex->aiColumn[nColumn-1]==(-1) || !HasRowid(pIndex->pTable)); + assert( pIndex->aiColumn[nColumn-1]==XN_ROWID + || !HasRowid(pIndex->pTable)); isOrderDistinct = IsUniqueIndex(pIndex); } @@ -123354,7 +124658,7 @@ static i8 wherePathSatisfiesOrderBy( revIdx = pIndex->aSortOrder[j]; if( iColumn==pIndex->pTable->iPKey ) iColumn = -1; }else{ - iColumn = -1; + iColumn = XN_ROWID; revIdx = 0; } @@ -123380,9 +124684,15 @@ static i8 wherePathSatisfiesOrderBy( testcase( wctrlFlags & WHERE_GROUPBY ); testcase( wctrlFlags & WHERE_DISTINCTBY ); if( (wctrlFlags & (WHERE_GROUPBY|WHERE_DISTINCTBY))==0 ) bOnce = 0; - if( pOBExpr->op!=TK_COLUMN ) continue; - if( pOBExpr->iTable!=iCur ) continue; - if( pOBExpr->iColumn!=iColumn ) continue; + if( iColumn>=(-1) ){ + if( pOBExpr->op!=TK_COLUMN ) continue; + if( pOBExpr->iTable!=iCur ) continue; + if( pOBExpr->iColumn!=iColumn ) continue; + }else{ + if( sqlite3ExprCompare(pOBExpr,pIndex->aColExpr->a[j].pExpr,iCur) ){ + continue; + } + } if( iColumn>=0 ){ pColl = sqlite3ExprCollSeq(pWInfo->pParse, pOrderBy->a[i].pExpr); if( !pColl ) pColl = db->pDfltColl; @@ -123904,7 +125214,7 @@ static int whereShortCut(WhereLoopBuilder *pBuilder){ pItem = pWInfo->pTabList->a; pTab = pItem->pTab; if( IsVirtual(pTab) ) return 0; - if( pItem->zIndexedBy ) return 0; + if( pItem->fg.isIndexedBy ) return 0; iCur = pItem->iCursor; pWC = &pWInfo->sWC; pLoop = pBuilder->pNew; @@ -123929,7 +125239,7 @@ static int whereShortCut(WhereLoopBuilder *pBuilder){ ) continue; opMask = pIdx->uniqNotNull ? (WO_EQ|WO_IS) : WO_EQ; for(j=0; jnKeyCol; j++){ - pTerm = sqlite3WhereFindTerm(pWC, iCur, pIdx->aiColumn[j], 0, opMask, pIdx); + pTerm = sqlite3WhereFindTerm(pWC, iCur, j, 0, opMask, pIdx); if( pTerm==0 ) break; testcase( pTerm->eOperator & WO_IS ); pLoop->aLTerm[j] = pTerm; @@ -124075,6 +125385,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( sqlite3 *db; /* Database connection */ int rc; /* Return code */ + assert( (wctrlFlags & WHERE_ONEPASS_MULTIROW)==0 || ( + (wctrlFlags & WHERE_ONEPASS_DESIRED)!=0 + && (wctrlFlags & WHERE_OMIT_OPEN_CLOSE)==0 + )); /* Variable initialization */ db = pParse->db; @@ -124130,6 +125444,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( pWInfo->iBreak = pWInfo->iContinue = sqlite3VdbeMakeLabel(v); pWInfo->wctrlFlags = wctrlFlags; pWInfo->savedNQueryLoop = pParse->nQueryLoop; + assert( pWInfo->eOnePass==ONEPASS_OFF ); /* ONEPASS defaults to OFF */ pMaskSet = &pWInfo->sMaskSet; sWLB.pWInfo = pWInfo; sWLB.pWC = &pWInfo->sWC; @@ -124169,14 +125484,12 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( /* Assign a bit from the bitmask to every term in the FROM clause. ** - ** When assigning bitmask values to FROM clause cursors, it must be - ** the case that if X is the bitmask for the N-th FROM clause term then - ** the bitmask for all FROM clause terms to the left of the N-th term - ** is (X-1). An expression from the ON clause of a LEFT JOIN can use - ** its Expr.iRightJoinTable value to find the bitmask of the right table - ** of the join. Subtracting one from the right table bitmask gives a - ** bitmask for all tables to the left of the join. Knowing the bitmask - ** for all tables to the left of a left join is important. Ticket #3015. + ** The N-th term of the FROM clause is assigned a bitmask of 1<nSrc tables in ** pTabList, not just the first nTabList tables. nTabList is normally @@ -124185,15 +125498,12 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( */ for(ii=0; iinSrc; ii++){ createMask(pMaskSet, pTabList->a[ii].iCursor); + sqlite3WhereTabFuncArgs(pParse, &pTabList->a[ii], &pWInfo->sWC); } -#ifndef NDEBUG - { - Bitmask toTheLeft = 0; - for(ii=0; iinSrc; ii++){ - Bitmask m = sqlite3WhereGetMask(pMaskSet, pTabList->a[ii].iCursor); - assert( (m-1)==toTheLeft ); - toTheLeft |= m; - } +#ifdef SQLITE_DEBUG + for(ii=0; iinSrc; ii++){ + Bitmask m = sqlite3WhereGetMask(pMaskSet, pTabList->a[ii].iCursor); + assert( m==MASKBIT(ii) ); } #endif @@ -124213,7 +125523,8 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( } /* Construct the WhereLoop objects */ - WHERETRACE(0xffff,("*** Optimizer Start ***\n")); + WHERETRACE(0xffff,("*** Optimizer Start *** (wctrlFlags: 0x%x)\n", + wctrlFlags)); #if defined(WHERETRACE_ENABLED) if( sqlite3WhereTrace & 0x100 ){ /* Display all terms of the WHERE clause */ int i; @@ -124291,7 +125602,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( while( pWInfo->nLevel>=2 ){ WhereTerm *pTerm, *pEnd; pLoop = pWInfo->a[pWInfo->nLevel-1].pWLoop; - if( (pWInfo->pTabList->a[pLoop->iTab].jointype & JT_LEFT)==0 ) break; + if( (pWInfo->pTabList->a[pLoop->iTab].fg.jointype & JT_LEFT)==0 ) break; if( (wctrlFlags & WHERE_WANT_DISTINCT)==0 && (pLoop->wsFlags & WHERE_ONEROW)==0 ){ @@ -124321,11 +125632,16 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** the statement to update or delete a single row. */ assert( (wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || pWInfo->nLevel==1 ); - if( (wctrlFlags & WHERE_ONEPASS_DESIRED)!=0 - && (pWInfo->a[0].pWLoop->wsFlags & WHERE_ONEROW)!=0 ){ - pWInfo->okOnePass = 1; - if( HasRowid(pTabList->a[0].pTab) ){ - pWInfo->a[0].pWLoop->wsFlags &= ~WHERE_IDX_ONLY; + if( (wctrlFlags & WHERE_ONEPASS_DESIRED)!=0 ){ + int wsFlags = pWInfo->a[0].pWLoop->wsFlags; + int bOnerow = (wsFlags & WHERE_ONEROW)!=0; + if( bOnerow || ( (wctrlFlags & WHERE_ONEPASS_MULTIROW) + && 0==(wsFlags & WHERE_VIRTUALTABLE) + )){ + pWInfo->eOnePass = bOnerow ? ONEPASS_SINGLE : ONEPASS_MULTI; + if( HasRowid(pTabList->a[0].pTab) ){ + pWInfo->a[0].pWLoop->wsFlags &= ~WHERE_IDX_ONLY; + } } } @@ -124356,15 +125672,15 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( if( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 && (wctrlFlags & WHERE_OMIT_OPEN_CLOSE)==0 ){ int op = OP_OpenRead; - if( pWInfo->okOnePass ){ + if( pWInfo->eOnePass!=ONEPASS_OFF ){ op = OP_OpenWrite; pWInfo->aiCurOnePass[0] = pTabItem->iCursor; }; sqlite3OpenTable(pParse, pTabItem->iCursor, iDb, pTab, op); assert( pTabItem->iCursor==pLevel->iTabCur ); - testcase( !pWInfo->okOnePass && pTab->nCol==BMS-1 ); - testcase( !pWInfo->okOnePass && pTab->nCol==BMS ); - if( !pWInfo->okOnePass && pTab->nColeOnePass==ONEPASS_OFF && pTab->nCol==BMS-1 ); + testcase( pWInfo->eOnePass==ONEPASS_OFF && pTab->nCol==BMS ); + if( pWInfo->eOnePass==ONEPASS_OFF && pTab->nColcolUsed; int n = 0; for(; b; b=b>>1, n++){} @@ -124392,7 +125708,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** WITHOUT ROWID table. No need for a separate index */ iIndexCur = pLevel->iTabCur; op = 0; - }else if( pWInfo->okOnePass ){ + }else if( pWInfo->eOnePass!=ONEPASS_OFF ){ Index *pJ = pTabItem->pTab->pIndex; iIndexCur = iIdxCur; assert( wctrlFlags & WHERE_ONEPASS_DESIRED ); @@ -124529,7 +125845,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ } sqlite3VdbeResolveLabel(v, pLevel->addrBrk); if( pLevel->addrSkip ){ - sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrSkip); + sqlite3VdbeGoto(v, pLevel->addrSkip); VdbeComment((v, "next skip-scan on %s", pLoop->u.btree.pIndex->zName)); sqlite3VdbeJumpHere(v, pLevel->addrSkip); sqlite3VdbeJumpHere(v, pLevel->addrSkip-2); @@ -124557,7 +125873,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ if( pLevel->op==OP_Return ){ sqlite3VdbeAddOp2(v, OP_Gosub, pLevel->p1, pLevel->addrFirst); }else{ - sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel->addrFirst); + sqlite3VdbeGoto(v, pLevel->addrFirst); } sqlite3VdbeJumpHere(v, addr); } @@ -124584,9 +125900,9 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** the co-routine into OP_Copy of result contained in a register. ** OP_Rowid becomes OP_Null. */ - if( pTabItem->viaCoroutine && !db->mallocFailed ){ + if( pTabItem->fg.viaCoroutine && !db->mallocFailed ){ translateColumnToCopy(v, pLevel->addrBody, pLevel->iTabCur, - pTabItem->regResult); + pTabItem->regResult, 0); continue; } @@ -124600,7 +125916,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ && (pWInfo->wctrlFlags & WHERE_OMIT_OPEN_CLOSE)==0 ){ int ws = pLoop->wsFlags; - if( !pWInfo->okOnePass && (ws & WHERE_IDX_ONLY)==0 ){ + if( pWInfo->eOnePass==ONEPASS_OFF && (ws & WHERE_IDX_ONLY)==0 ){ sqlite3VdbeAddOp1(v, OP_Close, pTabItem->iCursor); } if( (ws & WHERE_INDEXED)!=0 @@ -124627,7 +125943,10 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ }else if( pLoop->wsFlags & WHERE_MULTI_OR ){ pIdx = pLevel->u.pCovidx; } - if( pIdx && !db->mallocFailed ){ + if( pIdx + && (pWInfo->eOnePass==ONEPASS_OFF || !HasRowid(pIdx->pTable)) + && !db->mallocFailed + ){ last = sqlite3VdbeCurrentAddr(v); k = pLevel->addrBody; pOp = sqlite3VdbeGetOp(v, k); @@ -124639,6 +125958,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ if( !HasRowid(pTab) ){ Index *pPk = sqlite3PrimaryKeyIndex(pTab); x = pPk->aiColumn[x]; + assert( x>=0 ); } x = sqlite3ColumnOfIndex(pIdx, x); if( x>=0 ){ @@ -124818,6 +126138,29 @@ struct AttachKey { int type; Token key; }; pOut->zStart = pPreOp->z; pOut->zEnd = pOperand->zEnd; } + + /* Add a single new term to an ExprList that is used to store a + ** list of identifiers. Report an error if the ID list contains + ** a COLLATE clause or an ASC or DESC keyword, except ignore the + ** error while parsing a legacy schema. + */ + static ExprList *parserAddExprIdListTerm( + Parse *pParse, + ExprList *pPrior, + Token *pIdToken, + int hasCollate, + int sortOrder + ){ + ExprList *p = sqlite3ExprListAppend(pParse, pPrior, 0); + if( (hasCollate || sortOrder!=SQLITE_SO_UNDEFINED) + && pParse->db->init.busy==0 + ){ + sqlite3ErrorMsg(pParse, "syntax error after column name \"%.*s\"", + pIdToken->n, pIdToken->z); + } + sqlite3ExprListSetName(pParse, p, pIdToken, 1); + return p; + } /* Next is all token values, in a form suitable for use by makeheaders. ** This section will be null unless lemon is run with the -m switch. */ @@ -124862,10 +126205,17 @@ struct AttachKey { int type; Token key; }; ** sqlite3ParserARG_PDECL A parameter declaration for the %extra_argument ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. +** YYNSTATE the combined number of states. +** YYNRULE the number of rules in the grammar +** YY_MAX_SHIFT Maximum value for shift actions +** YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions +** YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions +** YY_MIN_REDUCE Maximum value for reduce actions +** YY_ERROR_ACTION The yy_action[] code for syntax error +** YY_ACCEPT_ACTION The yy_action[] code for accept +** YY_NO_ACTION The yy_action[] code for no-op */ #define YYCODETYPE unsigned char #define YYNOCODE 254 @@ -124898,12 +126248,17 @@ typedef union { #define sqlite3ParserARG_PDECL ,Parse *pParse #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse #define sqlite3ParserARG_STORE yypParser->pParse = pParse -#define YYNSTATE 642 -#define YYNRULE 327 #define YYFALLBACK 1 -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) +#define YYNSTATE 436 +#define YYNRULE 328 +#define YY_MAX_SHIFT 435 +#define YY_MIN_SHIFTREDUCE 649 +#define YY_MAX_SHIFTREDUCE 976 +#define YY_MIN_REDUCE 977 +#define YY_MAX_REDUCE 1304 +#define YY_ERROR_ACTION 1305 +#define YY_ACCEPT_ACTION 1306 +#define YY_NO_ACTION 1307 /* The yyzerominor constant is used to initialize instances of ** YYMINORTYPE objects to zero. */ @@ -124930,16 +126285,20 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** Suppose the action integer is N. Then the action is determined as ** follows ** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead +** 0 <= N <= YY_MAX_SHIFT Shift N. That is, push the lookahead ** token onto the stack and goto state N. ** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. +** N between YY_MIN_SHIFTREDUCE Shift to an arbitrary state then +** and YY_MAX_SHIFTREDUCE reduce by rule N-YY_MIN_SHIFTREDUCE. ** -** N == YYNSTATE+YYNRULE A syntax error has occurred. +** N between YY_MIN_REDUCE Reduce by rule N-YY_MIN_REDUCE +** and YY_MAX_REDUCE + +** N == YY_ERROR_ACTION A syntax error has occurred. ** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. +** N == YY_ACCEPT_ACTION The parser accepts its input. ** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused +** N == YY_NO_ACTION No such action. Denotes unused ** slots in the yy_action[] table. ** ** The action table is constructed as a single large table named yy_action[]. @@ -124969,463 +126328,446 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -#define YY_ACTTAB_COUNT (1497) +#define YY_ACTTAB_COUNT (1501) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 306, 212, 432, 955, 639, 191, 955, 295, 559, 88, - /* 10 */ 88, 88, 88, 81, 86, 86, 86, 86, 85, 85, - /* 20 */ 84, 84, 84, 83, 330, 185, 184, 183, 635, 635, - /* 30 */ 292, 606, 606, 88, 88, 88, 88, 683, 86, 86, - /* 40 */ 86, 86, 85, 85, 84, 84, 84, 83, 330, 16, - /* 50 */ 436, 597, 89, 90, 80, 600, 599, 601, 601, 87, - /* 60 */ 87, 88, 88, 88, 88, 684, 86, 86, 86, 86, - /* 70 */ 85, 85, 84, 84, 84, 83, 330, 306, 559, 84, - /* 80 */ 84, 84, 83, 330, 65, 86, 86, 86, 86, 85, - /* 90 */ 85, 84, 84, 84, 83, 330, 635, 635, 634, 633, - /* 100 */ 182, 682, 550, 379, 376, 375, 17, 322, 606, 606, - /* 110 */ 371, 198, 479, 91, 374, 82, 79, 165, 85, 85, - /* 120 */ 84, 84, 84, 83, 330, 598, 635, 635, 107, 89, - /* 130 */ 90, 80, 600, 599, 601, 601, 87, 87, 88, 88, - /* 140 */ 88, 88, 186, 86, 86, 86, 86, 85, 85, 84, - /* 150 */ 84, 84, 83, 330, 306, 594, 594, 142, 328, 327, - /* 160 */ 484, 249, 344, 238, 635, 635, 634, 633, 585, 448, - /* 170 */ 526, 525, 229, 388, 1, 394, 450, 584, 449, 635, - /* 180 */ 635, 635, 635, 319, 395, 606, 606, 199, 157, 273, - /* 190 */ 382, 268, 381, 187, 635, 635, 634, 633, 311, 555, - /* 200 */ 266, 593, 593, 266, 347, 588, 89, 90, 80, 600, - /* 210 */ 599, 601, 601, 87, 87, 88, 88, 88, 88, 478, - /* 220 */ 86, 86, 86, 86, 85, 85, 84, 84, 84, 83, - /* 230 */ 330, 306, 272, 536, 634, 633, 146, 610, 197, 310, - /* 240 */ 575, 182, 482, 271, 379, 376, 375, 506, 21, 634, - /* 250 */ 633, 634, 633, 635, 635, 374, 611, 574, 548, 440, - /* 260 */ 111, 563, 606, 606, 634, 633, 324, 479, 608, 608, - /* 270 */ 608, 300, 435, 573, 119, 407, 210, 162, 562, 883, - /* 280 */ 592, 592, 306, 89, 90, 80, 600, 599, 601, 601, - /* 290 */ 87, 87, 88, 88, 88, 88, 506, 86, 86, 86, - /* 300 */ 86, 85, 85, 84, 84, 84, 83, 330, 620, 111, - /* 310 */ 635, 635, 361, 606, 606, 358, 249, 349, 248, 433, - /* 320 */ 243, 479, 586, 634, 633, 195, 611, 93, 119, 221, - /* 330 */ 575, 497, 534, 534, 89, 90, 80, 600, 599, 601, - /* 340 */ 601, 87, 87, 88, 88, 88, 88, 574, 86, 86, - /* 350 */ 86, 86, 85, 85, 84, 84, 84, 83, 330, 306, - /* 360 */ 77, 429, 638, 573, 589, 530, 240, 230, 242, 105, - /* 370 */ 249, 349, 248, 515, 588, 208, 460, 529, 564, 173, - /* 380 */ 634, 633, 970, 144, 430, 2, 424, 228, 380, 557, - /* 390 */ 606, 606, 190, 153, 159, 158, 514, 51, 632, 631, - /* 400 */ 630, 71, 536, 432, 954, 196, 610, 954, 614, 45, - /* 410 */ 18, 89, 90, 80, 600, 599, 601, 601, 87, 87, - /* 420 */ 88, 88, 88, 88, 261, 86, 86, 86, 86, 85, - /* 430 */ 85, 84, 84, 84, 83, 330, 306, 608, 608, 608, - /* 440 */ 542, 424, 402, 385, 241, 506, 451, 320, 211, 543, - /* 450 */ 164, 436, 386, 293, 451, 587, 108, 496, 111, 334, - /* 460 */ 391, 591, 424, 614, 27, 452, 453, 606, 606, 72, - /* 470 */ 257, 70, 259, 452, 339, 342, 564, 582, 68, 415, - /* 480 */ 469, 328, 327, 62, 614, 45, 110, 393, 89, 90, - /* 490 */ 80, 600, 599, 601, 601, 87, 87, 88, 88, 88, - /* 500 */ 88, 152, 86, 86, 86, 86, 85, 85, 84, 84, - /* 510 */ 84, 83, 330, 306, 110, 499, 520, 538, 402, 389, - /* 520 */ 424, 110, 566, 500, 593, 593, 454, 82, 79, 165, - /* 530 */ 424, 591, 384, 564, 340, 615, 188, 162, 424, 350, - /* 540 */ 616, 424, 614, 44, 606, 606, 445, 582, 300, 434, - /* 550 */ 151, 19, 614, 9, 568, 580, 348, 615, 469, 567, - /* 560 */ 614, 26, 616, 614, 45, 89, 90, 80, 600, 599, - /* 570 */ 601, 601, 87, 87, 88, 88, 88, 88, 411, 86, - /* 580 */ 86, 86, 86, 85, 85, 84, 84, 84, 83, 330, - /* 590 */ 306, 579, 110, 578, 521, 282, 433, 398, 400, 255, - /* 600 */ 486, 82, 79, 165, 487, 164, 82, 79, 165, 488, - /* 610 */ 488, 364, 387, 424, 544, 544, 509, 350, 362, 155, - /* 620 */ 191, 606, 606, 559, 642, 640, 333, 82, 79, 165, - /* 630 */ 305, 564, 507, 312, 357, 614, 45, 329, 596, 595, - /* 640 */ 194, 337, 89, 90, 80, 600, 599, 601, 601, 87, - /* 650 */ 87, 88, 88, 88, 88, 424, 86, 86, 86, 86, - /* 660 */ 85, 85, 84, 84, 84, 83, 330, 306, 20, 323, - /* 670 */ 150, 263, 211, 543, 421, 596, 595, 614, 22, 424, - /* 680 */ 193, 424, 284, 424, 391, 424, 509, 424, 577, 424, - /* 690 */ 186, 335, 424, 559, 424, 313, 120, 546, 606, 606, - /* 700 */ 67, 614, 47, 614, 50, 614, 48, 614, 100, 614, - /* 710 */ 99, 614, 101, 576, 614, 102, 614, 109, 326, 89, - /* 720 */ 90, 80, 600, 599, 601, 601, 87, 87, 88, 88, - /* 730 */ 88, 88, 424, 86, 86, 86, 86, 85, 85, 84, - /* 740 */ 84, 84, 83, 330, 306, 424, 311, 424, 585, 54, - /* 750 */ 424, 516, 517, 590, 614, 112, 424, 584, 424, 572, - /* 760 */ 424, 195, 424, 571, 424, 67, 424, 614, 94, 614, - /* 770 */ 98, 424, 614, 97, 264, 606, 606, 195, 614, 46, - /* 780 */ 614, 96, 614, 30, 614, 49, 614, 115, 614, 114, - /* 790 */ 418, 229, 388, 614, 113, 306, 89, 90, 80, 600, - /* 800 */ 599, 601, 601, 87, 87, 88, 88, 88, 88, 424, - /* 810 */ 86, 86, 86, 86, 85, 85, 84, 84, 84, 83, - /* 820 */ 330, 119, 424, 590, 110, 372, 606, 606, 195, 53, - /* 830 */ 250, 614, 29, 195, 472, 438, 729, 190, 302, 498, - /* 840 */ 14, 523, 641, 2, 614, 43, 306, 89, 90, 80, - /* 850 */ 600, 599, 601, 601, 87, 87, 88, 88, 88, 88, - /* 860 */ 424, 86, 86, 86, 86, 85, 85, 84, 84, 84, - /* 870 */ 83, 330, 424, 613, 964, 964, 354, 606, 606, 420, - /* 880 */ 312, 64, 614, 42, 391, 355, 283, 437, 301, 255, - /* 890 */ 414, 410, 495, 492, 614, 28, 471, 306, 89, 90, - /* 900 */ 80, 600, 599, 601, 601, 87, 87, 88, 88, 88, - /* 910 */ 88, 424, 86, 86, 86, 86, 85, 85, 84, 84, - /* 920 */ 84, 83, 330, 424, 110, 110, 110, 110, 606, 606, - /* 930 */ 110, 254, 13, 614, 41, 532, 531, 283, 481, 531, - /* 940 */ 457, 284, 119, 561, 356, 614, 40, 284, 306, 89, - /* 950 */ 78, 80, 600, 599, 601, 601, 87, 87, 88, 88, - /* 960 */ 88, 88, 424, 86, 86, 86, 86, 85, 85, 84, - /* 970 */ 84, 84, 83, 330, 110, 424, 341, 220, 555, 606, - /* 980 */ 606, 351, 555, 318, 614, 95, 413, 255, 83, 330, - /* 990 */ 284, 284, 255, 640, 333, 356, 255, 614, 39, 306, - /* 1000 */ 356, 90, 80, 600, 599, 601, 601, 87, 87, 88, - /* 1010 */ 88, 88, 88, 424, 86, 86, 86, 86, 85, 85, - /* 1020 */ 84, 84, 84, 83, 330, 424, 317, 316, 141, 465, - /* 1030 */ 606, 606, 219, 619, 463, 614, 10, 417, 462, 255, - /* 1040 */ 189, 510, 553, 351, 207, 363, 161, 614, 38, 315, - /* 1050 */ 218, 255, 255, 80, 600, 599, 601, 601, 87, 87, - /* 1060 */ 88, 88, 88, 88, 424, 86, 86, 86, 86, 85, - /* 1070 */ 85, 84, 84, 84, 83, 330, 76, 419, 255, 3, - /* 1080 */ 878, 461, 424, 247, 331, 331, 614, 37, 217, 76, - /* 1090 */ 419, 390, 3, 216, 215, 422, 4, 331, 331, 424, - /* 1100 */ 547, 12, 424, 545, 614, 36, 424, 541, 422, 424, - /* 1110 */ 540, 424, 214, 424, 408, 424, 539, 403, 605, 605, - /* 1120 */ 237, 614, 25, 119, 614, 24, 588, 408, 614, 45, - /* 1130 */ 118, 614, 35, 614, 34, 614, 33, 614, 23, 588, - /* 1140 */ 60, 223, 603, 602, 513, 378, 73, 74, 140, 139, - /* 1150 */ 424, 110, 265, 75, 426, 425, 59, 424, 610, 73, - /* 1160 */ 74, 549, 402, 404, 424, 373, 75, 426, 425, 604, - /* 1170 */ 138, 610, 614, 11, 392, 76, 419, 181, 3, 614, - /* 1180 */ 32, 271, 369, 331, 331, 493, 614, 31, 149, 608, - /* 1190 */ 608, 608, 607, 15, 422, 365, 614, 8, 137, 489, - /* 1200 */ 136, 190, 608, 608, 608, 607, 15, 485, 176, 135, - /* 1210 */ 7, 252, 477, 408, 174, 133, 175, 474, 57, 56, - /* 1220 */ 132, 130, 119, 76, 419, 588, 3, 468, 245, 464, - /* 1230 */ 171, 331, 331, 125, 123, 456, 447, 122, 446, 104, - /* 1240 */ 336, 231, 422, 166, 154, 73, 74, 332, 116, 431, - /* 1250 */ 121, 309, 75, 426, 425, 222, 106, 610, 308, 637, - /* 1260 */ 204, 408, 629, 627, 628, 6, 200, 428, 427, 290, - /* 1270 */ 203, 622, 201, 588, 62, 63, 289, 66, 419, 399, - /* 1280 */ 3, 401, 288, 92, 143, 331, 331, 287, 608, 608, - /* 1290 */ 608, 607, 15, 73, 74, 227, 422, 325, 69, 416, - /* 1300 */ 75, 426, 425, 612, 412, 610, 192, 61, 569, 209, - /* 1310 */ 396, 226, 278, 225, 383, 408, 527, 558, 276, 533, - /* 1320 */ 552, 528, 321, 523, 370, 508, 180, 588, 494, 179, - /* 1330 */ 366, 117, 253, 269, 522, 503, 608, 608, 608, 607, - /* 1340 */ 15, 551, 502, 58, 274, 524, 178, 73, 74, 304, - /* 1350 */ 501, 368, 303, 206, 75, 426, 425, 491, 360, 610, - /* 1360 */ 213, 177, 483, 131, 345, 298, 297, 296, 202, 294, - /* 1370 */ 480, 490, 466, 134, 172, 129, 444, 346, 470, 128, - /* 1380 */ 314, 459, 103, 127, 126, 148, 124, 167, 443, 235, - /* 1390 */ 608, 608, 608, 607, 15, 442, 439, 623, 234, 299, - /* 1400 */ 145, 583, 291, 377, 581, 160, 119, 156, 270, 636, - /* 1410 */ 971, 169, 279, 626, 520, 625, 473, 624, 170, 621, - /* 1420 */ 618, 119, 168, 55, 409, 423, 537, 609, 286, 285, - /* 1430 */ 405, 570, 560, 556, 5, 52, 458, 554, 147, 267, - /* 1440 */ 519, 504, 518, 406, 262, 239, 260, 512, 343, 511, - /* 1450 */ 258, 353, 565, 256, 224, 251, 359, 277, 275, 476, - /* 1460 */ 475, 246, 352, 244, 467, 455, 236, 233, 232, 307, - /* 1470 */ 441, 281, 205, 163, 397, 280, 535, 505, 330, 617, - /* 1480 */ 971, 971, 971, 971, 367, 971, 971, 971, 971, 971, - /* 1490 */ 971, 971, 971, 971, 971, 971, 338, + /* 0 */ 311, 1306, 145, 651, 2, 192, 652, 338, 780, 92, + /* 10 */ 92, 92, 92, 85, 90, 90, 90, 90, 89, 89, + /* 20 */ 88, 88, 88, 87, 335, 88, 88, 88, 87, 335, + /* 30 */ 327, 856, 856, 92, 92, 92, 92, 776, 90, 90, + /* 40 */ 90, 90, 89, 89, 88, 88, 88, 87, 335, 86, + /* 50 */ 83, 166, 93, 94, 84, 868, 871, 860, 860, 91, + /* 60 */ 91, 92, 92, 92, 92, 335, 90, 90, 90, 90, + /* 70 */ 89, 89, 88, 88, 88, 87, 335, 311, 780, 90, + /* 80 */ 90, 90, 90, 89, 89, 88, 88, 88, 87, 335, + /* 90 */ 123, 808, 689, 689, 689, 689, 112, 230, 430, 257, + /* 100 */ 809, 698, 430, 86, 83, 166, 324, 55, 856, 856, + /* 110 */ 201, 158, 276, 387, 271, 386, 188, 689, 689, 828, + /* 120 */ 833, 49, 944, 269, 833, 49, 123, 87, 335, 93, + /* 130 */ 94, 84, 868, 871, 860, 860, 91, 91, 92, 92, + /* 140 */ 92, 92, 342, 90, 90, 90, 90, 89, 89, 88, + /* 150 */ 88, 88, 87, 335, 311, 328, 333, 332, 701, 408, + /* 160 */ 394, 69, 690, 691, 690, 691, 715, 910, 251, 354, + /* 170 */ 250, 698, 704, 430, 908, 430, 909, 89, 89, 88, + /* 180 */ 88, 88, 87, 335, 391, 856, 856, 690, 691, 183, + /* 190 */ 95, 340, 384, 381, 380, 833, 31, 833, 49, 912, + /* 200 */ 912, 333, 332, 379, 123, 311, 93, 94, 84, 868, + /* 210 */ 871, 860, 860, 91, 91, 92, 92, 92, 92, 114, + /* 220 */ 90, 90, 90, 90, 89, 89, 88, 88, 88, 87, + /* 230 */ 335, 430, 408, 399, 435, 657, 856, 856, 346, 57, + /* 240 */ 232, 828, 109, 20, 912, 912, 231, 393, 937, 760, + /* 250 */ 97, 751, 752, 833, 49, 708, 708, 93, 94, 84, + /* 260 */ 868, 871, 860, 860, 91, 91, 92, 92, 92, 92, + /* 270 */ 707, 90, 90, 90, 90, 89, 89, 88, 88, 88, + /* 280 */ 87, 335, 311, 114, 22, 706, 688, 58, 408, 390, + /* 290 */ 251, 349, 240, 749, 752, 689, 689, 847, 685, 115, + /* 300 */ 21, 231, 393, 689, 689, 697, 183, 355, 430, 384, + /* 310 */ 381, 380, 192, 856, 856, 780, 123, 160, 159, 223, + /* 320 */ 379, 738, 25, 315, 362, 841, 143, 689, 689, 835, + /* 330 */ 833, 48, 339, 937, 93, 94, 84, 868, 871, 860, + /* 340 */ 860, 91, 91, 92, 92, 92, 92, 914, 90, 90, + /* 350 */ 90, 90, 89, 89, 88, 88, 88, 87, 335, 311, + /* 360 */ 840, 840, 840, 266, 430, 690, 691, 778, 114, 1300, + /* 370 */ 1300, 430, 1, 690, 691, 697, 688, 689, 689, 689, + /* 380 */ 689, 689, 689, 287, 298, 780, 833, 10, 686, 115, + /* 390 */ 856, 856, 355, 833, 10, 828, 366, 690, 691, 363, + /* 400 */ 321, 76, 123, 74, 23, 737, 807, 323, 356, 353, + /* 410 */ 847, 93, 94, 84, 868, 871, 860, 860, 91, 91, + /* 420 */ 92, 92, 92, 92, 940, 90, 90, 90, 90, 89, + /* 430 */ 89, 88, 88, 88, 87, 335, 311, 806, 841, 429, + /* 440 */ 713, 941, 835, 430, 251, 354, 250, 690, 691, 690, + /* 450 */ 691, 690, 691, 86, 83, 166, 24, 942, 151, 753, + /* 460 */ 285, 907, 403, 907, 164, 833, 10, 856, 856, 965, + /* 470 */ 306, 754, 679, 840, 840, 840, 795, 216, 794, 222, + /* 480 */ 906, 344, 906, 904, 86, 83, 166, 286, 93, 94, + /* 490 */ 84, 868, 871, 860, 860, 91, 91, 92, 92, 92, + /* 500 */ 92, 430, 90, 90, 90, 90, 89, 89, 88, 88, + /* 510 */ 88, 87, 335, 311, 430, 724, 352, 705, 427, 699, + /* 520 */ 700, 376, 210, 833, 49, 793, 397, 857, 857, 940, + /* 530 */ 213, 762, 727, 334, 699, 700, 833, 10, 86, 83, + /* 540 */ 166, 345, 396, 902, 856, 856, 941, 385, 833, 9, + /* 550 */ 406, 869, 872, 187, 890, 728, 347, 398, 404, 977, + /* 560 */ 652, 338, 942, 954, 413, 93, 94, 84, 868, 871, + /* 570 */ 860, 860, 91, 91, 92, 92, 92, 92, 861, 90, + /* 580 */ 90, 90, 90, 89, 89, 88, 88, 88, 87, 335, + /* 590 */ 311, 1219, 114, 430, 834, 430, 5, 165, 192, 688, + /* 600 */ 832, 780, 430, 723, 430, 234, 325, 189, 163, 316, + /* 610 */ 356, 955, 115, 235, 269, 833, 35, 833, 36, 747, + /* 620 */ 720, 856, 856, 793, 833, 12, 833, 27, 745, 174, + /* 630 */ 968, 1290, 968, 1291, 1290, 310, 1291, 693, 317, 245, + /* 640 */ 264, 311, 93, 94, 84, 868, 871, 860, 860, 91, + /* 650 */ 91, 92, 92, 92, 92, 832, 90, 90, 90, 90, + /* 660 */ 89, 89, 88, 88, 88, 87, 335, 430, 320, 213, + /* 670 */ 762, 780, 856, 856, 920, 920, 369, 257, 966, 220, + /* 680 */ 966, 396, 663, 664, 665, 242, 259, 244, 262, 833, + /* 690 */ 37, 650, 2, 93, 94, 84, 868, 871, 860, 860, + /* 700 */ 91, 91, 92, 92, 92, 92, 430, 90, 90, 90, + /* 710 */ 90, 89, 89, 88, 88, 88, 87, 335, 311, 430, + /* 720 */ 239, 430, 917, 368, 430, 238, 916, 793, 833, 38, + /* 730 */ 430, 825, 430, 66, 430, 392, 430, 766, 766, 430, + /* 740 */ 367, 833, 39, 833, 28, 430, 833, 29, 68, 856, + /* 750 */ 856, 900, 833, 40, 833, 41, 833, 42, 833, 11, + /* 760 */ 72, 833, 43, 243, 305, 970, 114, 833, 99, 961, + /* 770 */ 93, 94, 84, 868, 871, 860, 860, 91, 91, 92, + /* 780 */ 92, 92, 92, 430, 90, 90, 90, 90, 89, 89, + /* 790 */ 88, 88, 88, 87, 335, 311, 430, 361, 430, 165, + /* 800 */ 147, 430, 186, 185, 184, 833, 44, 430, 289, 430, + /* 810 */ 246, 430, 971, 430, 212, 163, 430, 357, 833, 45, + /* 820 */ 833, 32, 932, 833, 46, 793, 856, 856, 718, 833, + /* 830 */ 47, 833, 33, 833, 117, 833, 118, 75, 833, 119, + /* 840 */ 288, 305, 967, 214, 935, 322, 311, 93, 94, 84, + /* 850 */ 868, 871, 860, 860, 91, 91, 92, 92, 92, 92, + /* 860 */ 430, 90, 90, 90, 90, 89, 89, 88, 88, 88, + /* 870 */ 87, 335, 430, 832, 426, 317, 288, 856, 856, 114, + /* 880 */ 763, 257, 833, 53, 930, 219, 364, 257, 257, 971, + /* 890 */ 361, 396, 257, 257, 833, 34, 257, 311, 93, 94, + /* 900 */ 84, 868, 871, 860, 860, 91, 91, 92, 92, 92, + /* 910 */ 92, 430, 90, 90, 90, 90, 89, 89, 88, 88, + /* 920 */ 88, 87, 335, 430, 217, 318, 124, 253, 856, 856, + /* 930 */ 218, 943, 257, 833, 100, 898, 759, 774, 361, 755, + /* 940 */ 423, 329, 758, 1017, 289, 833, 50, 682, 311, 93, + /* 950 */ 82, 84, 868, 871, 860, 860, 91, 91, 92, 92, + /* 960 */ 92, 92, 430, 90, 90, 90, 90, 89, 89, 88, + /* 970 */ 88, 88, 87, 335, 430, 256, 419, 114, 249, 856, + /* 980 */ 856, 331, 114, 400, 833, 101, 359, 187, 1064, 726, + /* 990 */ 725, 739, 401, 416, 420, 360, 833, 102, 424, 311, + /* 1000 */ 258, 94, 84, 868, 871, 860, 860, 91, 91, 92, + /* 1010 */ 92, 92, 92, 430, 90, 90, 90, 90, 89, 89, + /* 1020 */ 88, 88, 88, 87, 335, 430, 221, 261, 114, 114, + /* 1030 */ 856, 856, 808, 114, 156, 833, 98, 772, 733, 734, + /* 1040 */ 275, 809, 771, 316, 263, 265, 960, 833, 116, 307, + /* 1050 */ 741, 274, 722, 84, 868, 871, 860, 860, 91, 91, + /* 1060 */ 92, 92, 92, 92, 430, 90, 90, 90, 90, 89, + /* 1070 */ 89, 88, 88, 88, 87, 335, 80, 425, 830, 3, + /* 1080 */ 1214, 191, 430, 721, 336, 336, 833, 113, 252, 80, + /* 1090 */ 425, 68, 3, 913, 913, 428, 270, 336, 336, 430, + /* 1100 */ 377, 784, 430, 197, 833, 106, 430, 716, 428, 430, + /* 1110 */ 267, 430, 897, 68, 414, 430, 769, 409, 430, 71, + /* 1120 */ 430, 833, 105, 123, 833, 103, 847, 414, 833, 49, + /* 1130 */ 843, 833, 104, 833, 52, 800, 123, 833, 54, 847, + /* 1140 */ 833, 51, 833, 26, 831, 802, 77, 78, 191, 389, + /* 1150 */ 430, 372, 114, 79, 432, 431, 911, 911, 835, 77, + /* 1160 */ 78, 779, 893, 408, 410, 197, 79, 432, 431, 791, + /* 1170 */ 226, 835, 833, 30, 772, 80, 425, 716, 3, 771, + /* 1180 */ 411, 412, 897, 336, 336, 290, 291, 839, 703, 840, + /* 1190 */ 840, 840, 842, 19, 428, 695, 684, 672, 111, 671, + /* 1200 */ 843, 673, 840, 840, 840, 842, 19, 207, 661, 278, + /* 1210 */ 148, 304, 280, 414, 282, 6, 822, 348, 248, 241, + /* 1220 */ 358, 934, 720, 80, 425, 847, 3, 161, 382, 273, + /* 1230 */ 284, 336, 336, 415, 296, 958, 895, 894, 157, 674, + /* 1240 */ 107, 194, 428, 948, 135, 77, 78, 777, 953, 951, + /* 1250 */ 56, 319, 79, 432, 431, 121, 66, 835, 59, 128, + /* 1260 */ 146, 414, 350, 130, 351, 819, 131, 132, 133, 375, + /* 1270 */ 173, 149, 138, 847, 936, 365, 178, 70, 425, 827, + /* 1280 */ 3, 889, 62, 371, 915, 336, 336, 792, 840, 840, + /* 1290 */ 840, 842, 19, 77, 78, 208, 428, 144, 179, 373, + /* 1300 */ 79, 432, 431, 255, 180, 835, 260, 675, 181, 308, + /* 1310 */ 388, 744, 326, 743, 742, 414, 731, 718, 712, 402, + /* 1320 */ 309, 711, 788, 65, 277, 272, 789, 847, 730, 710, + /* 1330 */ 709, 279, 193, 787, 281, 876, 840, 840, 840, 842, + /* 1340 */ 19, 786, 283, 73, 418, 330, 422, 77, 78, 227, + /* 1350 */ 96, 407, 67, 405, 79, 432, 431, 292, 228, 835, + /* 1360 */ 215, 202, 229, 293, 767, 303, 302, 301, 204, 299, + /* 1370 */ 294, 295, 676, 7, 681, 433, 669, 206, 110, 224, + /* 1380 */ 203, 205, 434, 667, 666, 658, 120, 168, 656, 237, + /* 1390 */ 840, 840, 840, 842, 19, 337, 155, 233, 236, 341, + /* 1400 */ 167, 905, 108, 313, 903, 826, 314, 125, 126, 127, + /* 1410 */ 129, 170, 247, 756, 172, 928, 134, 136, 171, 60, + /* 1420 */ 61, 123, 169, 137, 175, 933, 176, 927, 8, 13, + /* 1430 */ 177, 254, 191, 918, 139, 370, 924, 140, 678, 150, + /* 1440 */ 374, 274, 182, 378, 141, 122, 63, 14, 383, 729, + /* 1450 */ 268, 15, 64, 225, 846, 845, 874, 16, 765, 770, + /* 1460 */ 4, 162, 209, 395, 211, 142, 878, 796, 801, 312, + /* 1470 */ 190, 71, 68, 875, 873, 939, 199, 938, 17, 195, + /* 1480 */ 18, 196, 417, 975, 152, 653, 976, 198, 153, 421, + /* 1490 */ 877, 154, 200, 844, 696, 81, 343, 297, 1019, 1018, + /* 1500 */ 300, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 19, 22, 22, 23, 1, 24, 26, 15, 27, 80, + /* 0 */ 19, 144, 145, 146, 147, 24, 1, 2, 27, 80, /* 10 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - /* 20 */ 91, 92, 93, 94, 95, 108, 109, 110, 27, 28, - /* 30 */ 23, 50, 51, 80, 81, 82, 83, 122, 85, 86, - /* 40 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 22, - /* 50 */ 70, 23, 71, 72, 73, 74, 75, 76, 77, 78, - /* 60 */ 79, 80, 81, 82, 83, 122, 85, 86, 87, 88, - /* 70 */ 89, 90, 91, 92, 93, 94, 95, 19, 97, 91, - /* 80 */ 92, 93, 94, 95, 26, 85, 86, 87, 88, 89, - /* 90 */ 90, 91, 92, 93, 94, 95, 27, 28, 97, 98, - /* 100 */ 99, 122, 211, 102, 103, 104, 79, 19, 50, 51, - /* 110 */ 19, 122, 59, 55, 113, 224, 225, 226, 89, 90, - /* 120 */ 91, 92, 93, 94, 95, 23, 27, 28, 26, 71, + /* 20 */ 91, 92, 93, 94, 95, 91, 92, 93, 94, 95, + /* 30 */ 19, 50, 51, 80, 81, 82, 83, 212, 85, 86, + /* 40 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 224, + /* 50 */ 225, 226, 71, 72, 73, 74, 75, 76, 77, 78, + /* 60 */ 79, 80, 81, 82, 83, 95, 85, 86, 87, 88, + /* 70 */ 89, 90, 91, 92, 93, 94, 95, 19, 97, 85, + /* 80 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + /* 90 */ 66, 33, 27, 28, 27, 28, 22, 201, 152, 152, + /* 100 */ 42, 27, 152, 224, 225, 226, 95, 211, 50, 51, + /* 110 */ 99, 100, 101, 102, 103, 104, 105, 27, 28, 59, + /* 120 */ 174, 175, 243, 112, 174, 175, 66, 94, 95, 71, /* 130 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - /* 140 */ 82, 83, 51, 85, 86, 87, 88, 89, 90, 91, - /* 150 */ 92, 93, 94, 95, 19, 132, 133, 58, 89, 90, - /* 160 */ 21, 108, 109, 110, 27, 28, 97, 98, 33, 100, - /* 170 */ 7, 8, 119, 120, 22, 19, 107, 42, 109, 27, - /* 180 */ 28, 27, 28, 95, 28, 50, 51, 99, 100, 101, - /* 190 */ 102, 103, 104, 105, 27, 28, 97, 98, 107, 152, - /* 200 */ 112, 132, 133, 112, 65, 69, 71, 72, 73, 74, - /* 210 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 11, + /* 140 */ 82, 83, 195, 85, 86, 87, 88, 89, 90, 91, + /* 150 */ 92, 93, 94, 95, 19, 209, 89, 90, 173, 209, + /* 160 */ 210, 26, 97, 98, 97, 98, 181, 100, 108, 109, + /* 170 */ 110, 97, 174, 152, 107, 152, 109, 89, 90, 91, + /* 180 */ 92, 93, 94, 95, 163, 50, 51, 97, 98, 99, + /* 190 */ 55, 244, 102, 103, 104, 174, 175, 174, 175, 132, + /* 200 */ 133, 89, 90, 113, 66, 19, 71, 72, 73, 74, + /* 210 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 198, /* 220 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 230 */ 95, 19, 101, 97, 97, 98, 24, 101, 122, 157, - /* 240 */ 12, 99, 103, 112, 102, 103, 104, 152, 22, 97, - /* 250 */ 98, 97, 98, 27, 28, 113, 27, 29, 91, 164, - /* 260 */ 165, 124, 50, 51, 97, 98, 219, 59, 132, 133, - /* 270 */ 134, 22, 23, 45, 66, 47, 212, 213, 124, 140, - /* 280 */ 132, 133, 19, 71, 72, 73, 74, 75, 76, 77, - /* 290 */ 78, 79, 80, 81, 82, 83, 152, 85, 86, 87, - /* 300 */ 88, 89, 90, 91, 92, 93, 94, 95, 164, 165, - /* 310 */ 27, 28, 230, 50, 51, 233, 108, 109, 110, 70, - /* 320 */ 16, 59, 23, 97, 98, 26, 97, 22, 66, 185, - /* 330 */ 12, 187, 27, 28, 71, 72, 73, 74, 75, 76, - /* 340 */ 77, 78, 79, 80, 81, 82, 83, 29, 85, 86, + /* 230 */ 95, 152, 209, 210, 148, 149, 50, 51, 100, 53, + /* 240 */ 154, 59, 156, 22, 132, 133, 119, 120, 163, 163, + /* 250 */ 22, 192, 193, 174, 175, 27, 28, 71, 72, 73, + /* 260 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + /* 270 */ 174, 85, 86, 87, 88, 89, 90, 91, 92, 93, + /* 280 */ 94, 95, 19, 198, 198, 174, 152, 24, 209, 210, + /* 290 */ 108, 109, 110, 192, 193, 27, 28, 69, 164, 165, + /* 300 */ 79, 119, 120, 27, 28, 27, 99, 222, 152, 102, + /* 310 */ 103, 104, 24, 50, 51, 27, 66, 89, 90, 185, + /* 320 */ 113, 187, 22, 157, 239, 97, 58, 27, 28, 101, + /* 330 */ 174, 175, 246, 163, 71, 72, 73, 74, 75, 76, + /* 340 */ 77, 78, 79, 80, 81, 82, 83, 11, 85, 86, /* 350 */ 87, 88, 89, 90, 91, 92, 93, 94, 95, 19, - /* 360 */ 22, 148, 149, 45, 23, 47, 62, 154, 64, 156, - /* 370 */ 108, 109, 110, 37, 69, 23, 163, 59, 26, 26, - /* 380 */ 97, 98, 144, 145, 146, 147, 152, 200, 52, 23, - /* 390 */ 50, 51, 26, 22, 89, 90, 60, 210, 7, 8, - /* 400 */ 9, 138, 97, 22, 23, 26, 101, 26, 174, 175, - /* 410 */ 197, 71, 72, 73, 74, 75, 76, 77, 78, 79, - /* 420 */ 80, 81, 82, 83, 16, 85, 86, 87, 88, 89, - /* 430 */ 90, 91, 92, 93, 94, 95, 19, 132, 133, 134, - /* 440 */ 23, 152, 208, 209, 140, 152, 152, 111, 195, 196, - /* 450 */ 98, 70, 163, 160, 152, 23, 22, 164, 165, 246, - /* 460 */ 207, 27, 152, 174, 175, 171, 172, 50, 51, 137, - /* 470 */ 62, 139, 64, 171, 172, 222, 124, 27, 138, 24, - /* 480 */ 163, 89, 90, 130, 174, 175, 197, 163, 71, 72, + /* 360 */ 132, 133, 134, 23, 152, 97, 98, 91, 198, 119, + /* 370 */ 120, 152, 22, 97, 98, 97, 152, 27, 28, 27, + /* 380 */ 28, 27, 28, 227, 160, 97, 174, 175, 164, 165, + /* 390 */ 50, 51, 222, 174, 175, 59, 230, 97, 98, 233, + /* 400 */ 188, 137, 66, 139, 234, 187, 177, 188, 152, 239, + /* 410 */ 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, + /* 420 */ 80, 81, 82, 83, 12, 85, 86, 87, 88, 89, + /* 430 */ 90, 91, 92, 93, 94, 95, 19, 177, 97, 152, + /* 440 */ 23, 29, 101, 152, 108, 109, 110, 97, 98, 97, + /* 450 */ 98, 97, 98, 224, 225, 226, 22, 45, 24, 47, + /* 460 */ 152, 152, 152, 152, 152, 174, 175, 50, 51, 249, + /* 470 */ 250, 59, 21, 132, 133, 134, 124, 221, 124, 188, + /* 480 */ 171, 172, 171, 172, 224, 225, 226, 152, 71, 72, /* 490 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - /* 500 */ 83, 22, 85, 86, 87, 88, 89, 90, 91, 92, - /* 510 */ 93, 94, 95, 19, 197, 181, 182, 23, 208, 209, - /* 520 */ 152, 197, 26, 189, 132, 133, 232, 224, 225, 226, - /* 530 */ 152, 97, 91, 26, 232, 116, 212, 213, 152, 222, - /* 540 */ 121, 152, 174, 175, 50, 51, 243, 97, 22, 23, - /* 550 */ 22, 234, 174, 175, 177, 23, 239, 116, 163, 177, - /* 560 */ 174, 175, 121, 174, 175, 71, 72, 73, 74, 75, - /* 570 */ 76, 77, 78, 79, 80, 81, 82, 83, 24, 85, + /* 500 */ 83, 152, 85, 86, 87, 88, 89, 90, 91, 92, + /* 510 */ 93, 94, 95, 19, 152, 183, 65, 23, 170, 171, + /* 520 */ 172, 19, 23, 174, 175, 26, 152, 50, 51, 12, + /* 530 */ 196, 197, 37, 170, 171, 172, 174, 175, 224, 225, + /* 540 */ 226, 232, 208, 232, 50, 51, 29, 52, 174, 175, + /* 550 */ 188, 74, 75, 51, 103, 60, 222, 163, 209, 0, + /* 560 */ 1, 2, 45, 152, 47, 71, 72, 73, 74, 75, + /* 570 */ 76, 77, 78, 79, 80, 81, 82, 83, 101, 85, /* 580 */ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - /* 590 */ 19, 23, 197, 11, 23, 227, 70, 208, 220, 152, - /* 600 */ 31, 224, 225, 226, 35, 98, 224, 225, 226, 108, - /* 610 */ 109, 110, 115, 152, 117, 118, 27, 222, 49, 123, - /* 620 */ 24, 50, 51, 27, 0, 1, 2, 224, 225, 226, - /* 630 */ 166, 124, 168, 169, 239, 174, 175, 170, 171, 172, - /* 640 */ 22, 194, 71, 72, 73, 74, 75, 76, 77, 78, + /* 590 */ 19, 140, 198, 152, 23, 152, 22, 98, 24, 152, + /* 600 */ 152, 27, 152, 183, 152, 152, 111, 213, 214, 107, + /* 610 */ 152, 164, 165, 152, 112, 174, 175, 174, 175, 181, + /* 620 */ 182, 50, 51, 124, 174, 175, 174, 175, 190, 26, + /* 630 */ 22, 23, 22, 23, 26, 166, 26, 168, 169, 16, + /* 640 */ 16, 19, 71, 72, 73, 74, 75, 76, 77, 78, /* 650 */ 79, 80, 81, 82, 83, 152, 85, 86, 87, 88, - /* 660 */ 89, 90, 91, 92, 93, 94, 95, 19, 22, 208, - /* 670 */ 24, 23, 195, 196, 170, 171, 172, 174, 175, 152, - /* 680 */ 26, 152, 152, 152, 207, 152, 97, 152, 23, 152, - /* 690 */ 51, 244, 152, 97, 152, 247, 248, 23, 50, 51, - /* 700 */ 26, 174, 175, 174, 175, 174, 175, 174, 175, 174, - /* 710 */ 175, 174, 175, 23, 174, 175, 174, 175, 188, 71, - /* 720 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - /* 730 */ 82, 83, 152, 85, 86, 87, 88, 89, 90, 91, - /* 740 */ 92, 93, 94, 95, 19, 152, 107, 152, 33, 24, - /* 750 */ 152, 100, 101, 27, 174, 175, 152, 42, 152, 23, - /* 760 */ 152, 26, 152, 23, 152, 26, 152, 174, 175, 174, - /* 770 */ 175, 152, 174, 175, 23, 50, 51, 26, 174, 175, - /* 780 */ 174, 175, 174, 175, 174, 175, 174, 175, 174, 175, - /* 790 */ 163, 119, 120, 174, 175, 19, 71, 72, 73, 74, - /* 800 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 152, - /* 810 */ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - /* 820 */ 95, 66, 152, 97, 197, 23, 50, 51, 26, 53, - /* 830 */ 23, 174, 175, 26, 23, 23, 23, 26, 26, 26, - /* 840 */ 36, 106, 146, 147, 174, 175, 19, 71, 72, 73, + /* 660 */ 89, 90, 91, 92, 93, 94, 95, 152, 220, 196, + /* 670 */ 197, 97, 50, 51, 108, 109, 110, 152, 70, 221, + /* 680 */ 70, 208, 7, 8, 9, 62, 62, 64, 64, 174, + /* 690 */ 175, 146, 147, 71, 72, 73, 74, 75, 76, 77, + /* 700 */ 78, 79, 80, 81, 82, 83, 152, 85, 86, 87, + /* 710 */ 88, 89, 90, 91, 92, 93, 94, 95, 19, 152, + /* 720 */ 195, 152, 31, 220, 152, 152, 35, 26, 174, 175, + /* 730 */ 152, 163, 152, 130, 152, 115, 152, 117, 118, 152, + /* 740 */ 49, 174, 175, 174, 175, 152, 174, 175, 26, 50, + /* 750 */ 51, 152, 174, 175, 174, 175, 174, 175, 174, 175, + /* 760 */ 138, 174, 175, 140, 22, 23, 198, 174, 175, 152, + /* 770 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + /* 780 */ 81, 82, 83, 152, 85, 86, 87, 88, 89, 90, + /* 790 */ 91, 92, 93, 94, 95, 19, 152, 152, 152, 98, + /* 800 */ 24, 152, 108, 109, 110, 174, 175, 152, 152, 152, + /* 810 */ 152, 152, 70, 152, 213, 214, 152, 152, 174, 175, + /* 820 */ 174, 175, 152, 174, 175, 124, 50, 51, 106, 174, + /* 830 */ 175, 174, 175, 174, 175, 174, 175, 138, 174, 175, + /* 840 */ 152, 22, 23, 22, 163, 189, 19, 71, 72, 73, /* 850 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, /* 860 */ 152, 85, 86, 87, 88, 89, 90, 91, 92, 93, - /* 870 */ 94, 95, 152, 196, 119, 120, 19, 50, 51, 168, - /* 880 */ 169, 26, 174, 175, 207, 28, 152, 249, 250, 152, - /* 890 */ 163, 163, 163, 163, 174, 175, 163, 19, 71, 72, + /* 870 */ 94, 95, 152, 152, 168, 169, 152, 50, 51, 198, + /* 880 */ 197, 152, 174, 175, 152, 240, 152, 152, 152, 70, + /* 890 */ 152, 208, 152, 152, 174, 175, 152, 19, 71, 72, /* 900 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, /* 910 */ 83, 152, 85, 86, 87, 88, 89, 90, 91, 92, - /* 920 */ 93, 94, 95, 152, 197, 197, 197, 197, 50, 51, - /* 930 */ 197, 194, 36, 174, 175, 191, 192, 152, 191, 192, - /* 940 */ 163, 152, 66, 124, 152, 174, 175, 152, 19, 71, + /* 920 */ 93, 94, 95, 152, 195, 247, 248, 152, 50, 51, + /* 930 */ 195, 195, 152, 174, 175, 195, 195, 26, 152, 195, + /* 940 */ 252, 220, 163, 122, 152, 174, 175, 163, 19, 71, /* 950 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, /* 960 */ 82, 83, 152, 85, 86, 87, 88, 89, 90, 91, - /* 970 */ 92, 93, 94, 95, 197, 152, 100, 188, 152, 50, - /* 980 */ 51, 152, 152, 188, 174, 175, 252, 152, 94, 95, - /* 990 */ 152, 152, 152, 1, 2, 152, 152, 174, 175, 19, + /* 970 */ 92, 93, 94, 95, 152, 195, 252, 198, 240, 50, + /* 980 */ 51, 189, 198, 19, 174, 175, 19, 51, 23, 100, + /* 990 */ 101, 26, 28, 163, 163, 28, 174, 175, 163, 19, /* 1000 */ 152, 72, 73, 74, 75, 76, 77, 78, 79, 80, /* 1010 */ 81, 82, 83, 152, 85, 86, 87, 88, 89, 90, - /* 1020 */ 91, 92, 93, 94, 95, 152, 188, 188, 22, 194, - /* 1030 */ 50, 51, 240, 173, 194, 174, 175, 252, 194, 152, - /* 1040 */ 36, 181, 28, 152, 23, 219, 122, 174, 175, 219, - /* 1050 */ 221, 152, 152, 73, 74, 75, 76, 77, 78, 79, + /* 1020 */ 91, 92, 93, 94, 95, 152, 240, 152, 198, 198, + /* 1030 */ 50, 51, 33, 198, 123, 174, 175, 116, 7, 8, + /* 1040 */ 101, 42, 121, 107, 152, 152, 23, 174, 175, 26, + /* 1050 */ 152, 112, 183, 73, 74, 75, 76, 77, 78, 79, /* 1060 */ 80, 81, 82, 83, 152, 85, 86, 87, 88, 89, - /* 1070 */ 90, 91, 92, 93, 94, 95, 19, 20, 152, 22, - /* 1080 */ 23, 194, 152, 240, 27, 28, 174, 175, 240, 19, - /* 1090 */ 20, 26, 22, 194, 194, 38, 22, 27, 28, 152, - /* 1100 */ 23, 22, 152, 116, 174, 175, 152, 23, 38, 152, - /* 1110 */ 23, 152, 221, 152, 57, 152, 23, 163, 50, 51, - /* 1120 */ 194, 174, 175, 66, 174, 175, 69, 57, 174, 175, - /* 1130 */ 40, 174, 175, 174, 175, 174, 175, 174, 175, 69, - /* 1140 */ 22, 53, 74, 75, 30, 53, 89, 90, 22, 22, - /* 1150 */ 152, 197, 23, 96, 97, 98, 22, 152, 101, 89, - /* 1160 */ 90, 91, 208, 209, 152, 53, 96, 97, 98, 101, - /* 1170 */ 22, 101, 174, 175, 152, 19, 20, 105, 22, 174, - /* 1180 */ 175, 112, 19, 27, 28, 20, 174, 175, 24, 132, - /* 1190 */ 133, 134, 135, 136, 38, 44, 174, 175, 107, 61, - /* 1200 */ 54, 26, 132, 133, 134, 135, 136, 54, 107, 22, - /* 1210 */ 5, 140, 1, 57, 36, 111, 122, 28, 79, 79, - /* 1220 */ 131, 123, 66, 19, 20, 69, 22, 1, 16, 20, - /* 1230 */ 125, 27, 28, 123, 111, 120, 23, 131, 23, 16, - /* 1240 */ 68, 142, 38, 15, 22, 89, 90, 3, 167, 4, - /* 1250 */ 248, 251, 96, 97, 98, 180, 180, 101, 251, 151, - /* 1260 */ 6, 57, 151, 13, 151, 26, 25, 151, 161, 202, - /* 1270 */ 153, 162, 153, 69, 130, 128, 203, 19, 20, 127, - /* 1280 */ 22, 126, 204, 129, 22, 27, 28, 205, 132, 133, - /* 1290 */ 134, 135, 136, 89, 90, 231, 38, 95, 137, 179, - /* 1300 */ 96, 97, 98, 206, 179, 101, 122, 107, 159, 159, - /* 1310 */ 125, 231, 216, 228, 107, 57, 184, 217, 216, 176, - /* 1320 */ 217, 176, 48, 106, 18, 184, 158, 69, 159, 158, - /* 1330 */ 46, 71, 237, 176, 176, 176, 132, 133, 134, 135, - /* 1340 */ 136, 217, 176, 137, 216, 178, 158, 89, 90, 179, - /* 1350 */ 176, 159, 179, 159, 96, 97, 98, 159, 159, 101, - /* 1360 */ 5, 158, 202, 22, 18, 10, 11, 12, 13, 14, - /* 1370 */ 190, 238, 17, 190, 158, 193, 41, 159, 202, 193, - /* 1380 */ 159, 202, 245, 193, 193, 223, 190, 32, 159, 34, - /* 1390 */ 132, 133, 134, 135, 136, 159, 39, 155, 43, 150, - /* 1400 */ 223, 177, 201, 178, 177, 186, 66, 199, 177, 152, - /* 1410 */ 253, 56, 215, 152, 182, 152, 202, 152, 63, 152, - /* 1420 */ 152, 66, 67, 242, 229, 152, 174, 152, 152, 152, - /* 1430 */ 152, 152, 152, 152, 199, 242, 202, 152, 198, 152, - /* 1440 */ 152, 152, 183, 192, 152, 215, 152, 183, 215, 183, - /* 1450 */ 152, 241, 214, 152, 211, 152, 152, 211, 211, 152, - /* 1460 */ 152, 241, 152, 152, 152, 152, 152, 152, 152, 114, - /* 1470 */ 152, 152, 235, 152, 152, 152, 174, 187, 95, 174, - /* 1480 */ 253, 253, 253, 253, 236, 253, 253, 253, 253, 253, - /* 1490 */ 253, 253, 253, 253, 253, 253, 141, + /* 1070 */ 90, 91, 92, 93, 94, 95, 19, 20, 23, 22, + /* 1080 */ 23, 26, 152, 152, 27, 28, 174, 175, 23, 19, + /* 1090 */ 20, 26, 22, 132, 133, 38, 152, 27, 28, 152, + /* 1100 */ 23, 215, 152, 26, 174, 175, 152, 27, 38, 152, + /* 1110 */ 23, 152, 27, 26, 57, 152, 23, 163, 152, 26, + /* 1120 */ 152, 174, 175, 66, 174, 175, 69, 57, 174, 175, + /* 1130 */ 27, 174, 175, 174, 175, 152, 66, 174, 175, 69, + /* 1140 */ 174, 175, 174, 175, 152, 23, 89, 90, 26, 91, + /* 1150 */ 152, 236, 198, 96, 97, 98, 132, 133, 101, 89, + /* 1160 */ 90, 152, 23, 209, 210, 26, 96, 97, 98, 152, + /* 1170 */ 212, 101, 174, 175, 116, 19, 20, 97, 22, 121, + /* 1180 */ 152, 193, 97, 27, 28, 152, 152, 152, 152, 132, + /* 1190 */ 133, 134, 135, 136, 38, 23, 152, 152, 26, 152, + /* 1200 */ 97, 152, 132, 133, 134, 135, 136, 235, 152, 212, + /* 1210 */ 199, 150, 212, 57, 212, 200, 203, 216, 241, 216, + /* 1220 */ 241, 203, 182, 19, 20, 69, 22, 186, 178, 177, + /* 1230 */ 216, 27, 28, 229, 202, 39, 177, 177, 200, 155, + /* 1240 */ 245, 122, 38, 41, 22, 89, 90, 91, 159, 159, + /* 1250 */ 242, 159, 96, 97, 98, 71, 130, 101, 242, 191, + /* 1260 */ 223, 57, 18, 194, 159, 203, 194, 194, 194, 18, + /* 1270 */ 158, 223, 191, 69, 203, 159, 158, 19, 20, 191, + /* 1280 */ 22, 203, 137, 46, 238, 27, 28, 159, 132, 133, + /* 1290 */ 134, 135, 136, 89, 90, 159, 38, 22, 158, 179, + /* 1300 */ 96, 97, 98, 237, 158, 101, 159, 159, 158, 179, + /* 1310 */ 107, 176, 48, 176, 176, 57, 184, 106, 176, 125, + /* 1320 */ 179, 178, 218, 107, 217, 176, 218, 69, 184, 176, + /* 1330 */ 176, 217, 159, 218, 217, 159, 132, 133, 134, 135, + /* 1340 */ 136, 218, 217, 137, 179, 95, 179, 89, 90, 228, + /* 1350 */ 129, 126, 128, 127, 96, 97, 98, 206, 231, 101, + /* 1360 */ 5, 25, 231, 205, 207, 10, 11, 12, 13, 14, + /* 1370 */ 204, 203, 17, 26, 162, 161, 13, 6, 180, 180, + /* 1380 */ 153, 153, 151, 151, 151, 151, 167, 32, 4, 34, + /* 1390 */ 132, 133, 134, 135, 136, 3, 22, 142, 43, 68, + /* 1400 */ 15, 23, 16, 251, 23, 120, 251, 248, 131, 111, + /* 1410 */ 123, 56, 16, 20, 125, 1, 123, 131, 63, 79, + /* 1420 */ 79, 66, 67, 111, 36, 28, 122, 1, 5, 22, + /* 1430 */ 107, 140, 26, 54, 54, 44, 61, 107, 20, 24, + /* 1440 */ 19, 112, 105, 53, 22, 40, 22, 22, 53, 30, + /* 1450 */ 23, 22, 22, 53, 23, 23, 23, 22, 116, 23, + /* 1460 */ 22, 122, 23, 26, 23, 22, 11, 124, 28, 114, + /* 1470 */ 36, 26, 26, 23, 23, 23, 122, 23, 36, 26, + /* 1480 */ 36, 22, 24, 23, 22, 1, 23, 26, 22, 24, + /* 1490 */ 23, 22, 122, 23, 23, 22, 141, 23, 122, 122, + /* 1500 */ 15, }; -#define YY_SHIFT_USE_DFLT (-86) -#define YY_SHIFT_COUNT (429) -#define YY_SHIFT_MIN (-85) -#define YY_SHIFT_MAX (1383) +#define YY_SHIFT_USE_DFLT (-72) +#define YY_SHIFT_COUNT (435) +#define YY_SHIFT_MIN (-71) +#define YY_SHIFT_MAX (1485) static const short yy_shift_ofst[] = { - /* 0 */ 992, 1057, 1355, 1156, 1204, 1204, 1, 262, -19, 135, - /* 10 */ 135, 776, 1204, 1204, 1204, 1204, 69, 69, 53, 208, - /* 20 */ 283, 755, 58, 725, 648, 571, 494, 417, 340, 263, - /* 30 */ 212, 827, 827, 827, 827, 827, 827, 827, 827, 827, - /* 40 */ 827, 827, 827, 827, 827, 827, 878, 827, 929, 980, - /* 50 */ 980, 1070, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, + /* 0 */ 5, 1057, 1355, 1070, 1204, 1204, 1204, 90, 60, -19, + /* 10 */ 58, 58, 186, 1204, 1204, 1204, 1204, 1204, 1204, 1204, + /* 20 */ 67, 67, 182, 336, 65, 250, 135, 263, 340, 417, + /* 30 */ 494, 571, 622, 699, 776, 827, 827, 827, 827, 827, + /* 40 */ 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, + /* 50 */ 878, 827, 929, 980, 980, 1156, 1204, 1204, 1204, 1204, /* 60 */ 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, /* 70 */ 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, - /* 80 */ 1258, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, - /* 90 */ 1204, 1204, 1204, 1204, -71, -47, -47, -47, -47, -47, - /* 100 */ 0, 29, -12, 283, 283, 139, 91, 392, 392, 894, - /* 110 */ 672, 726, 1383, -86, -86, -86, 88, 318, 318, 99, - /* 120 */ 381, -20, 283, 283, 283, 283, 283, 283, 283, 283, - /* 130 */ 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - /* 140 */ 283, 283, 283, 283, 624, 876, 726, 672, 1340, 1340, - /* 150 */ 1340, 1340, 1340, 1340, -86, -86, -86, 305, 136, 136, - /* 160 */ 142, 167, 226, 154, 137, 152, 283, 283, 283, 283, - /* 170 */ 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - /* 180 */ 283, 283, 283, 336, 336, 336, 283, 283, 352, 283, - /* 190 */ 283, 283, 283, 283, 228, 283, 283, 283, 283, 283, - /* 200 */ 283, 283, 283, 283, 283, 501, 569, 596, 596, 596, - /* 210 */ 507, 497, 441, 391, 353, 156, 156, 857, 353, 857, - /* 220 */ 735, 813, 639, 715, 156, 332, 715, 715, 496, 419, - /* 230 */ 646, 1357, 1184, 1184, 1335, 1335, 1184, 1341, 1260, 1144, - /* 240 */ 1346, 1346, 1346, 1346, 1184, 1306, 1144, 1341, 1260, 1260, - /* 250 */ 1144, 1184, 1306, 1206, 1284, 1184, 1184, 1306, 1184, 1306, - /* 260 */ 1184, 1306, 1262, 1207, 1207, 1207, 1274, 1262, 1207, 1217, - /* 270 */ 1207, 1274, 1207, 1207, 1185, 1200, 1185, 1200, 1185, 1200, - /* 280 */ 1184, 1184, 1161, 1262, 1202, 1202, 1262, 1154, 1155, 1147, - /* 290 */ 1152, 1144, 1241, 1239, 1250, 1250, 1254, 1254, 1254, 1254, - /* 300 */ -86, -86, -86, -86, -86, -86, 1068, 304, 526, 249, - /* 310 */ 408, -83, 434, 812, 27, 811, 807, 802, 751, 589, - /* 320 */ 651, 163, 131, 674, 366, 450, 299, 148, 23, 102, - /* 330 */ 229, -21, 1245, 1244, 1222, 1099, 1228, 1172, 1223, 1215, - /* 340 */ 1213, 1115, 1106, 1123, 1110, 1209, 1105, 1212, 1226, 1098, - /* 350 */ 1089, 1140, 1139, 1104, 1189, 1178, 1094, 1211, 1205, 1187, - /* 360 */ 1101, 1071, 1153, 1175, 1146, 1138, 1151, 1091, 1164, 1165, - /* 370 */ 1163, 1069, 1072, 1148, 1112, 1134, 1127, 1129, 1126, 1092, - /* 380 */ 1114, 1118, 1088, 1090, 1093, 1087, 1084, 987, 1079, 1077, - /* 390 */ 1074, 1065, 924, 1021, 1014, 1004, 1006, 819, 739, 896, - /* 400 */ 855, 804, 739, 740, 736, 690, 654, 665, 618, 582, - /* 410 */ 568, 528, 554, 379, 532, 479, 455, 379, 432, 371, - /* 420 */ 341, 28, 338, 116, -11, -57, -85, 7, -8, 3, + /* 80 */ 1204, 1204, 1204, 1204, 1258, 1204, 1204, 1204, 1204, 1204, + /* 90 */ 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, -71, -47, + /* 100 */ -47, -47, -47, -47, -6, 88, -66, 65, 65, 451, + /* 110 */ 502, 112, 112, 33, 127, 278, -30, -72, -72, -72, + /* 120 */ 11, 412, 412, 268, 608, 610, 65, 65, 65, 65, + /* 130 */ 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + /* 140 */ 65, 65, 65, 65, 65, 559, 138, 278, 127, 24, + /* 150 */ 24, 24, 24, 24, 24, -72, -72, -72, 228, 341, + /* 160 */ 341, 207, 276, 300, 352, 354, 350, 65, 65, 65, + /* 170 */ 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + /* 180 */ 65, 65, 65, 65, 495, 495, 495, 65, 65, 499, + /* 190 */ 65, 65, 65, 574, 65, 65, 517, 65, 65, 65, + /* 200 */ 65, 65, 65, 65, 65, 65, 65, 566, 691, 288, + /* 210 */ 288, 288, 701, 620, 1058, 675, 603, 964, 964, 967, + /* 220 */ 603, 967, 722, 965, 936, 999, 964, 264, 999, 999, + /* 230 */ 911, 921, 434, 1196, 1119, 1119, 1202, 1202, 1119, 1222, + /* 240 */ 1184, 1126, 1244, 1244, 1244, 1244, 1119, 1251, 1126, 1222, + /* 250 */ 1184, 1184, 1126, 1119, 1251, 1145, 1237, 1119, 1119, 1251, + /* 260 */ 1275, 1119, 1251, 1119, 1251, 1275, 1203, 1203, 1203, 1264, + /* 270 */ 1275, 1203, 1211, 1203, 1264, 1203, 1203, 1194, 1216, 1194, + /* 280 */ 1216, 1194, 1216, 1194, 1216, 1119, 1119, 1206, 1275, 1250, + /* 290 */ 1250, 1275, 1221, 1225, 1224, 1226, 1126, 1336, 1347, 1363, + /* 300 */ 1363, 1371, 1371, 1371, 1371, -72, -72, -72, -72, -72, + /* 310 */ -72, 477, 623, 742, 819, 624, 694, 74, 1023, 221, + /* 320 */ 1055, 1065, 1077, 1087, 1080, 889, 1031, 939, 1093, 1122, + /* 330 */ 1085, 1139, 961, 1024, 1172, 1103, 821, 1384, 1392, 1374, + /* 340 */ 1255, 1385, 1331, 1386, 1378, 1381, 1285, 1277, 1298, 1287, + /* 350 */ 1393, 1289, 1396, 1414, 1293, 1286, 1340, 1341, 1312, 1397, + /* 360 */ 1388, 1304, 1426, 1423, 1407, 1323, 1291, 1379, 1406, 1380, + /* 370 */ 1375, 1391, 1330, 1415, 1418, 1421, 1329, 1337, 1422, 1390, + /* 380 */ 1424, 1425, 1427, 1429, 1395, 1419, 1430, 1400, 1405, 1431, + /* 390 */ 1432, 1433, 1342, 1435, 1436, 1438, 1437, 1339, 1439, 1441, + /* 400 */ 1440, 1434, 1443, 1343, 1445, 1442, 1446, 1444, 1445, 1450, + /* 410 */ 1451, 1452, 1453, 1454, 1459, 1455, 1460, 1462, 1458, 1461, + /* 420 */ 1463, 1466, 1465, 1461, 1467, 1469, 1470, 1471, 1473, 1354, + /* 430 */ 1370, 1376, 1377, 1474, 1485, 1484, }; -#define YY_REDUCE_USE_DFLT (-110) -#define YY_REDUCE_COUNT (305) -#define YY_REDUCE_MIN (-109) -#define YY_REDUCE_MAX (1323) +#define YY_REDUCE_USE_DFLT (-176) +#define YY_REDUCE_COUNT (310) +#define YY_REDUCE_MIN (-175) +#define YY_REDUCE_MAX (1234) static const short yy_reduce_ofst[] = { - /* 0 */ 238, 954, 213, 289, 310, 234, 144, 317, -109, 382, - /* 10 */ 377, 303, 461, 389, 378, 368, 302, 294, 253, 395, - /* 20 */ 293, 324, 403, 403, 403, 403, 403, 403, 403, 403, - /* 30 */ 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - /* 40 */ 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - /* 50 */ 403, 1022, 1012, 1005, 998, 963, 961, 959, 957, 950, - /* 60 */ 947, 930, 912, 873, 861, 823, 810, 771, 759, 720, - /* 70 */ 708, 670, 657, 619, 614, 612, 610, 608, 606, 604, - /* 80 */ 598, 595, 593, 580, 542, 540, 537, 535, 533, 531, - /* 90 */ 529, 527, 503, 386, 403, 403, 403, 403, 403, 403, - /* 100 */ 403, 403, 403, 95, 447, 82, 334, 504, 467, 403, - /* 110 */ 477, 464, 403, 403, 403, 403, 860, 747, 744, 785, - /* 120 */ 638, 638, 926, 891, 900, 899, 887, 844, 840, 835, - /* 130 */ 848, 830, 843, 829, 792, 839, 826, 737, 838, 795, - /* 140 */ 789, 47, 734, 530, 696, 777, 711, 677, 733, 730, - /* 150 */ 729, 728, 727, 627, 448, 64, 187, 1305, 1302, 1252, - /* 160 */ 1290, 1273, 1323, 1322, 1321, 1319, 1318, 1316, 1315, 1314, - /* 170 */ 1313, 1312, 1311, 1310, 1308, 1307, 1304, 1303, 1301, 1298, - /* 180 */ 1294, 1292, 1289, 1266, 1264, 1259, 1288, 1287, 1238, 1285, - /* 190 */ 1281, 1280, 1279, 1278, 1251, 1277, 1276, 1275, 1273, 1268, - /* 200 */ 1267, 1265, 1263, 1261, 1257, 1248, 1237, 1247, 1246, 1243, - /* 210 */ 1238, 1240, 1235, 1249, 1234, 1233, 1230, 1220, 1214, 1210, - /* 220 */ 1225, 1219, 1232, 1231, 1197, 1195, 1227, 1224, 1201, 1208, - /* 230 */ 1242, 1137, 1236, 1229, 1193, 1181, 1221, 1177, 1196, 1179, - /* 240 */ 1191, 1190, 1186, 1182, 1218, 1216, 1176, 1162, 1183, 1180, - /* 250 */ 1160, 1199, 1203, 1133, 1095, 1198, 1194, 1188, 1192, 1171, - /* 260 */ 1169, 1168, 1173, 1174, 1166, 1159, 1141, 1170, 1158, 1167, - /* 270 */ 1157, 1132, 1145, 1143, 1124, 1128, 1103, 1102, 1100, 1096, - /* 280 */ 1150, 1149, 1085, 1125, 1080, 1064, 1120, 1097, 1082, 1078, - /* 290 */ 1073, 1067, 1109, 1107, 1119, 1117, 1116, 1113, 1111, 1108, - /* 300 */ 1007, 1000, 1002, 1076, 1075, 1081, + /* 0 */ -143, 954, 86, 21, -50, 23, 79, 134, 170, -175, + /* 10 */ 229, 260, -121, 212, 219, 291, -54, 349, 362, 156, + /* 20 */ 309, 311, 334, 85, 224, 394, 314, 314, 314, 314, + /* 30 */ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + /* 40 */ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + /* 50 */ 314, 314, 314, 314, 314, 374, 441, 443, 450, 452, + /* 60 */ 515, 554, 567, 569, 572, 578, 580, 582, 584, 587, + /* 70 */ 593, 631, 644, 646, 649, 655, 657, 659, 661, 664, + /* 80 */ 708, 720, 759, 771, 810, 822, 861, 873, 912, 930, + /* 90 */ 947, 950, 957, 959, 963, 966, 968, 998, 314, 314, + /* 100 */ 314, 314, 314, 314, 314, 314, 314, 447, -53, 166, + /* 110 */ 438, 348, 363, 314, 473, 469, 314, 314, 314, 314, + /* 120 */ -15, 59, 101, 688, 220, 220, 525, 256, 729, 735, + /* 130 */ 736, 740, 741, 744, 645, 448, 738, 458, 786, 503, + /* 140 */ 780, 656, 721, 724, 792, 545, 568, 706, 683, 681, + /* 150 */ 779, 784, 830, 831, 835, 678, 601, -104, -2, 96, + /* 160 */ 111, 218, 287, 308, 310, 312, 335, 411, 453, 461, + /* 170 */ 573, 599, 617, 658, 665, 670, 732, 734, 775, 848, + /* 180 */ 875, 892, 893, 898, 332, 420, 869, 931, 944, 886, + /* 190 */ 983, 992, 1009, 958, 1017, 1028, 988, 1033, 1034, 1035, + /* 200 */ 287, 1036, 1044, 1045, 1047, 1049, 1056, 915, 972, 997, + /* 210 */ 1000, 1002, 886, 1011, 1015, 1061, 1013, 1001, 1003, 977, + /* 220 */ 1018, 979, 1050, 1041, 1040, 1052, 1014, 1004, 1059, 1060, + /* 230 */ 1032, 1038, 1084, 995, 1089, 1090, 1008, 1016, 1092, 1037, + /* 240 */ 1068, 1062, 1069, 1072, 1073, 1074, 1105, 1112, 1071, 1048, + /* 250 */ 1081, 1088, 1078, 1116, 1118, 1046, 1066, 1128, 1136, 1140, + /* 260 */ 1120, 1147, 1146, 1148, 1150, 1130, 1135, 1137, 1138, 1132, + /* 270 */ 1141, 1142, 1143, 1149, 1144, 1153, 1154, 1104, 1107, 1108, + /* 280 */ 1114, 1115, 1117, 1123, 1125, 1173, 1176, 1121, 1165, 1127, + /* 290 */ 1131, 1167, 1157, 1151, 1158, 1166, 1168, 1212, 1214, 1227, + /* 300 */ 1228, 1231, 1232, 1233, 1234, 1152, 1155, 1159, 1198, 1199, + /* 310 */ 1219, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 647, 964, 964, 964, 878, 878, 969, 964, 774, 802, - /* 10 */ 802, 938, 969, 969, 969, 876, 969, 969, 969, 964, - /* 20 */ 969, 778, 808, 969, 969, 969, 969, 969, 969, 969, - /* 30 */ 969, 937, 939, 816, 815, 918, 789, 813, 806, 810, - /* 40 */ 879, 872, 873, 871, 875, 880, 969, 809, 841, 856, - /* 50 */ 840, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 60 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 70 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 80 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 90 */ 969, 969, 969, 969, 850, 855, 862, 854, 851, 843, - /* 100 */ 842, 844, 845, 969, 969, 673, 739, 969, 969, 846, - /* 110 */ 969, 685, 847, 859, 858, 857, 680, 969, 969, 969, - /* 120 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 130 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 140 */ 969, 969, 969, 969, 647, 964, 969, 969, 964, 964, - /* 150 */ 964, 964, 964, 964, 956, 778, 768, 969, 969, 969, - /* 160 */ 969, 969, 969, 969, 969, 969, 969, 944, 942, 969, - /* 170 */ 891, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 180 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 190 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 200 */ 969, 969, 969, 969, 653, 969, 911, 774, 774, 774, - /* 210 */ 776, 754, 766, 655, 812, 791, 791, 923, 812, 923, - /* 220 */ 710, 733, 707, 802, 791, 874, 802, 802, 775, 766, - /* 230 */ 969, 949, 782, 782, 941, 941, 782, 821, 743, 812, - /* 240 */ 750, 750, 750, 750, 782, 670, 812, 821, 743, 743, - /* 250 */ 812, 782, 670, 917, 915, 782, 782, 670, 782, 670, - /* 260 */ 782, 670, 884, 741, 741, 741, 725, 884, 741, 710, - /* 270 */ 741, 725, 741, 741, 795, 790, 795, 790, 795, 790, - /* 280 */ 782, 782, 969, 884, 888, 888, 884, 807, 796, 805, - /* 290 */ 803, 812, 676, 728, 663, 663, 652, 652, 652, 652, - /* 300 */ 961, 961, 956, 712, 712, 695, 969, 969, 969, 969, - /* 310 */ 969, 969, 687, 969, 893, 969, 969, 969, 969, 969, - /* 320 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 330 */ 969, 828, 969, 648, 951, 969, 969, 948, 969, 969, - /* 340 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 350 */ 969, 969, 969, 969, 969, 969, 921, 969, 969, 969, - /* 360 */ 969, 969, 969, 914, 913, 969, 969, 969, 969, 969, - /* 370 */ 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, - /* 380 */ 969, 969, 969, 969, 969, 969, 969, 757, 969, 969, - /* 390 */ 969, 761, 969, 969, 969, 969, 969, 969, 804, 969, - /* 400 */ 797, 969, 877, 969, 969, 969, 969, 969, 969, 969, - /* 410 */ 969, 969, 969, 966, 969, 969, 969, 965, 969, 969, - /* 420 */ 969, 969, 969, 830, 969, 829, 833, 969, 661, 969, - /* 430 */ 644, 649, 960, 963, 962, 959, 958, 957, 952, 950, - /* 440 */ 947, 946, 945, 943, 940, 936, 897, 895, 902, 901, - /* 450 */ 900, 899, 898, 896, 894, 892, 818, 817, 814, 811, - /* 460 */ 753, 935, 890, 752, 749, 748, 669, 953, 920, 929, - /* 470 */ 928, 927, 822, 926, 925, 924, 922, 919, 906, 820, - /* 480 */ 819, 744, 882, 881, 672, 910, 909, 908, 912, 916, - /* 490 */ 907, 784, 751, 671, 668, 675, 679, 731, 732, 740, - /* 500 */ 738, 737, 736, 735, 734, 730, 681, 686, 724, 709, - /* 510 */ 708, 717, 716, 722, 721, 720, 719, 718, 715, 714, - /* 520 */ 713, 706, 705, 711, 704, 727, 726, 723, 703, 747, - /* 530 */ 746, 745, 742, 702, 701, 700, 833, 699, 698, 838, - /* 540 */ 837, 866, 826, 755, 759, 758, 762, 763, 771, 770, - /* 550 */ 769, 780, 781, 793, 792, 824, 823, 794, 779, 773, - /* 560 */ 772, 788, 787, 786, 785, 777, 767, 799, 798, 868, - /* 570 */ 783, 867, 865, 934, 933, 932, 931, 930, 870, 967, - /* 580 */ 968, 887, 889, 886, 801, 800, 885, 869, 839, 836, - /* 590 */ 690, 691, 905, 904, 903, 693, 692, 689, 688, 863, - /* 600 */ 860, 852, 864, 861, 853, 849, 848, 834, 832, 831, - /* 610 */ 827, 835, 760, 756, 825, 765, 764, 697, 696, 694, - /* 620 */ 678, 677, 674, 667, 665, 664, 666, 662, 660, 659, - /* 630 */ 658, 657, 656, 684, 683, 682, 654, 651, 650, 646, - /* 640 */ 645, 643, + /* 0 */ 982, 1300, 1300, 1300, 1214, 1214, 1214, 1305, 1300, 1109, + /* 10 */ 1138, 1138, 1274, 1305, 1305, 1305, 1305, 1305, 1305, 1212, + /* 20 */ 1305, 1305, 1305, 1300, 1305, 1113, 1144, 1305, 1305, 1305, + /* 30 */ 1305, 1305, 1305, 1305, 1305, 1273, 1275, 1152, 1151, 1254, + /* 40 */ 1125, 1149, 1142, 1146, 1215, 1208, 1209, 1207, 1211, 1216, + /* 50 */ 1305, 1145, 1177, 1192, 1176, 1305, 1305, 1305, 1305, 1305, + /* 60 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 70 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 80 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 90 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1186, 1191, + /* 100 */ 1198, 1190, 1187, 1179, 1178, 1180, 1181, 1305, 1305, 1008, + /* 110 */ 1074, 1305, 1305, 1182, 1305, 1020, 1183, 1195, 1194, 1193, + /* 120 */ 1015, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 130 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 140 */ 1305, 1305, 1305, 1305, 1305, 982, 1300, 1305, 1305, 1300, + /* 150 */ 1300, 1300, 1300, 1300, 1300, 1292, 1113, 1103, 1305, 1305, + /* 160 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1280, 1278, + /* 170 */ 1305, 1227, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 180 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 190 */ 1305, 1305, 1305, 1109, 1305, 1305, 1305, 1305, 1305, 1305, + /* 200 */ 1305, 1305, 1305, 1305, 1305, 1305, 988, 1305, 1247, 1109, + /* 210 */ 1109, 1109, 1111, 1089, 1101, 990, 1148, 1127, 1127, 1259, + /* 220 */ 1148, 1259, 1045, 1068, 1042, 1138, 1127, 1210, 1138, 1138, + /* 230 */ 1110, 1101, 1305, 1285, 1118, 1118, 1277, 1277, 1118, 1157, + /* 240 */ 1078, 1148, 1085, 1085, 1085, 1085, 1118, 1005, 1148, 1157, + /* 250 */ 1078, 1078, 1148, 1118, 1005, 1253, 1251, 1118, 1118, 1005, + /* 260 */ 1220, 1118, 1005, 1118, 1005, 1220, 1076, 1076, 1076, 1060, + /* 270 */ 1220, 1076, 1045, 1076, 1060, 1076, 1076, 1131, 1126, 1131, + /* 280 */ 1126, 1131, 1126, 1131, 1126, 1118, 1118, 1305, 1220, 1224, + /* 290 */ 1224, 1220, 1143, 1132, 1141, 1139, 1148, 1011, 1063, 998, + /* 300 */ 998, 987, 987, 987, 987, 1297, 1297, 1292, 1047, 1047, + /* 310 */ 1030, 1305, 1305, 1305, 1305, 1305, 1305, 1022, 1305, 1229, + /* 320 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 330 */ 1305, 1305, 1305, 1305, 1305, 1305, 1164, 1305, 983, 1287, + /* 340 */ 1305, 1305, 1284, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 350 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 360 */ 1305, 1257, 1305, 1305, 1305, 1305, 1305, 1305, 1250, 1249, + /* 370 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 380 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, + /* 390 */ 1305, 1305, 1092, 1305, 1305, 1305, 1096, 1305, 1305, 1305, + /* 400 */ 1305, 1305, 1305, 1305, 1140, 1305, 1133, 1305, 1213, 1305, + /* 410 */ 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1302, + /* 420 */ 1305, 1305, 1305, 1301, 1305, 1305, 1305, 1305, 1305, 1166, + /* 430 */ 1305, 1165, 1169, 1305, 996, 1305, }; /* The next table maps tokens into fallback tokens. If a construct @@ -125524,9 +126866,13 @@ static const YYCODETYPE yyFallback[] = { ** + The semantic value stored at this level of the stack. This is ** the information used by the action routines in the grammar. ** It is sometimes called the "minor" token. +** +** After the "shift" half of a SHIFTREDUCE action, the stateno field +** actually contains the reduce action for the second half of the +** SHIFTREDUCE. */ struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ + YYACTIONTYPE stateno; /* The state-number, or reduce action in SHIFTREDUCE */ YYCODETYPE major; /* The major token value. This is the code ** number for the token at this stack level */ YYMINORTYPE minor; /* The user-supplied minor token value. This @@ -125632,18 +126978,18 @@ static const char *const yyTokenName[] = { "column", "columnid", "type", "carglist", "typetoken", "typename", "signed", "plus_num", "minus_num", "ccons", "term", "expr", - "onconf", "sortorder", "autoinc", "idxlist_opt", + "onconf", "sortorder", "autoinc", "eidlist_opt", "refargs", "defer_subclause", "refarg", "refact", "init_deferred_pred_opt", "conslist", "tconscomma", "tcons", - "idxlist", "defer_subclause_opt", "orconf", "resolvetype", - "raisetype", "ifexists", "fullname", "selectnowith", - "oneselect", "with", "multiselect_op", "distinct", - "selcollist", "from", "where_opt", "groupby_opt", - "having_opt", "orderby_opt", "limit_opt", "values", - "nexprlist", "exprlist", "sclp", "as", - "seltablist", "stl_prefix", "joinop", "indexed_opt", - "on_opt", "using_opt", "joinop2", "idlist", - "sortlist", "setlist", "insert_cmd", "inscollist_opt", + "sortlist", "eidlist", "defer_subclause_opt", "orconf", + "resolvetype", "raisetype", "ifexists", "fullname", + "selectnowith", "oneselect", "with", "multiselect_op", + "distinct", "selcollist", "from", "where_opt", + "groupby_opt", "having_opt", "orderby_opt", "limit_opt", + "values", "nexprlist", "exprlist", "sclp", + "as", "seltablist", "stl_prefix", "joinop", + "indexed_opt", "on_opt", "using_opt", "joinop2", + "idlist", "setlist", "insert_cmd", "idlist_opt", "likeop", "between_op", "in_op", "case_operand", "case_exprlist", "case_else", "uniqueflag", "collate", "nmnum", "trigger_decl", "trigger_cmd_list", "trigger_time", @@ -125724,7 +127070,7 @@ static const char *const yyRuleName[] = { /* 62 */ "ccons ::= PRIMARY KEY sortorder onconf autoinc", /* 63 */ "ccons ::= UNIQUE onconf", /* 64 */ "ccons ::= CHECK LP expr RP", - /* 65 */ "ccons ::= REFERENCES nm idxlist_opt refargs", + /* 65 */ "ccons ::= REFERENCES nm eidlist_opt refargs", /* 66 */ "ccons ::= defer_subclause", /* 67 */ "ccons ::= COLLATE ID|STRING", /* 68 */ "autoinc ::=", @@ -125752,10 +127098,10 @@ static const char *const yyRuleName[] = { /* 90 */ "tconscomma ::= COMMA", /* 91 */ "tconscomma ::=", /* 92 */ "tcons ::= CONSTRAINT nm", - /* 93 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", - /* 94 */ "tcons ::= UNIQUE LP idxlist RP onconf", + /* 93 */ "tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf", + /* 94 */ "tcons ::= UNIQUE LP sortlist RP onconf", /* 95 */ "tcons ::= CHECK LP expr RP onconf", - /* 96 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", + /* 96 */ "tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt", /* 97 */ "defer_subclause_opt ::=", /* 98 */ "defer_subclause_opt ::= defer_subclause", /* 99 */ "onconf ::=", @@ -125768,7 +127114,7 @@ static const char *const yyRuleName[] = { /* 106 */ "cmd ::= DROP TABLE ifexists fullname", /* 107 */ "ifexists ::= IF EXISTS", /* 108 */ "ifexists ::=", - /* 109 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select", + /* 109 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select", /* 110 */ "cmd ::= DROP VIEW ifexists fullname", /* 111 */ "cmd ::= select", /* 112 */ "select ::= with selectnowith", @@ -125797,195 +127143,196 @@ static const char *const yyRuleName[] = { /* 135 */ "stl_prefix ::= seltablist joinop", /* 136 */ "stl_prefix ::=", /* 137 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt", - /* 138 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", - /* 139 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", - /* 140 */ "dbnm ::=", - /* 141 */ "dbnm ::= DOT nm", - /* 142 */ "fullname ::= nm dbnm", - /* 143 */ "joinop ::= COMMA|JOIN", - /* 144 */ "joinop ::= JOIN_KW JOIN", - /* 145 */ "joinop ::= JOIN_KW nm JOIN", - /* 146 */ "joinop ::= JOIN_KW nm nm JOIN", - /* 147 */ "on_opt ::= ON expr", - /* 148 */ "on_opt ::=", - /* 149 */ "indexed_opt ::=", - /* 150 */ "indexed_opt ::= INDEXED BY nm", - /* 151 */ "indexed_opt ::= NOT INDEXED", - /* 152 */ "using_opt ::= USING LP idlist RP", - /* 153 */ "using_opt ::=", - /* 154 */ "orderby_opt ::=", - /* 155 */ "orderby_opt ::= ORDER BY sortlist", - /* 156 */ "sortlist ::= sortlist COMMA expr sortorder", - /* 157 */ "sortlist ::= expr sortorder", - /* 158 */ "sortorder ::= ASC", - /* 159 */ "sortorder ::= DESC", - /* 160 */ "sortorder ::=", - /* 161 */ "groupby_opt ::=", - /* 162 */ "groupby_opt ::= GROUP BY nexprlist", - /* 163 */ "having_opt ::=", - /* 164 */ "having_opt ::= HAVING expr", - /* 165 */ "limit_opt ::=", - /* 166 */ "limit_opt ::= LIMIT expr", - /* 167 */ "limit_opt ::= LIMIT expr OFFSET expr", - /* 168 */ "limit_opt ::= LIMIT expr COMMA expr", - /* 169 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt", - /* 170 */ "where_opt ::=", - /* 171 */ "where_opt ::= WHERE expr", - /* 172 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt", - /* 173 */ "setlist ::= setlist COMMA nm EQ expr", - /* 174 */ "setlist ::= nm EQ expr", - /* 175 */ "cmd ::= with insert_cmd INTO fullname inscollist_opt select", - /* 176 */ "cmd ::= with insert_cmd INTO fullname inscollist_opt DEFAULT VALUES", - /* 177 */ "insert_cmd ::= INSERT orconf", - /* 178 */ "insert_cmd ::= REPLACE", - /* 179 */ "inscollist_opt ::=", - /* 180 */ "inscollist_opt ::= LP idlist RP", - /* 181 */ "idlist ::= idlist COMMA nm", - /* 182 */ "idlist ::= nm", - /* 183 */ "expr ::= term", - /* 184 */ "expr ::= LP expr RP", - /* 185 */ "term ::= NULL", - /* 186 */ "expr ::= ID|INDEXED", - /* 187 */ "expr ::= JOIN_KW", - /* 188 */ "expr ::= nm DOT nm", - /* 189 */ "expr ::= nm DOT nm DOT nm", - /* 190 */ "term ::= INTEGER|FLOAT|BLOB", - /* 191 */ "term ::= STRING", - /* 192 */ "expr ::= VARIABLE", - /* 193 */ "expr ::= expr COLLATE ID|STRING", - /* 194 */ "expr ::= CAST LP expr AS typetoken RP", - /* 195 */ "expr ::= ID|INDEXED LP distinct exprlist RP", - /* 196 */ "expr ::= ID|INDEXED LP STAR RP", - /* 197 */ "term ::= CTIME_KW", - /* 198 */ "expr ::= expr AND expr", - /* 199 */ "expr ::= expr OR expr", - /* 200 */ "expr ::= expr LT|GT|GE|LE expr", - /* 201 */ "expr ::= expr EQ|NE expr", - /* 202 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 203 */ "expr ::= expr PLUS|MINUS expr", - /* 204 */ "expr ::= expr STAR|SLASH|REM expr", - /* 205 */ "expr ::= expr CONCAT expr", - /* 206 */ "likeop ::= LIKE_KW|MATCH", - /* 207 */ "likeop ::= NOT LIKE_KW|MATCH", - /* 208 */ "expr ::= expr likeop expr", - /* 209 */ "expr ::= expr likeop expr ESCAPE expr", - /* 210 */ "expr ::= expr ISNULL|NOTNULL", - /* 211 */ "expr ::= expr NOT NULL", - /* 212 */ "expr ::= expr IS expr", - /* 213 */ "expr ::= expr IS NOT expr", - /* 214 */ "expr ::= NOT expr", - /* 215 */ "expr ::= BITNOT expr", - /* 216 */ "expr ::= MINUS expr", - /* 217 */ "expr ::= PLUS expr", - /* 218 */ "between_op ::= BETWEEN", - /* 219 */ "between_op ::= NOT BETWEEN", - /* 220 */ "expr ::= expr between_op expr AND expr", - /* 221 */ "in_op ::= IN", - /* 222 */ "in_op ::= NOT IN", - /* 223 */ "expr ::= expr in_op LP exprlist RP", - /* 224 */ "expr ::= LP select RP", - /* 225 */ "expr ::= expr in_op LP select RP", - /* 226 */ "expr ::= expr in_op nm dbnm", - /* 227 */ "expr ::= EXISTS LP select RP", - /* 228 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 229 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 230 */ "case_exprlist ::= WHEN expr THEN expr", - /* 231 */ "case_else ::= ELSE expr", - /* 232 */ "case_else ::=", - /* 233 */ "case_operand ::= expr", - /* 234 */ "case_operand ::=", - /* 235 */ "exprlist ::= nexprlist", - /* 236 */ "exprlist ::=", - /* 237 */ "nexprlist ::= nexprlist COMMA expr", - /* 238 */ "nexprlist ::= expr", - /* 239 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP where_opt", - /* 240 */ "uniqueflag ::= UNIQUE", - /* 241 */ "uniqueflag ::=", - /* 242 */ "idxlist_opt ::=", - /* 243 */ "idxlist_opt ::= LP idxlist RP", - /* 244 */ "idxlist ::= idxlist COMMA nm collate sortorder", - /* 245 */ "idxlist ::= nm collate sortorder", - /* 246 */ "collate ::=", - /* 247 */ "collate ::= COLLATE ID|STRING", - /* 248 */ "cmd ::= DROP INDEX ifexists fullname", - /* 249 */ "cmd ::= VACUUM", - /* 250 */ "cmd ::= VACUUM nm", - /* 251 */ "cmd ::= PRAGMA nm dbnm", - /* 252 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 253 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 254 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 255 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 256 */ "nmnum ::= plus_num", - /* 257 */ "nmnum ::= nm", - /* 258 */ "nmnum ::= ON", - /* 259 */ "nmnum ::= DELETE", - /* 260 */ "nmnum ::= DEFAULT", - /* 261 */ "plus_num ::= PLUS INTEGER|FLOAT", - /* 262 */ "plus_num ::= INTEGER|FLOAT", - /* 263 */ "minus_num ::= MINUS INTEGER|FLOAT", - /* 264 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", - /* 265 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", - /* 266 */ "trigger_time ::= BEFORE", - /* 267 */ "trigger_time ::= AFTER", - /* 268 */ "trigger_time ::= INSTEAD OF", - /* 269 */ "trigger_time ::=", - /* 270 */ "trigger_event ::= DELETE|INSERT", - /* 271 */ "trigger_event ::= UPDATE", - /* 272 */ "trigger_event ::= UPDATE OF idlist", - /* 273 */ "foreach_clause ::=", - /* 274 */ "foreach_clause ::= FOR EACH ROW", - /* 275 */ "when_clause ::=", - /* 276 */ "when_clause ::= WHEN expr", - /* 277 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 278 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 279 */ "trnm ::= nm", - /* 280 */ "trnm ::= nm DOT nm", - /* 281 */ "tridxby ::=", - /* 282 */ "tridxby ::= INDEXED BY nm", - /* 283 */ "tridxby ::= NOT INDEXED", - /* 284 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt", - /* 285 */ "trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select", - /* 286 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt", - /* 287 */ "trigger_cmd ::= select", - /* 288 */ "expr ::= RAISE LP IGNORE RP", - /* 289 */ "expr ::= RAISE LP raisetype COMMA nm RP", - /* 290 */ "raisetype ::= ROLLBACK", - /* 291 */ "raisetype ::= ABORT", - /* 292 */ "raisetype ::= FAIL", - /* 293 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 294 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 295 */ "cmd ::= DETACH database_kw_opt expr", - /* 296 */ "key_opt ::=", - /* 297 */ "key_opt ::= KEY expr", - /* 298 */ "database_kw_opt ::= DATABASE", - /* 299 */ "database_kw_opt ::=", - /* 300 */ "cmd ::= REINDEX", - /* 301 */ "cmd ::= REINDEX nm dbnm", - /* 302 */ "cmd ::= ANALYZE", - /* 303 */ "cmd ::= ANALYZE nm dbnm", - /* 304 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 305 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column", - /* 306 */ "add_column_fullname ::= fullname", - /* 307 */ "kwcolumn_opt ::=", - /* 308 */ "kwcolumn_opt ::= COLUMNKW", - /* 309 */ "cmd ::= create_vtab", - /* 310 */ "cmd ::= create_vtab LP vtabarglist RP", - /* 311 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 312 */ "vtabarglist ::= vtabarg", - /* 313 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 314 */ "vtabarg ::=", - /* 315 */ "vtabarg ::= vtabarg vtabargtoken", - /* 316 */ "vtabargtoken ::= ANY", - /* 317 */ "vtabargtoken ::= lp anylist RP", - /* 318 */ "lp ::= LP", - /* 319 */ "anylist ::=", - /* 320 */ "anylist ::= anylist LP anylist RP", - /* 321 */ "anylist ::= anylist ANY", - /* 322 */ "with ::=", - /* 323 */ "with ::= WITH wqlist", - /* 324 */ "with ::= WITH RECURSIVE wqlist", - /* 325 */ "wqlist ::= nm idxlist_opt AS LP select RP", - /* 326 */ "wqlist ::= wqlist COMMA nm idxlist_opt AS LP select RP", + /* 138 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt", + /* 139 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", + /* 140 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", + /* 141 */ "dbnm ::=", + /* 142 */ "dbnm ::= DOT nm", + /* 143 */ "fullname ::= nm dbnm", + /* 144 */ "joinop ::= COMMA|JOIN", + /* 145 */ "joinop ::= JOIN_KW JOIN", + /* 146 */ "joinop ::= JOIN_KW nm JOIN", + /* 147 */ "joinop ::= JOIN_KW nm nm JOIN", + /* 148 */ "on_opt ::= ON expr", + /* 149 */ "on_opt ::=", + /* 150 */ "indexed_opt ::=", + /* 151 */ "indexed_opt ::= INDEXED BY nm", + /* 152 */ "indexed_opt ::= NOT INDEXED", + /* 153 */ "using_opt ::= USING LP idlist RP", + /* 154 */ "using_opt ::=", + /* 155 */ "orderby_opt ::=", + /* 156 */ "orderby_opt ::= ORDER BY sortlist", + /* 157 */ "sortlist ::= sortlist COMMA expr sortorder", + /* 158 */ "sortlist ::= expr sortorder", + /* 159 */ "sortorder ::= ASC", + /* 160 */ "sortorder ::= DESC", + /* 161 */ "sortorder ::=", + /* 162 */ "groupby_opt ::=", + /* 163 */ "groupby_opt ::= GROUP BY nexprlist", + /* 164 */ "having_opt ::=", + /* 165 */ "having_opt ::= HAVING expr", + /* 166 */ "limit_opt ::=", + /* 167 */ "limit_opt ::= LIMIT expr", + /* 168 */ "limit_opt ::= LIMIT expr OFFSET expr", + /* 169 */ "limit_opt ::= LIMIT expr COMMA expr", + /* 170 */ "cmd ::= with DELETE FROM fullname indexed_opt where_opt", + /* 171 */ "where_opt ::=", + /* 172 */ "where_opt ::= WHERE expr", + /* 173 */ "cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt", + /* 174 */ "setlist ::= setlist COMMA nm EQ expr", + /* 175 */ "setlist ::= nm EQ expr", + /* 176 */ "cmd ::= with insert_cmd INTO fullname idlist_opt select", + /* 177 */ "cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES", + /* 178 */ "insert_cmd ::= INSERT orconf", + /* 179 */ "insert_cmd ::= REPLACE", + /* 180 */ "idlist_opt ::=", + /* 181 */ "idlist_opt ::= LP idlist RP", + /* 182 */ "idlist ::= idlist COMMA nm", + /* 183 */ "idlist ::= nm", + /* 184 */ "expr ::= term", + /* 185 */ "expr ::= LP expr RP", + /* 186 */ "term ::= NULL", + /* 187 */ "expr ::= ID|INDEXED", + /* 188 */ "expr ::= JOIN_KW", + /* 189 */ "expr ::= nm DOT nm", + /* 190 */ "expr ::= nm DOT nm DOT nm", + /* 191 */ "term ::= INTEGER|FLOAT|BLOB", + /* 192 */ "term ::= STRING", + /* 193 */ "expr ::= VARIABLE", + /* 194 */ "expr ::= expr COLLATE ID|STRING", + /* 195 */ "expr ::= CAST LP expr AS typetoken RP", + /* 196 */ "expr ::= ID|INDEXED LP distinct exprlist RP", + /* 197 */ "expr ::= ID|INDEXED LP STAR RP", + /* 198 */ "term ::= CTIME_KW", + /* 199 */ "expr ::= expr AND expr", + /* 200 */ "expr ::= expr OR expr", + /* 201 */ "expr ::= expr LT|GT|GE|LE expr", + /* 202 */ "expr ::= expr EQ|NE expr", + /* 203 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 204 */ "expr ::= expr PLUS|MINUS expr", + /* 205 */ "expr ::= expr STAR|SLASH|REM expr", + /* 206 */ "expr ::= expr CONCAT expr", + /* 207 */ "likeop ::= LIKE_KW|MATCH", + /* 208 */ "likeop ::= NOT LIKE_KW|MATCH", + /* 209 */ "expr ::= expr likeop expr", + /* 210 */ "expr ::= expr likeop expr ESCAPE expr", + /* 211 */ "expr ::= expr ISNULL|NOTNULL", + /* 212 */ "expr ::= expr NOT NULL", + /* 213 */ "expr ::= expr IS expr", + /* 214 */ "expr ::= expr IS NOT expr", + /* 215 */ "expr ::= NOT expr", + /* 216 */ "expr ::= BITNOT expr", + /* 217 */ "expr ::= MINUS expr", + /* 218 */ "expr ::= PLUS expr", + /* 219 */ "between_op ::= BETWEEN", + /* 220 */ "between_op ::= NOT BETWEEN", + /* 221 */ "expr ::= expr between_op expr AND expr", + /* 222 */ "in_op ::= IN", + /* 223 */ "in_op ::= NOT IN", + /* 224 */ "expr ::= expr in_op LP exprlist RP", + /* 225 */ "expr ::= LP select RP", + /* 226 */ "expr ::= expr in_op LP select RP", + /* 227 */ "expr ::= expr in_op nm dbnm", + /* 228 */ "expr ::= EXISTS LP select RP", + /* 229 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 230 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 231 */ "case_exprlist ::= WHEN expr THEN expr", + /* 232 */ "case_else ::= ELSE expr", + /* 233 */ "case_else ::=", + /* 234 */ "case_operand ::= expr", + /* 235 */ "case_operand ::=", + /* 236 */ "exprlist ::= nexprlist", + /* 237 */ "exprlist ::=", + /* 238 */ "nexprlist ::= nexprlist COMMA expr", + /* 239 */ "nexprlist ::= expr", + /* 240 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 241 */ "uniqueflag ::= UNIQUE", + /* 242 */ "uniqueflag ::=", + /* 243 */ "eidlist_opt ::=", + /* 244 */ "eidlist_opt ::= LP eidlist RP", + /* 245 */ "eidlist ::= eidlist COMMA nm collate sortorder", + /* 246 */ "eidlist ::= nm collate sortorder", + /* 247 */ "collate ::=", + /* 248 */ "collate ::= COLLATE ID|STRING", + /* 249 */ "cmd ::= DROP INDEX ifexists fullname", + /* 250 */ "cmd ::= VACUUM", + /* 251 */ "cmd ::= VACUUM nm", + /* 252 */ "cmd ::= PRAGMA nm dbnm", + /* 253 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 254 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 255 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 256 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 257 */ "nmnum ::= plus_num", + /* 258 */ "nmnum ::= nm", + /* 259 */ "nmnum ::= ON", + /* 260 */ "nmnum ::= DELETE", + /* 261 */ "nmnum ::= DEFAULT", + /* 262 */ "plus_num ::= PLUS INTEGER|FLOAT", + /* 263 */ "plus_num ::= INTEGER|FLOAT", + /* 264 */ "minus_num ::= MINUS INTEGER|FLOAT", + /* 265 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", + /* 266 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 267 */ "trigger_time ::= BEFORE", + /* 268 */ "trigger_time ::= AFTER", + /* 269 */ "trigger_time ::= INSTEAD OF", + /* 270 */ "trigger_time ::=", + /* 271 */ "trigger_event ::= DELETE|INSERT", + /* 272 */ "trigger_event ::= UPDATE", + /* 273 */ "trigger_event ::= UPDATE OF idlist", + /* 274 */ "foreach_clause ::=", + /* 275 */ "foreach_clause ::= FOR EACH ROW", + /* 276 */ "when_clause ::=", + /* 277 */ "when_clause ::= WHEN expr", + /* 278 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 279 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 280 */ "trnm ::= nm", + /* 281 */ "trnm ::= nm DOT nm", + /* 282 */ "tridxby ::=", + /* 283 */ "tridxby ::= INDEXED BY nm", + /* 284 */ "tridxby ::= NOT INDEXED", + /* 285 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt", + /* 286 */ "trigger_cmd ::= insert_cmd INTO trnm idlist_opt select", + /* 287 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt", + /* 288 */ "trigger_cmd ::= select", + /* 289 */ "expr ::= RAISE LP IGNORE RP", + /* 290 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 291 */ "raisetype ::= ROLLBACK", + /* 292 */ "raisetype ::= ABORT", + /* 293 */ "raisetype ::= FAIL", + /* 294 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 295 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 296 */ "cmd ::= DETACH database_kw_opt expr", + /* 297 */ "key_opt ::=", + /* 298 */ "key_opt ::= KEY expr", + /* 299 */ "database_kw_opt ::= DATABASE", + /* 300 */ "database_kw_opt ::=", + /* 301 */ "cmd ::= REINDEX", + /* 302 */ "cmd ::= REINDEX nm dbnm", + /* 303 */ "cmd ::= ANALYZE", + /* 304 */ "cmd ::= ANALYZE nm dbnm", + /* 305 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 306 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column", + /* 307 */ "add_column_fullname ::= fullname", + /* 308 */ "kwcolumn_opt ::=", + /* 309 */ "kwcolumn_opt ::= COLUMNKW", + /* 310 */ "cmd ::= create_vtab", + /* 311 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 312 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 313 */ "vtabarglist ::= vtabarg", + /* 314 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 315 */ "vtabarg ::=", + /* 316 */ "vtabarg ::= vtabarg vtabargtoken", + /* 317 */ "vtabargtoken ::= ANY", + /* 318 */ "vtabargtoken ::= lp anylist RP", + /* 319 */ "lp ::= LP", + /* 320 */ "anylist ::=", + /* 321 */ "anylist ::= anylist LP anylist RP", + /* 322 */ "anylist ::= anylist ANY", + /* 323 */ "with ::=", + /* 324 */ "with ::= WITH wqlist", + /* 325 */ "with ::= WITH RECURSIVE wqlist", + /* 326 */ "wqlist ::= nm eidlist_opt AS LP select RP", + /* 327 */ "wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP", }; #endif /* NDEBUG */ @@ -126065,9 +127412,9 @@ static void yy_destructor( ** inside the C code. */ case 163: /* select */ - case 195: /* selectnowith */ - case 196: /* oneselect */ - case 207: /* values */ + case 196: /* selectnowith */ + case 197: /* oneselect */ + case 208: /* values */ { sqlite3SelectDelete(pParse->db, (yypminor->yy3)); } @@ -126078,38 +127425,38 @@ sqlite3SelectDelete(pParse->db, (yypminor->yy3)); sqlite3ExprDelete(pParse->db, (yypminor->yy346).pExpr); } break; - case 179: /* idxlist_opt */ - case 188: /* idxlist */ - case 200: /* selcollist */ - case 203: /* groupby_opt */ - case 205: /* orderby_opt */ - case 208: /* nexprlist */ - case 209: /* exprlist */ - case 210: /* sclp */ - case 220: /* sortlist */ + case 179: /* eidlist_opt */ + case 188: /* sortlist */ + case 189: /* eidlist */ + case 201: /* selcollist */ + case 204: /* groupby_opt */ + case 206: /* orderby_opt */ + case 209: /* nexprlist */ + case 210: /* exprlist */ + case 211: /* sclp */ case 221: /* setlist */ case 228: /* case_exprlist */ { sqlite3ExprListDelete(pParse->db, (yypminor->yy14)); } break; - case 194: /* fullname */ - case 201: /* from */ - case 212: /* seltablist */ - case 213: /* stl_prefix */ + case 195: /* fullname */ + case 202: /* from */ + case 213: /* seltablist */ + case 214: /* stl_prefix */ { sqlite3SrcListDelete(pParse->db, (yypminor->yy65)); } break; - case 197: /* with */ + case 198: /* with */ case 252: /* wqlist */ { sqlite3WithDelete(pParse->db, (yypminor->yy59)); } break; - case 202: /* where_opt */ - case 204: /* having_opt */ - case 216: /* on_opt */ + case 203: /* where_opt */ + case 205: /* having_opt */ + case 217: /* on_opt */ case 227: /* case_operand */ case 229: /* case_else */ case 238: /* when_clause */ @@ -126118,9 +127465,9 @@ sqlite3WithDelete(pParse->db, (yypminor->yy59)); sqlite3ExprDelete(pParse->db, (yypminor->yy132)); } break; - case 217: /* using_opt */ - case 219: /* idlist */ - case 223: /* inscollist_opt */ + case 218: /* using_opt */ + case 220: /* idlist */ + case 223: /* idlist_opt */ { sqlite3IdListDelete(pParse->db, (yypminor->yy408)); } @@ -126220,10 +127567,10 @@ static int yy_find_shift_action( int i; int stateno = pParser->yystack[pParser->yyidx].stateno; - if( stateno>YY_SHIFT_COUNT - || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } + if( stateno>=YY_MIN_REDUCE ) return stateno; + assert( stateno <= YY_SHIFT_COUNT ); + i = yy_shift_ofst[stateno]; + if( i==YY_SHIFT_USE_DFLT ) return yy_default[stateno]; assert( iLookAhead!=YYNOCODE ); i += iLookAhead; if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ @@ -126326,7 +127673,29 @@ static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ } /* -** Perform a shift action. +** Print tracing information for a SHIFT action +*/ +#ifndef NDEBUG +static void yyTraceShift(yyParser *yypParser, int yyNewState){ + if( yyTraceFILE ){ + int i; + if( yyNewStateyyidx; i++) + fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); + fprintf(yyTraceFILE,"\n"); + }else{ + fprintf(yyTraceFILE,"%sShift *\n",yyTracePrompt); + } + } +} +#else +# define yyTraceShift(X,Y) +#endif + +/* +** Perform a shift action. Return the number of errors. */ static void yy_shift( yyParser *yypParser, /* The parser to be shifted */ @@ -126359,16 +127728,7 @@ static void yy_shift( yytos->stateno = (YYACTIONTYPE)yyNewState; yytos->major = (YYCODETYPE)yyMajor; yytos->minor = *yypMinor; -#ifndef NDEBUG - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } -#endif + yyTraceShift(yypParser, yyNewState); } /* The following table contains information about every rule that @@ -126475,81 +127835,82 @@ static const struct { { 187, 5 }, { 187, 5 }, { 187, 10 }, - { 189, 0 }, - { 189, 1 }, + { 190, 0 }, + { 190, 1 }, { 176, 0 }, { 176, 3 }, - { 190, 0 }, - { 190, 2 }, - { 191, 1 }, - { 191, 1 }, - { 191, 1 }, + { 191, 0 }, + { 191, 2 }, + { 192, 1 }, + { 192, 1 }, + { 192, 1 }, { 149, 4 }, - { 193, 2 }, - { 193, 0 }, - { 149, 8 }, + { 194, 2 }, + { 194, 0 }, + { 149, 9 }, { 149, 4 }, { 149, 1 }, { 163, 2 }, - { 195, 1 }, - { 195, 3 }, - { 198, 1 }, - { 198, 2 }, - { 198, 1 }, - { 196, 9 }, { 196, 1 }, - { 207, 4 }, - { 207, 5 }, + { 196, 3 }, { 199, 1 }, + { 199, 2 }, { 199, 1 }, - { 199, 0 }, - { 210, 2 }, - { 210, 0 }, - { 200, 3 }, - { 200, 2 }, - { 200, 4 }, + { 197, 9 }, + { 197, 1 }, + { 208, 4 }, + { 208, 5 }, + { 200, 1 }, + { 200, 1 }, + { 200, 0 }, { 211, 2 }, - { 211, 1 }, { 211, 0 }, - { 201, 0 }, + { 201, 3 }, { 201, 2 }, - { 213, 2 }, - { 213, 0 }, - { 212, 7 }, - { 212, 7 }, - { 212, 7 }, + { 201, 4 }, + { 212, 2 }, + { 212, 1 }, + { 212, 0 }, + { 202, 0 }, + { 202, 2 }, + { 214, 2 }, + { 214, 0 }, + { 213, 7 }, + { 213, 9 }, + { 213, 7 }, + { 213, 7 }, { 159, 0 }, { 159, 2 }, - { 194, 2 }, - { 214, 1 }, - { 214, 2 }, - { 214, 3 }, - { 214, 4 }, - { 216, 2 }, - { 216, 0 }, - { 215, 0 }, - { 215, 3 }, + { 195, 2 }, + { 215, 1 }, { 215, 2 }, - { 217, 4 }, + { 215, 3 }, + { 215, 4 }, + { 217, 2 }, { 217, 0 }, - { 205, 0 }, - { 205, 3 }, - { 220, 4 }, - { 220, 2 }, + { 216, 0 }, + { 216, 3 }, + { 216, 2 }, + { 218, 4 }, + { 218, 0 }, + { 206, 0 }, + { 206, 3 }, + { 188, 4 }, + { 188, 2 }, { 177, 1 }, { 177, 1 }, { 177, 0 }, - { 203, 0 }, - { 203, 3 }, { 204, 0 }, - { 204, 2 }, - { 206, 0 }, - { 206, 2 }, - { 206, 4 }, - { 206, 4 }, + { 204, 3 }, + { 205, 0 }, + { 205, 2 }, + { 207, 0 }, + { 207, 2 }, + { 207, 4 }, + { 207, 4 }, { 149, 6 }, - { 202, 0 }, - { 202, 2 }, + { 203, 0 }, + { 203, 2 }, { 149, 8 }, { 221, 5 }, { 221, 3 }, @@ -126559,8 +127920,8 @@ static const struct { { 222, 1 }, { 223, 0 }, { 223, 3 }, - { 219, 3 }, - { 219, 1 }, + { 220, 3 }, + { 220, 1 }, { 175, 1 }, { 175, 3 }, { 174, 1 }, @@ -126613,17 +127974,17 @@ static const struct { { 229, 0 }, { 227, 1 }, { 227, 0 }, + { 210, 1 }, + { 210, 0 }, + { 209, 3 }, { 209, 1 }, - { 209, 0 }, - { 208, 3 }, - { 208, 1 }, { 149, 12 }, { 230, 1 }, { 230, 0 }, { 179, 0 }, { 179, 3 }, - { 188, 5 }, - { 188, 3 }, + { 189, 5 }, + { 189, 3 }, { 231, 0 }, { 231, 2 }, { 149, 4 }, @@ -126668,9 +128029,9 @@ static const struct { { 239, 1 }, { 175, 4 }, { 175, 6 }, - { 192, 1 }, - { 192, 1 }, - { 192, 1 }, + { 193, 1 }, + { 193, 1 }, + { 193, 1 }, { 149, 4 }, { 149, 6 }, { 149, 3 }, @@ -126700,9 +128061,9 @@ static const struct { { 251, 0 }, { 251, 4 }, { 251, 2 }, - { 197, 0 }, - { 197, 2 }, - { 197, 3 }, + { 198, 0 }, + { 198, 2 }, + { 198, 3 }, { 252, 6 }, { 252, 8 }, }; @@ -126727,8 +128088,9 @@ static void yy_reduce( #ifndef NDEBUG if( yyTraceFILE && yyruleno>=0 && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); + yysize = yyRuleInfo[yyruleno].nrhs; + fprintf(yyTraceFILE, "%sReduce [%s] -> state %d.\n", yyTracePrompt, + yyRuleName[yyruleno], yymsp[-yysize].stateno); } #endif /* NDEBUG */ @@ -126825,8 +128187,9 @@ static void yy_reduce( case 85: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(yyruleno==85); case 97: /* defer_subclause_opt ::= */ yytestcase(yyruleno==97); case 108: /* ifexists ::= */ yytestcase(yyruleno==108); - case 218: /* between_op ::= BETWEEN */ yytestcase(yyruleno==218); - case 221: /* in_op ::= IN */ yytestcase(yyruleno==221); + case 219: /* between_op ::= BETWEEN */ yytestcase(yyruleno==219); + case 222: /* in_op ::= IN */ yytestcase(yyruleno==222); + case 247: /* collate ::= */ yytestcase(yyruleno==247); {yygotominor.yy328 = 0;} break; case 29: /* ifnotexists ::= IF NOT EXISTS */ @@ -126834,8 +128197,9 @@ static void yy_reduce( case 69: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==69); case 84: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yyruleno==84); case 107: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==107); - case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219); - case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222); + case 220: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==220); + case 223: /* in_op ::= NOT IN */ yytestcase(yyruleno==223); + case 248: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==248); {yygotominor.yy328 = 1;} break; case 32: /* create_table_args ::= LP columnlist conslist_opt RP table_options */ @@ -126882,18 +128246,17 @@ static void yy_reduce( case 48: /* typename ::= ID|STRING */ yytestcase(yyruleno==48); case 130: /* as ::= AS nm */ yytestcase(yyruleno==130); case 131: /* as ::= ID|STRING */ yytestcase(yyruleno==131); - case 141: /* dbnm ::= DOT nm */ yytestcase(yyruleno==141); - case 150: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==150); - case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247); - case 256: /* nmnum ::= plus_num */ yytestcase(yyruleno==256); - case 257: /* nmnum ::= nm */ yytestcase(yyruleno==257); - case 258: /* nmnum ::= ON */ yytestcase(yyruleno==258); - case 259: /* nmnum ::= DELETE */ yytestcase(yyruleno==259); - case 260: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==260); - case 261: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==261); - case 262: /* plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==262); - case 263: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==263); - case 279: /* trnm ::= nm */ yytestcase(yyruleno==279); + case 142: /* dbnm ::= DOT nm */ yytestcase(yyruleno==142); + case 151: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==151); + case 257: /* nmnum ::= plus_num */ yytestcase(yyruleno==257); + case 258: /* nmnum ::= nm */ yytestcase(yyruleno==258); + case 259: /* nmnum ::= ON */ yytestcase(yyruleno==259); + case 260: /* nmnum ::= DELETE */ yytestcase(yyruleno==260); + case 261: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==261); + case 262: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==262); + case 263: /* plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==263); + case 264: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==264); + case 280: /* trnm ::= nm */ yytestcase(yyruleno==280); {yygotominor.yy0 = yymsp[0].minor.yy0;} break; case 44: /* type ::= typetoken */ @@ -126953,7 +128316,7 @@ static void yy_reduce( case 64: /* ccons ::= CHECK LP expr RP */ {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy346.pExpr);} break; - case 65: /* ccons ::= REFERENCES nm idxlist_opt refargs */ + case 65: /* ccons ::= REFERENCES nm eidlist_opt refargs */ {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yymsp[0].minor.yy328);} break; case 66: /* ccons ::= defer_subclause */ @@ -127008,16 +128371,16 @@ static void yy_reduce( case 90: /* tconscomma ::= COMMA */ {pParse->constraintName.n = 0;} break; - case 93: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ + case 93: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy328,yymsp[-2].minor.yy328,0);} break; - case 94: /* tcons ::= UNIQUE LP idxlist RP onconf */ + case 94: /* tcons ::= UNIQUE LP sortlist RP onconf */ {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy328,0,0,0,0);} break; case 95: /* tcons ::= CHECK LP expr RP onconf */ {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy346.pExpr);} break; - case 96: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ + case 96: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ { sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy328); sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy328); @@ -127043,9 +128406,9 @@ static void yy_reduce( sqlite3DropTable(pParse, yymsp[0].minor.yy65, 0, yymsp[-1].minor.yy328); } break; - case 109: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */ + case 109: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ { - sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, yymsp[0].minor.yy3, yymsp[-6].minor.yy328, yymsp[-4].minor.yy328); + sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[0].minor.yy3, yymsp[-7].minor.yy328, yymsp[-5].minor.yy328); } break; case 110: /* cmd ::= DROP VIEW ifexists fullname */ @@ -127162,14 +128525,14 @@ static void yy_reduce( {yygotominor.yy381 = 0;} break; case 125: /* sclp ::= selcollist COMMA */ - case 243: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==243); + case 244: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==244); {yygotominor.yy14 = yymsp[-1].minor.yy14;} break; case 126: /* sclp ::= */ - case 154: /* orderby_opt ::= */ yytestcase(yyruleno==154); - case 161: /* groupby_opt ::= */ yytestcase(yyruleno==161); - case 236: /* exprlist ::= */ yytestcase(yyruleno==236); - case 242: /* idxlist_opt ::= */ yytestcase(yyruleno==242); + case 155: /* orderby_opt ::= */ yytestcase(yyruleno==155); + case 162: /* groupby_opt ::= */ yytestcase(yyruleno==162); + case 237: /* exprlist ::= */ yytestcase(yyruleno==237); + case 243: /* eidlist_opt ::= */ yytestcase(yyruleno==243); {yygotominor.yy14 = 0;} break; case 127: /* selcollist ::= sclp expr as */ @@ -127208,7 +128571,7 @@ static void yy_reduce( case 135: /* stl_prefix ::= seltablist joinop */ { yygotominor.yy65 = yymsp[-1].minor.yy65; - if( ALWAYS(yygotominor.yy65 && yygotominor.yy65->nSrc>0) ) yygotominor.yy65->a[yygotominor.yy65->nSrc-1].jointype = (u8)yymsp[0].minor.yy328; + if( ALWAYS(yygotominor.yy65 && yygotominor.yy65->nSrc>0) ) yygotominor.yy65->a[yygotominor.yy65->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy328; } break; case 136: /* stl_prefix ::= */ @@ -127220,12 +128583,18 @@ static void yy_reduce( sqlite3SrcListIndexedBy(pParse, yygotominor.yy65, &yymsp[-2].minor.yy0); } break; - case 138: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ + case 138: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_opt using_opt */ +{ + yygotominor.yy65 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-8].minor.yy65,&yymsp[-7].minor.yy0,&yymsp[-6].minor.yy0,&yymsp[-2].minor.yy0,0,yymsp[-1].minor.yy132,yymsp[0].minor.yy408); + sqlite3SrcListFuncArgs(pParse, yygotominor.yy65, yymsp[-4].minor.yy14); +} + break; + case 139: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ { yygotominor.yy65 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy65,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy3,yymsp[-1].minor.yy132,yymsp[0].minor.yy408); } break; - case 139: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ + case 140: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt */ { if( yymsp[-6].minor.yy65==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.yy132==0 && yymsp[0].minor.yy408==0 ){ yygotominor.yy65 = yymsp[-4].minor.yy65; @@ -127249,94 +128618,96 @@ static void yy_reduce( } } break; - case 140: /* dbnm ::= */ - case 149: /* indexed_opt ::= */ yytestcase(yyruleno==149); + case 141: /* dbnm ::= */ + case 150: /* indexed_opt ::= */ yytestcase(yyruleno==150); {yygotominor.yy0.z=0; yygotominor.yy0.n=0;} break; - case 142: /* fullname ::= nm dbnm */ + case 143: /* fullname ::= nm dbnm */ {yygotominor.yy65 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0);} break; - case 143: /* joinop ::= COMMA|JOIN */ + case 144: /* joinop ::= COMMA|JOIN */ { yygotominor.yy328 = JT_INNER; } break; - case 144: /* joinop ::= JOIN_KW JOIN */ + case 145: /* joinop ::= JOIN_KW JOIN */ { yygotominor.yy328 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } break; - case 145: /* joinop ::= JOIN_KW nm JOIN */ + case 146: /* joinop ::= JOIN_KW nm JOIN */ { yygotominor.yy328 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); } break; - case 146: /* joinop ::= JOIN_KW nm nm JOIN */ + case 147: /* joinop ::= JOIN_KW nm nm JOIN */ { yygotominor.yy328 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); } break; - case 147: /* on_opt ::= ON expr */ - case 164: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==164); - case 171: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==171); - case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231); - case 233: /* case_operand ::= expr */ yytestcase(yyruleno==233); + case 148: /* on_opt ::= ON expr */ + case 165: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==165); + case 172: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==172); + case 232: /* case_else ::= ELSE expr */ yytestcase(yyruleno==232); + case 234: /* case_operand ::= expr */ yytestcase(yyruleno==234); {yygotominor.yy132 = yymsp[0].minor.yy346.pExpr;} break; - case 148: /* on_opt ::= */ - case 163: /* having_opt ::= */ yytestcase(yyruleno==163); - case 170: /* where_opt ::= */ yytestcase(yyruleno==170); - case 232: /* case_else ::= */ yytestcase(yyruleno==232); - case 234: /* case_operand ::= */ yytestcase(yyruleno==234); + case 149: /* on_opt ::= */ + case 164: /* having_opt ::= */ yytestcase(yyruleno==164); + case 171: /* where_opt ::= */ yytestcase(yyruleno==171); + case 233: /* case_else ::= */ yytestcase(yyruleno==233); + case 235: /* case_operand ::= */ yytestcase(yyruleno==235); {yygotominor.yy132 = 0;} break; - case 151: /* indexed_opt ::= NOT INDEXED */ + case 152: /* indexed_opt ::= NOT INDEXED */ {yygotominor.yy0.z=0; yygotominor.yy0.n=1;} break; - case 152: /* using_opt ::= USING LP idlist RP */ - case 180: /* inscollist_opt ::= LP idlist RP */ yytestcase(yyruleno==180); + case 153: /* using_opt ::= USING LP idlist RP */ + case 181: /* idlist_opt ::= LP idlist RP */ yytestcase(yyruleno==181); {yygotominor.yy408 = yymsp[-1].minor.yy408;} break; - case 153: /* using_opt ::= */ - case 179: /* inscollist_opt ::= */ yytestcase(yyruleno==179); + case 154: /* using_opt ::= */ + case 180: /* idlist_opt ::= */ yytestcase(yyruleno==180); {yygotominor.yy408 = 0;} break; - case 155: /* orderby_opt ::= ORDER BY sortlist */ - case 162: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==162); - case 235: /* exprlist ::= nexprlist */ yytestcase(yyruleno==235); + case 156: /* orderby_opt ::= ORDER BY sortlist */ + case 163: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==163); + case 236: /* exprlist ::= nexprlist */ yytestcase(yyruleno==236); {yygotominor.yy14 = yymsp[0].minor.yy14;} break; - case 156: /* sortlist ::= sortlist COMMA expr sortorder */ + case 157: /* sortlist ::= sortlist COMMA expr sortorder */ { yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14,yymsp[-1].minor.yy346.pExpr); - if( yygotominor.yy14 ) yygotominor.yy14->a[yygotominor.yy14->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy328; + sqlite3ExprListSetSortOrder(yygotominor.yy14,yymsp[0].minor.yy328); } break; - case 157: /* sortlist ::= expr sortorder */ + case 158: /* sortlist ::= expr sortorder */ { yygotominor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy346.pExpr); - if( yygotominor.yy14 && ALWAYS(yygotominor.yy14->a) ) yygotominor.yy14->a[0].sortOrder = (u8)yymsp[0].minor.yy328; + sqlite3ExprListSetSortOrder(yygotominor.yy14,yymsp[0].minor.yy328); } break; - case 158: /* sortorder ::= ASC */ - case 160: /* sortorder ::= */ yytestcase(yyruleno==160); + case 159: /* sortorder ::= ASC */ {yygotominor.yy328 = SQLITE_SO_ASC;} break; - case 159: /* sortorder ::= DESC */ + case 160: /* sortorder ::= DESC */ {yygotominor.yy328 = SQLITE_SO_DESC;} break; - case 165: /* limit_opt ::= */ + case 161: /* sortorder ::= */ +{yygotominor.yy328 = SQLITE_SO_UNDEFINED;} + break; + case 166: /* limit_opt ::= */ {yygotominor.yy476.pLimit = 0; yygotominor.yy476.pOffset = 0;} break; - case 166: /* limit_opt ::= LIMIT expr */ + case 167: /* limit_opt ::= LIMIT expr */ {yygotominor.yy476.pLimit = yymsp[0].minor.yy346.pExpr; yygotominor.yy476.pOffset = 0;} break; - case 167: /* limit_opt ::= LIMIT expr OFFSET expr */ + case 168: /* limit_opt ::= LIMIT expr OFFSET expr */ {yygotominor.yy476.pLimit = yymsp[-2].minor.yy346.pExpr; yygotominor.yy476.pOffset = yymsp[0].minor.yy346.pExpr;} break; - case 168: /* limit_opt ::= LIMIT expr COMMA expr */ + case 169: /* limit_opt ::= LIMIT expr COMMA expr */ {yygotominor.yy476.pOffset = yymsp[-2].minor.yy346.pExpr; yygotominor.yy476.pLimit = yymsp[0].minor.yy346.pExpr;} break; - case 169: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */ + case 170: /* cmd ::= with DELETE FROM fullname indexed_opt where_opt */ { sqlite3WithPush(pParse, yymsp[-5].minor.yy59, 1); sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy65, &yymsp[-1].minor.yy0); sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy65,yymsp[0].minor.yy132); } break; - case 172: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */ + case 173: /* cmd ::= with UPDATE orconf fullname indexed_opt SET setlist where_opt */ { sqlite3WithPush(pParse, yymsp[-7].minor.yy59, 1); sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy65, &yymsp[-3].minor.yy0); @@ -127344,58 +128715,58 @@ static void yy_reduce( sqlite3Update(pParse,yymsp[-4].minor.yy65,yymsp[-1].minor.yy14,yymsp[0].minor.yy132,yymsp[-5].minor.yy186); } break; - case 173: /* setlist ::= setlist COMMA nm EQ expr */ + case 174: /* setlist ::= setlist COMMA nm EQ expr */ { yygotominor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0].minor.yy346.pExpr); sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1); } break; - case 174: /* setlist ::= nm EQ expr */ + case 175: /* setlist ::= nm EQ expr */ { yygotominor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy346.pExpr); sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1); } break; - case 175: /* cmd ::= with insert_cmd INTO fullname inscollist_opt select */ + case 176: /* cmd ::= with insert_cmd INTO fullname idlist_opt select */ { sqlite3WithPush(pParse, yymsp[-5].minor.yy59, 1); sqlite3Insert(pParse, yymsp[-2].minor.yy65, yymsp[0].minor.yy3, yymsp[-1].minor.yy408, yymsp[-4].minor.yy186); } break; - case 176: /* cmd ::= with insert_cmd INTO fullname inscollist_opt DEFAULT VALUES */ + case 177: /* cmd ::= with insert_cmd INTO fullname idlist_opt DEFAULT VALUES */ { sqlite3WithPush(pParse, yymsp[-6].minor.yy59, 1); sqlite3Insert(pParse, yymsp[-3].minor.yy65, 0, yymsp[-2].minor.yy408, yymsp[-5].minor.yy186); } break; - case 177: /* insert_cmd ::= INSERT orconf */ + case 178: /* insert_cmd ::= INSERT orconf */ {yygotominor.yy186 = yymsp[0].minor.yy186;} break; - case 178: /* insert_cmd ::= REPLACE */ + case 179: /* insert_cmd ::= REPLACE */ {yygotominor.yy186 = OE_Replace;} break; - case 181: /* idlist ::= idlist COMMA nm */ + case 182: /* idlist ::= idlist COMMA nm */ {yygotominor.yy408 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy408,&yymsp[0].minor.yy0);} break; - case 182: /* idlist ::= nm */ + case 183: /* idlist ::= nm */ {yygotominor.yy408 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);} break; - case 183: /* expr ::= term */ + case 184: /* expr ::= term */ {yygotominor.yy346 = yymsp[0].minor.yy346;} break; - case 184: /* expr ::= LP expr RP */ + case 185: /* expr ::= LP expr RP */ {yygotominor.yy346.pExpr = yymsp[-1].minor.yy346.pExpr; spanSet(&yygotominor.yy346,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);} break; - case 185: /* term ::= NULL */ - case 190: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==190); - case 191: /* term ::= STRING */ yytestcase(yyruleno==191); + case 186: /* term ::= NULL */ + case 191: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==191); + case 192: /* term ::= STRING */ yytestcase(yyruleno==192); {spanExpr(&yygotominor.yy346, pParse, yymsp[0].major, &yymsp[0].minor.yy0);} break; - case 186: /* expr ::= ID|INDEXED */ - case 187: /* expr ::= JOIN_KW */ yytestcase(yyruleno==187); + case 187: /* expr ::= ID|INDEXED */ + case 188: /* expr ::= JOIN_KW */ yytestcase(yyruleno==188); {spanExpr(&yygotominor.yy346, pParse, TK_ID, &yymsp[0].minor.yy0);} break; - case 188: /* expr ::= nm DOT nm */ + case 189: /* expr ::= nm DOT nm */ { Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); @@ -127403,7 +128774,7 @@ static void yy_reduce( spanSet(&yygotominor.yy346,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } break; - case 189: /* expr ::= nm DOT nm DOT nm */ + case 190: /* expr ::= nm DOT nm DOT nm */ { Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0); Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); @@ -127413,7 +128784,7 @@ static void yy_reduce( spanSet(&yygotominor.yy346,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); } break; - case 192: /* expr ::= VARIABLE */ + case 193: /* expr ::= VARIABLE */ { if( yymsp[0].minor.yy0.n>=2 && yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1]) ){ /* When doing a nested parse, one can include terms in an expression @@ -127433,20 +128804,20 @@ static void yy_reduce( spanSet(&yygotominor.yy346, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); } break; - case 193: /* expr ::= expr COLLATE ID|STRING */ + case 194: /* expr ::= expr COLLATE ID|STRING */ { yygotominor.yy346.pExpr = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy346.pExpr, &yymsp[0].minor.yy0, 1); yygotominor.yy346.zStart = yymsp[-2].minor.yy346.zStart; yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 194: /* expr ::= CAST LP expr AS typetoken RP */ + case 195: /* expr ::= CAST LP expr AS typetoken RP */ { yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy346.pExpr, 0, &yymsp[-1].minor.yy0); spanSet(&yygotominor.yy346,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); } break; - case 195: /* expr ::= ID|INDEXED LP distinct exprlist RP */ + case 196: /* expr ::= ID|INDEXED LP distinct exprlist RP */ { if( yymsp[-1].minor.yy14 && yymsp[-1].minor.yy14->nExpr>pParse->db->aLimit[SQLITE_LIMIT_FUNCTION_ARG] ){ sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].minor.yy0); @@ -127458,35 +128829,35 @@ static void yy_reduce( } } break; - case 196: /* expr ::= ID|INDEXED LP STAR RP */ + case 197: /* expr ::= ID|INDEXED LP STAR RP */ { yygotominor.yy346.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0); spanSet(&yygotominor.yy346,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); } break; - case 197: /* term ::= CTIME_KW */ + case 198: /* term ::= CTIME_KW */ { yygotominor.yy346.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0); spanSet(&yygotominor.yy346, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); } break; - case 198: /* expr ::= expr AND expr */ - case 199: /* expr ::= expr OR expr */ yytestcase(yyruleno==199); - case 200: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==200); - case 201: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==201); - case 202: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==202); - case 203: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==203); - case 204: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==204); - case 205: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==205); + case 199: /* expr ::= expr AND expr */ + case 200: /* expr ::= expr OR expr */ yytestcase(yyruleno==200); + case 201: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==201); + case 202: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==202); + case 203: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==203); + case 204: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==204); + case 205: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==205); + case 206: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==206); {spanBinaryExpr(&yygotominor.yy346,pParse,yymsp[-1].major,&yymsp[-2].minor.yy346,&yymsp[0].minor.yy346);} break; - case 206: /* likeop ::= LIKE_KW|MATCH */ + case 207: /* likeop ::= LIKE_KW|MATCH */ {yygotominor.yy96.eOperator = yymsp[0].minor.yy0; yygotominor.yy96.bNot = 0;} break; - case 207: /* likeop ::= NOT LIKE_KW|MATCH */ + case 208: /* likeop ::= NOT LIKE_KW|MATCH */ {yygotominor.yy96.eOperator = yymsp[0].minor.yy0; yygotominor.yy96.bNot = 1;} break; - case 208: /* expr ::= expr likeop expr */ + case 209: /* expr ::= expr likeop expr */ { ExprList *pList; pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy346.pExpr); @@ -127498,7 +128869,7 @@ static void yy_reduce( if( yygotominor.yy346.pExpr ) yygotominor.yy346.pExpr->flags |= EP_InfixFunc; } break; - case 209: /* expr ::= expr likeop expr ESCAPE expr */ + case 210: /* expr ::= expr likeop expr ESCAPE expr */ { ExprList *pList; pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy346.pExpr); @@ -127511,35 +128882,35 @@ static void yy_reduce( if( yygotominor.yy346.pExpr ) yygotominor.yy346.pExpr->flags |= EP_InfixFunc; } break; - case 210: /* expr ::= expr ISNULL|NOTNULL */ + case 211: /* expr ::= expr ISNULL|NOTNULL */ {spanUnaryPostfix(&yygotominor.yy346,pParse,yymsp[0].major,&yymsp[-1].minor.yy346,&yymsp[0].minor.yy0);} break; - case 211: /* expr ::= expr NOT NULL */ + case 212: /* expr ::= expr NOT NULL */ {spanUnaryPostfix(&yygotominor.yy346,pParse,TK_NOTNULL,&yymsp[-2].minor.yy346,&yymsp[0].minor.yy0);} break; - case 212: /* expr ::= expr IS expr */ + case 213: /* expr ::= expr IS expr */ { spanBinaryExpr(&yygotominor.yy346,pParse,TK_IS,&yymsp[-2].minor.yy346,&yymsp[0].minor.yy346); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy346.pExpr, yygotominor.yy346.pExpr, TK_ISNULL); } break; - case 213: /* expr ::= expr IS NOT expr */ + case 214: /* expr ::= expr IS NOT expr */ { spanBinaryExpr(&yygotominor.yy346,pParse,TK_ISNOT,&yymsp[-3].minor.yy346,&yymsp[0].minor.yy346); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy346.pExpr, yygotominor.yy346.pExpr, TK_NOTNULL); } break; - case 214: /* expr ::= NOT expr */ - case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215); + case 215: /* expr ::= NOT expr */ + case 216: /* expr ::= BITNOT expr */ yytestcase(yyruleno==216); {spanUnaryPrefix(&yygotominor.yy346,pParse,yymsp[-1].major,&yymsp[0].minor.yy346,&yymsp[-1].minor.yy0);} break; - case 216: /* expr ::= MINUS expr */ + case 217: /* expr ::= MINUS expr */ {spanUnaryPrefix(&yygotominor.yy346,pParse,TK_UMINUS,&yymsp[0].minor.yy346,&yymsp[-1].minor.yy0);} break; - case 217: /* expr ::= PLUS expr */ + case 218: /* expr ::= PLUS expr */ {spanUnaryPrefix(&yygotominor.yy346,pParse,TK_UPLUS,&yymsp[0].minor.yy346,&yymsp[-1].minor.yy0);} break; - case 220: /* expr ::= expr between_op expr AND expr */ + case 221: /* expr ::= expr between_op expr AND expr */ { ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy346.pExpr); pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy346.pExpr); @@ -127554,7 +128925,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = yymsp[0].minor.yy346.zEnd; } break; - case 223: /* expr ::= expr in_op LP exprlist RP */ + case 224: /* expr ::= expr in_op LP exprlist RP */ { if( yymsp[-1].minor.yy14==0 ){ /* Expressions of the form @@ -127608,7 +128979,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 224: /* expr ::= LP select RP */ + case 225: /* expr ::= LP select RP */ { yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0); if( yygotominor.yy346.pExpr ){ @@ -127622,7 +128993,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 225: /* expr ::= expr in_op LP select RP */ + case 226: /* expr ::= expr in_op LP select RP */ { yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy346.pExpr, 0, 0); if( yygotominor.yy346.pExpr ){ @@ -127637,7 +129008,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 226: /* expr ::= expr in_op nm dbnm */ + case 227: /* expr ::= expr in_op nm dbnm */ { SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0); yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy346.pExpr, 0, 0); @@ -127653,7 +129024,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]; } break; - case 227: /* expr ::= EXISTS LP select RP */ + case 228: /* expr ::= EXISTS LP select RP */ { Expr *p = yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0); if( p ){ @@ -127667,7 +129038,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 228: /* expr ::= CASE case_operand case_exprlist case_else END */ + case 229: /* expr ::= CASE case_operand case_exprlist case_else END */ { yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy132, 0, 0); if( yygotominor.yy346.pExpr ){ @@ -127681,82 +129052,71 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 230: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2].minor.yy346.pExpr); yygotominor.yy14 = sqlite3ExprListAppend(pParse,yygotominor.yy14, yymsp[0].minor.yy346.pExpr); } break; - case 230: /* case_exprlist ::= WHEN expr THEN expr */ + case 231: /* case_exprlist ::= WHEN expr THEN expr */ { yygotominor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy346.pExpr); yygotominor.yy14 = sqlite3ExprListAppend(pParse,yygotominor.yy14, yymsp[0].minor.yy346.pExpr); } break; - case 237: /* nexprlist ::= nexprlist COMMA expr */ + case 238: /* nexprlist ::= nexprlist COMMA expr */ {yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].minor.yy346.pExpr);} break; - case 238: /* nexprlist ::= expr */ + case 239: /* nexprlist ::= expr */ {yygotominor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy346.pExpr);} break; - case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP idxlist RP where_opt */ + case 240: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, sqlite3SrcListAppend(pParse->db,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy14, yymsp[-10].minor.yy328, &yymsp[-11].minor.yy0, yymsp[0].minor.yy132, SQLITE_SO_ASC, yymsp[-8].minor.yy328); } break; - case 240: /* uniqueflag ::= UNIQUE */ - case 291: /* raisetype ::= ABORT */ yytestcase(yyruleno==291); + case 241: /* uniqueflag ::= UNIQUE */ + case 292: /* raisetype ::= ABORT */ yytestcase(yyruleno==292); {yygotominor.yy328 = OE_Abort;} break; - case 241: /* uniqueflag ::= */ + case 242: /* uniqueflag ::= */ {yygotominor.yy328 = OE_None;} break; - case 244: /* idxlist ::= idxlist COMMA nm collate sortorder */ + case 245: /* eidlist ::= eidlist COMMA nm collate sortorder */ { - Expr *p = sqlite3ExprAddCollateToken(pParse, 0, &yymsp[-1].minor.yy0, 1); - yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, p); - sqlite3ExprListSetName(pParse,yygotominor.yy14,&yymsp[-2].minor.yy0,1); - sqlite3ExprListCheckLength(pParse, yygotominor.yy14, "index"); - if( yygotominor.yy14 ) yygotominor.yy14->a[yygotominor.yy14->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy328; + yygotominor.yy14 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy328, yymsp[0].minor.yy328); } break; - case 245: /* idxlist ::= nm collate sortorder */ + case 246: /* eidlist ::= nm collate sortorder */ { - Expr *p = sqlite3ExprAddCollateToken(pParse, 0, &yymsp[-1].minor.yy0, 1); - yygotominor.yy14 = sqlite3ExprListAppend(pParse,0, p); - sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1); - sqlite3ExprListCheckLength(pParse, yygotominor.yy14, "index"); - if( yygotominor.yy14 ) yygotominor.yy14->a[yygotominor.yy14->nExpr-1].sortOrder = (u8)yymsp[0].minor.yy328; + yygotominor.yy14 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy328, yymsp[0].minor.yy328); } break; - case 246: /* collate ::= */ -{yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;} - break; - case 248: /* cmd ::= DROP INDEX ifexists fullname */ + case 249: /* cmd ::= DROP INDEX ifexists fullname */ {sqlite3DropIndex(pParse, yymsp[0].minor.yy65, yymsp[-1].minor.yy328);} break; - case 249: /* cmd ::= VACUUM */ - case 250: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==250); + case 250: /* cmd ::= VACUUM */ + case 251: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==251); {sqlite3Vacuum(pParse);} break; - case 251: /* cmd ::= PRAGMA nm dbnm */ + case 252: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} break; - case 252: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 253: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} break; - case 253: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 254: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} break; - case 254: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ + case 255: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} break; - case 255: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ + case 256: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; - case 264: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + case 265: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; @@ -127764,38 +129124,38 @@ static void yy_reduce( sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy473, &all); } break; - case 265: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + case 266: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy328, yymsp[-4].minor.yy378.a, yymsp[-4].minor.yy378.b, yymsp[-2].minor.yy65, yymsp[0].minor.yy132, yymsp[-10].minor.yy328, yymsp[-8].minor.yy328); yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); } break; - case 266: /* trigger_time ::= BEFORE */ - case 269: /* trigger_time ::= */ yytestcase(yyruleno==269); + case 267: /* trigger_time ::= BEFORE */ + case 270: /* trigger_time ::= */ yytestcase(yyruleno==270); { yygotominor.yy328 = TK_BEFORE; } break; - case 267: /* trigger_time ::= AFTER */ + case 268: /* trigger_time ::= AFTER */ { yygotominor.yy328 = TK_AFTER; } break; - case 268: /* trigger_time ::= INSTEAD OF */ + case 269: /* trigger_time ::= INSTEAD OF */ { yygotominor.yy328 = TK_INSTEAD;} break; - case 270: /* trigger_event ::= DELETE|INSERT */ - case 271: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==271); + case 271: /* trigger_event ::= DELETE|INSERT */ + case 272: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==272); {yygotominor.yy378.a = yymsp[0].major; yygotominor.yy378.b = 0;} break; - case 272: /* trigger_event ::= UPDATE OF idlist */ + case 273: /* trigger_event ::= UPDATE OF idlist */ {yygotominor.yy378.a = TK_UPDATE; yygotominor.yy378.b = yymsp[0].minor.yy408;} break; - case 275: /* when_clause ::= */ - case 296: /* key_opt ::= */ yytestcase(yyruleno==296); + case 276: /* when_clause ::= */ + case 297: /* key_opt ::= */ yytestcase(yyruleno==297); { yygotominor.yy132 = 0; } break; - case 276: /* when_clause ::= WHEN expr */ - case 297: /* key_opt ::= KEY expr */ yytestcase(yyruleno==297); + case 277: /* when_clause ::= WHEN expr */ + case 298: /* key_opt ::= KEY expr */ yytestcase(yyruleno==298); { yygotominor.yy132 = yymsp[0].minor.yy346.pExpr; } break; - case 277: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 278: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { assert( yymsp[-2].minor.yy473!=0 ); yymsp[-2].minor.yy473->pLast->pNext = yymsp[-1].minor.yy473; @@ -127803,14 +129163,14 @@ static void yy_reduce( yygotominor.yy473 = yymsp[-2].minor.yy473; } break; - case 278: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 279: /* trigger_cmd_list ::= trigger_cmd SEMI */ { assert( yymsp[-1].minor.yy473!=0 ); yymsp[-1].minor.yy473->pLast = yymsp[-1].minor.yy473; yygotominor.yy473 = yymsp[-1].minor.yy473; } break; - case 280: /* trnm ::= nm DOT nm */ + case 281: /* trnm ::= nm DOT nm */ { yygotominor.yy0 = yymsp[0].minor.yy0; sqlite3ErrorMsg(pParse, @@ -127818,33 +129178,33 @@ static void yy_reduce( "statements within triggers"); } break; - case 282: /* tridxby ::= INDEXED BY nm */ + case 283: /* tridxby ::= INDEXED BY nm */ { sqlite3ErrorMsg(pParse, "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 283: /* tridxby ::= NOT INDEXED */ + case 284: /* tridxby ::= NOT INDEXED */ { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 284: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */ + case 285: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_opt */ { yygotominor.yy473 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy14, yymsp[0].minor.yy132, yymsp[-5].minor.yy186); } break; - case 285: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */ + case 286: /* trigger_cmd ::= insert_cmd INTO trnm idlist_opt select */ {yygotominor.yy473 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy408, yymsp[0].minor.yy3, yymsp[-4].minor.yy186);} break; - case 286: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */ + case 287: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */ {yygotominor.yy473 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy132);} break; - case 287: /* trigger_cmd ::= select */ + case 288: /* trigger_cmd ::= select */ {yygotominor.yy473 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy3); } break; - case 288: /* expr ::= RAISE LP IGNORE RP */ + case 289: /* expr ::= RAISE LP IGNORE RP */ { yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); if( yygotominor.yy346.pExpr ){ @@ -127854,7 +129214,7 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 289: /* expr ::= RAISE LP raisetype COMMA nm RP */ + case 290: /* expr ::= RAISE LP raisetype COMMA nm RP */ { yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].minor.yy0); if( yygotominor.yy346.pExpr ) { @@ -127864,87 +129224,87 @@ static void yy_reduce( yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; } break; - case 290: /* raisetype ::= ROLLBACK */ + case 291: /* raisetype ::= ROLLBACK */ {yygotominor.yy328 = OE_Rollback;} break; - case 292: /* raisetype ::= FAIL */ + case 293: /* raisetype ::= FAIL */ {yygotominor.yy328 = OE_Fail;} break; - case 293: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 294: /* cmd ::= DROP TRIGGER ifexists fullname */ { sqlite3DropTrigger(pParse,yymsp[0].minor.yy65,yymsp[-1].minor.yy328); } break; - case 294: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 295: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { sqlite3Attach(pParse, yymsp[-3].minor.yy346.pExpr, yymsp[-1].minor.yy346.pExpr, yymsp[0].minor.yy132); } break; - case 295: /* cmd ::= DETACH database_kw_opt expr */ + case 296: /* cmd ::= DETACH database_kw_opt expr */ { sqlite3Detach(pParse, yymsp[0].minor.yy346.pExpr); } break; - case 300: /* cmd ::= REINDEX */ + case 301: /* cmd ::= REINDEX */ {sqlite3Reindex(pParse, 0, 0);} break; - case 301: /* cmd ::= REINDEX nm dbnm */ + case 302: /* cmd ::= REINDEX nm dbnm */ {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 302: /* cmd ::= ANALYZE */ + case 303: /* cmd ::= ANALYZE */ {sqlite3Analyze(pParse, 0, 0);} break; - case 303: /* cmd ::= ANALYZE nm dbnm */ + case 304: /* cmd ::= ANALYZE nm dbnm */ {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 304: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 305: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy65,&yymsp[0].minor.yy0); } break; - case 305: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */ + case 306: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt column */ { sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0); } break; - case 306: /* add_column_fullname ::= fullname */ + case 307: /* add_column_fullname ::= fullname */ { pParse->db->lookaside.bEnabled = 0; sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy65); } break; - case 309: /* cmd ::= create_vtab */ + case 310: /* cmd ::= create_vtab */ {sqlite3VtabFinishParse(pParse,0);} break; - case 310: /* cmd ::= create_vtab LP vtabarglist RP */ + case 311: /* cmd ::= create_vtab LP vtabarglist RP */ {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} break; - case 311: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 312: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy328); } break; - case 314: /* vtabarg ::= */ + case 315: /* vtabarg ::= */ {sqlite3VtabArgInit(pParse);} break; - case 316: /* vtabargtoken ::= ANY */ - case 317: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==317); - case 318: /* lp ::= LP */ yytestcase(yyruleno==318); + case 317: /* vtabargtoken ::= ANY */ + case 318: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==318); + case 319: /* lp ::= LP */ yytestcase(yyruleno==319); {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} break; - case 322: /* with ::= */ + case 323: /* with ::= */ {yygotominor.yy59 = 0;} break; - case 323: /* with ::= WITH wqlist */ - case 324: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==324); + case 324: /* with ::= WITH wqlist */ + case 325: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==325); { yygotominor.yy59 = yymsp[0].minor.yy59; } break; - case 325: /* wqlist ::= nm idxlist_opt AS LP select RP */ + case 326: /* wqlist ::= nm eidlist_opt AS LP select RP */ { yygotominor.yy59 = sqlite3WithAdd(pParse, 0, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy3); } break; - case 326: /* wqlist ::= wqlist COMMA nm idxlist_opt AS LP select RP */ + case 327: /* wqlist ::= wqlist COMMA nm eidlist_opt AS LP select RP */ { yygotominor.yy59 = sqlite3WithAdd(pParse, yymsp[-7].minor.yy59, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy3); } @@ -127972,19 +129332,19 @@ static void yy_reduce( /* (88) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==88); /* (89) conslist ::= tcons */ yytestcase(yyruleno==89); /* (91) tconscomma ::= */ yytestcase(yyruleno==91); - /* (273) foreach_clause ::= */ yytestcase(yyruleno==273); - /* (274) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==274); - /* (281) tridxby ::= */ yytestcase(yyruleno==281); - /* (298) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==298); - /* (299) database_kw_opt ::= */ yytestcase(yyruleno==299); - /* (307) kwcolumn_opt ::= */ yytestcase(yyruleno==307); - /* (308) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==308); - /* (312) vtabarglist ::= vtabarg */ yytestcase(yyruleno==312); - /* (313) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==313); - /* (315) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==315); - /* (319) anylist ::= */ yytestcase(yyruleno==319); - /* (320) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==320); - /* (321) anylist ::= anylist ANY */ yytestcase(yyruleno==321); + /* (274) foreach_clause ::= */ yytestcase(yyruleno==274); + /* (275) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==275); + /* (282) tridxby ::= */ yytestcase(yyruleno==282); + /* (299) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==299); + /* (300) database_kw_opt ::= */ yytestcase(yyruleno==300); + /* (308) kwcolumn_opt ::= */ yytestcase(yyruleno==308); + /* (309) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==309); + /* (313) vtabarglist ::= vtabarg */ yytestcase(yyruleno==313); + /* (314) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==314); + /* (316) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==316); + /* (320) anylist ::= */ yytestcase(yyruleno==320); + /* (321) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==321); + /* (322) anylist ::= anylist ANY */ yytestcase(yyruleno==322); break; }; assert( yyruleno>=0 && yyrulenoyyidx -= yysize; yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ -#ifdef NDEBUG - /* If we are not debugging and the reduce action popped at least + if( yyact <= YY_MAX_SHIFTREDUCE ){ + if( yyact>YY_MAX_SHIFT ) yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; + /* If the reduce action popped at least ** one element off the stack, then we can push the new element back ** onto the stack here, and skip the stack overflow test in yy_shift(). ** That gives a significant speed improvement. */ @@ -128004,13 +129364,12 @@ static void yy_reduce( yymsp->stateno = (YYACTIONTYPE)yyact; yymsp->major = (YYCODETYPE)yygoto; yymsp->minor = yygotominor; - }else -#endif - { + yyTraceShift(yypParser, yyact); + }else{ yy_shift(yypParser,yyact,yygoto,&yygotominor); } }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); + assert( yyact == YY_ACCEPT_ACTION ); yy_accept(yypParser); } } @@ -128135,12 +129494,13 @@ SQLITE_PRIVATE void sqlite3Parser( do{ yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyact YY_MAX_SHIFT ) yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; yy_shift(yypParser,yyact,yymajor,&yyminorunion); yypParser->yyerrcnt--; yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); + }else if( yyact <= YY_MAX_REDUCE ){ + yy_reduce(yypParser,yyact-YY_MIN_REDUCE); }else{ assert( yyact == YY_ERROR_ACTION ); #ifdef YYERRORSYMBOL @@ -128190,7 +129550,7 @@ SQLITE_PRIVATE void sqlite3Parser( yymx != YYERRORSYMBOL && (yyact = yy_find_reduce_action( yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE + YYERRORSYMBOL)) >= YY_MIN_REDUCE ){ yy_pop_parser_stack(yypParser); } @@ -128240,6 +129600,11 @@ SQLITE_PRIVATE void sqlite3Parser( #endif } }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sReturn\n",yyTracePrompt); + } +#endif return; } @@ -128928,6 +130293,7 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzEr pParse->zTail = zSql; i = 0; assert( pzErrMsg!=0 ); + /* sqlite3ParserTrace(stdout, "parser: "); */ pEngine = sqlite3ParserAlloc(sqlite3Malloc); if( pEngine==0 ){ db->mallocFailed = 1; @@ -129465,6 +130831,12 @@ SQLITE_PRIVATE int sqlite3IcuInit(sqlite3 *db); /************** End of sqliteicu.h *******************************************/ /************** Continuing where we left off in main.c ***********************/ #endif +#ifdef SQLITE_ENABLE_JSON1 +SQLITE_PRIVATE int sqlite3Json1Init(sqlite3*); +#endif +#ifdef SQLITE_ENABLE_FTS5 +SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3*); +#endif #ifndef SQLITE_AMALGAMATION /* IMPLEMENTATION-OF: R-46656-45156 The sqlite3_version[] string constant @@ -130372,17 +131744,23 @@ static void functionDestroy(sqlite3 *db, FuncDef *p){ static void disconnectAllVtab(sqlite3 *db){ #ifndef SQLITE_OMIT_VIRTUALTABLE int i; + HashElem *p; sqlite3BtreeEnterAll(db); for(i=0; inDb; i++){ Schema *pSchema = db->aDb[i].pSchema; if( db->aDb[i].pSchema ){ - HashElem *p; for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){ Table *pTab = (Table *)sqliteHashData(p); if( IsVirtual(pTab) ) sqlite3VtabDisconnect(db, pTab); } } } + for(p=sqliteHashFirst(&db->aModule); p; p=sqliteHashNext(p)){ + Module *pMod = (Module *)sqliteHashData(p); + if( pMod->pEpoTab ){ + sqlite3VtabDisconnect(db, pMod->pEpoTab); + } + } sqlite3VtabUnlockList(db); sqlite3BtreeLeaveAll(db); #else @@ -130560,6 +131938,7 @@ SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3 *db){ if( pMod->xDestroy ){ pMod->xDestroy(pMod->pAux); } + sqlite3VtabEponymousTableClear(db, pMod); sqlite3DbFree(db, pMod); } sqlite3HashClear(&db->aModule); @@ -132305,12 +133684,18 @@ static int openDatabase( } #endif -#ifdef SQLITE_ENABLE_FTS3 +#ifdef SQLITE_ENABLE_FTS3 /* automatically defined by SQLITE_ENABLE_FTS4 */ if( !db->mallocFailed && rc==SQLITE_OK ){ rc = sqlite3Fts3Init(db); } #endif +#ifdef SQLITE_ENABLE_FTS5 + if( !db->mallocFailed && rc==SQLITE_OK ){ + rc = sqlite3Fts5Init(db); + } +#endif + #ifdef SQLITE_ENABLE_ICU if( !db->mallocFailed && rc==SQLITE_OK ){ rc = sqlite3IcuInit(db); @@ -132329,6 +133714,12 @@ static int openDatabase( } #endif +#ifdef SQLITE_ENABLE_JSON1 + if( !db->mallocFailed && rc==SQLITE_OK){ + rc = sqlite3Json1Init(db); + } +#endif + /* -DSQLITE_DEFAULT_LOCKING_MODE=1 makes EXCLUSIVE the default locking ** mode. -DSQLITE_DEFAULT_LOCKING_MODE=0 make NORMAL the default locking ** mode. Doing nothing at all also makes NORMAL the default. @@ -134403,6 +135794,7 @@ struct Fts3Table { int nPendingData; /* Current bytes of pending data */ sqlite_int64 iPrevDocid; /* Docid of most recently inserted document */ int iPrevLangid; /* Langid of recently inserted document */ + int bPrevDelete; /* True if last operation was a delete */ #if defined(SQLITE_DEBUG) || defined(SQLITE_COVERAGE_TEST) /* State variables used for validating that the transaction control @@ -135978,6 +137370,19 @@ static void fts3SetEstimatedRows(sqlite3_index_info *pIdxInfo, i64 nRow){ #endif } +/* +** Set the SQLITE_INDEX_SCAN_UNIQUE flag in pIdxInfo->flags. Unless this +** extension is currently being used by a version of SQLite too old to +** support index-info flags. In that case this function is a no-op. +*/ +static void fts3SetUniqueFlag(sqlite3_index_info *pIdxInfo){ +#if SQLITE_VERSION_NUMBER>=3008012 + if( sqlite3_libversion_number()>=3008012 ){ + pIdxInfo->idxFlags |= SQLITE_INDEX_SCAN_UNIQUE; + } +#endif +} + /* ** Implementation of the xBestIndex method for FTS3 tables. There ** are three possible strategies, in order of preference: @@ -136068,6 +137473,9 @@ static int fts3BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){ } } + /* If using a docid=? or rowid=? strategy, set the UNIQUE flag. */ + if( pInfo->idxNum==FTS3_DOCID_SEARCH ) fts3SetUniqueFlag(pInfo); + iIdx = 1; if( iCons>=0 ){ pInfo->aConstraintUsage[iCons].argvIndex = iIdx++; @@ -141718,125 +143126,151 @@ static int fts3ExprBalance(Fts3Expr **pp, int nMaxDepth){ rc = SQLITE_ERROR; } - if( rc==SQLITE_OK && (eType==FTSQUERY_AND || eType==FTSQUERY_OR) ){ - Fts3Expr **apLeaf; - apLeaf = (Fts3Expr **)sqlite3_malloc(sizeof(Fts3Expr *) * nMaxDepth); - if( 0==apLeaf ){ - rc = SQLITE_NOMEM; - }else{ - memset(apLeaf, 0, sizeof(Fts3Expr *) * nMaxDepth); - } - - if( rc==SQLITE_OK ){ - int i; - Fts3Expr *p; - - /* Set $p to point to the left-most leaf in the tree of eType nodes. */ - for(p=pRoot; p->eType==eType; p=p->pLeft){ - assert( p->pParent==0 || p->pParent->pLeft==p ); - assert( p->pLeft && p->pRight ); - } - - /* This loop runs once for each leaf in the tree of eType nodes. */ - while( 1 ){ - int iLvl; - Fts3Expr *pParent = p->pParent; /* Current parent of p */ - - assert( pParent==0 || pParent->pLeft==p ); - p->pParent = 0; - if( pParent ){ - pParent->pLeft = 0; - }else{ - pRoot = 0; - } - rc = fts3ExprBalance(&p, nMaxDepth-1); - if( rc!=SQLITE_OK ) break; - - for(iLvl=0; p && iLvlpLeft = apLeaf[iLvl]; - pFree->pRight = p; - pFree->pLeft->pParent = pFree; - pFree->pRight->pParent = pFree; - - p = pFree; - pFree = pFree->pParent; - p->pParent = 0; - apLeaf[iLvl] = 0; - } - } - if( p ){ - sqlite3Fts3ExprFree(p); - rc = SQLITE_TOOBIG; - break; - } - - /* If that was the last leaf node, break out of the loop */ - if( pParent==0 ) break; - - /* Set $p to point to the next leaf in the tree of eType nodes */ - for(p=pParent->pRight; p->eType==eType; p=p->pLeft); - - /* Remove pParent from the original tree. */ - assert( pParent->pParent==0 || pParent->pParent->pLeft==pParent ); - pParent->pRight->pParent = pParent->pParent; - if( pParent->pParent ){ - pParent->pParent->pLeft = pParent->pRight; - }else{ - assert( pParent==pRoot ); - pRoot = pParent->pRight; - } - - /* Link pParent into the free node list. It will be used as an - ** internal node of the new tree. */ - pParent->pParent = pFree; - pFree = pParent; + if( rc==SQLITE_OK ){ + if( (eType==FTSQUERY_AND || eType==FTSQUERY_OR) ){ + Fts3Expr **apLeaf; + apLeaf = (Fts3Expr **)sqlite3_malloc(sizeof(Fts3Expr *) * nMaxDepth); + if( 0==apLeaf ){ + rc = SQLITE_NOMEM; + }else{ + memset(apLeaf, 0, sizeof(Fts3Expr *) * nMaxDepth); } if( rc==SQLITE_OK ){ - p = 0; - for(i=0; ipParent = 0; + int i; + Fts3Expr *p; + + /* Set $p to point to the left-most leaf in the tree of eType nodes. */ + for(p=pRoot; p->eType==eType; p=p->pLeft){ + assert( p->pParent==0 || p->pParent->pLeft==p ); + assert( p->pLeft && p->pRight ); + } + + /* This loop runs once for each leaf in the tree of eType nodes. */ + while( 1 ){ + int iLvl; + Fts3Expr *pParent = p->pParent; /* Current parent of p */ + + assert( pParent==0 || pParent->pLeft==p ); + p->pParent = 0; + if( pParent ){ + pParent->pLeft = 0; + }else{ + pRoot = 0; + } + rc = fts3ExprBalance(&p, nMaxDepth-1); + if( rc!=SQLITE_OK ) break; + + for(iLvl=0; p && iLvlpLeft = apLeaf[iLvl]; pFree->pRight = p; - pFree->pLeft = apLeaf[i]; pFree->pLeft->pParent = pFree; pFree->pRight->pParent = pFree; p = pFree; pFree = pFree->pParent; p->pParent = 0; + apLeaf[iLvl] = 0; } } + if( p ){ + sqlite3Fts3ExprFree(p); + rc = SQLITE_TOOBIG; + break; + } + + /* If that was the last leaf node, break out of the loop */ + if( pParent==0 ) break; + + /* Set $p to point to the next leaf in the tree of eType nodes */ + for(p=pParent->pRight; p->eType==eType; p=p->pLeft); + + /* Remove pParent from the original tree. */ + assert( pParent->pParent==0 || pParent->pParent->pLeft==pParent ); + pParent->pRight->pParent = pParent->pParent; + if( pParent->pParent ){ + pParent->pParent->pLeft = pParent->pRight; + }else{ + assert( pParent==pRoot ); + pRoot = pParent->pRight; + } + + /* Link pParent into the free node list. It will be used as an + ** internal node of the new tree. */ + pParent->pParent = pFree; + pFree = pParent; } - pRoot = p; - }else{ - /* An error occurred. Delete the contents of the apLeaf[] array - ** and pFree list. Everything else is cleaned up by the call to - ** sqlite3Fts3ExprFree(pRoot) below. */ - Fts3Expr *pDel; - for(i=0; ipParent; - sqlite3_free(pDel); + + if( rc==SQLITE_OK ){ + p = 0; + for(i=0; ipParent = 0; + }else{ + assert( pFree!=0 ); + pFree->pRight = p; + pFree->pLeft = apLeaf[i]; + pFree->pLeft->pParent = pFree; + pFree->pRight->pParent = pFree; + + p = pFree; + pFree = pFree->pParent; + p->pParent = 0; + } + } + } + pRoot = p; + }else{ + /* An error occurred. Delete the contents of the apLeaf[] array + ** and pFree list. Everything else is cleaned up by the call to + ** sqlite3Fts3ExprFree(pRoot) below. */ + Fts3Expr *pDel; + for(i=0; ipParent; + sqlite3_free(pDel); + } } + + assert( pFree==0 ); + sqlite3_free( apLeaf ); + } + }else if( eType==FTSQUERY_NOT ){ + Fts3Expr *pLeft = pRoot->pLeft; + Fts3Expr *pRight = pRoot->pRight; + + pRoot->pLeft = 0; + pRoot->pRight = 0; + pLeft->pParent = 0; + pRight->pParent = 0; + + rc = fts3ExprBalance(&pLeft, nMaxDepth-1); + if( rc==SQLITE_OK ){ + rc = fts3ExprBalance(&pRight, nMaxDepth-1); } - assert( pFree==0 ); - sqlite3_free( apLeaf ); + if( rc!=SQLITE_OK ){ + sqlite3Fts3ExprFree(pRight); + sqlite3Fts3ExprFree(pLeft); + }else{ + assert( pLeft && pRight ); + pRoot->pLeft = pLeft; + pLeft->pParent = pRoot; + pRoot->pRight = pRight; + pRight->pParent = pRoot; + } } } - + if( rc!=SQLITE_OK ){ sqlite3Fts3ExprFree(pRoot); pRoot = 0; @@ -145313,10 +146747,12 @@ static int fts3PendingTermsAdd( */ static int fts3PendingTermsDocid( Fts3Table *p, /* Full-text table handle */ + int bDelete, /* True if this op is a delete */ int iLangid, /* Language id of row being written */ sqlite_int64 iDocid /* Docid of row being written */ ){ assert( iLangid>=0 ); + assert( bDelete==1 || bDelete==0 ); /* TODO(shess) Explore whether partially flushing the buffer on ** forced-flush would provide better performance. I suspect that if @@ -145324,7 +146760,8 @@ static int fts3PendingTermsDocid( ** buffer was half empty, that would let the less frequent terms ** generate longer doclists. */ - if( iDocid<=p->iPrevDocid + if( iDocidiPrevDocid + || (iDocid==p->iPrevDocid && p->bPrevDelete==0) || p->iPrevLangid!=iLangid || p->nPendingData>p->nMaxPendingData ){ @@ -145333,6 +146770,7 @@ static int fts3PendingTermsDocid( } p->iPrevDocid = iDocid; p->iPrevLangid = iLangid; + p->bPrevDelete = bDelete; return SQLITE_OK; } @@ -145522,7 +146960,8 @@ static void fts3DeleteTerms( if( SQLITE_ROW==sqlite3_step(pSelect) ){ int i; int iLangid = langidFromSelect(p, pSelect); - rc = fts3PendingTermsDocid(p, iLangid, sqlite3_column_int64(pSelect, 0)); + i64 iDocid = sqlite3_column_int64(pSelect, 0); + rc = fts3PendingTermsDocid(p, 1, iLangid, iDocid); for(i=1; rc==SQLITE_OK && i<=p->nColumn; i++){ int iCol = i-1; if( p->abNotindexed[iCol]==0 ){ @@ -145770,14 +147209,19 @@ static int fts3SegReaderNext( if( fts3SegReaderIsPending(pReader) ){ Fts3HashElem *pElem = *(pReader->ppNextElem); - if( pElem==0 ){ - pReader->aNode = 0; - }else{ + sqlite3_free(pReader->aNode); + pReader->aNode = 0; + if( pElem ){ + char *aCopy; PendingList *pList = (PendingList *)fts3HashData(pElem); + int nCopy = pList->nData+1; pReader->zTerm = (char *)fts3HashKey(pElem); pReader->nTerm = fts3HashKeysize(pElem); - pReader->nNode = pReader->nDoclist = pList->nData + 1; - pReader->aNode = pReader->aDoclist = pList->aData; + aCopy = (char*)sqlite3_malloc(nCopy); + if( !aCopy ) return SQLITE_NOMEM; + memcpy(aCopy, pList->aData, nCopy); + pReader->nNode = pReader->nDoclist = nCopy; + pReader->aNode = pReader->aDoclist = aCopy; pReader->ppNextElem++; assert( pReader->aNode ); } @@ -146017,12 +147461,14 @@ SQLITE_PRIVATE int sqlite3Fts3MsrOvfl( ** second argument. */ SQLITE_PRIVATE void sqlite3Fts3SegReaderFree(Fts3SegReader *pReader){ - if( pReader && !fts3SegReaderIsPending(pReader) ){ - sqlite3_free(pReader->zTerm); + if( pReader ){ + if( !fts3SegReaderIsPending(pReader) ){ + sqlite3_free(pReader->zTerm); + } if( !fts3SegReaderIsRootOnly(pReader) ){ sqlite3_free(pReader->aNode); - sqlite3_blob_close(pReader->pBlob); } + sqlite3_blob_close(pReader->pBlob); } sqlite3_free(pReader); } @@ -147965,7 +149411,7 @@ static int fts3DoRebuild(Fts3Table *p){ while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){ int iCol; int iLangid = langidFromSelect(p, pStmt); - rc = fts3PendingTermsDocid(p, iLangid, sqlite3_column_int64(pStmt, 0)); + rc = fts3PendingTermsDocid(p, 0, iLangid, sqlite3_column_int64(pStmt, 0)); memset(aSz, 0, sizeof(aSz[0]) * (p->nColumn+1)); for(iCol=0; rc==SQLITE_OK && iColnColumn; iCol++){ if( p->abNotindexed[iCol]==0 ){ @@ -150070,7 +151516,7 @@ SQLITE_PRIVATE int sqlite3Fts3UpdateMethod( } } if( rc==SQLITE_OK && (!isRemove || *pRowid!=p->iPrevDocid ) ){ - rc = fts3PendingTermsDocid(p, iLangid, *pRowid); + rc = fts3PendingTermsDocid(p, 0, iLangid, *pRowid); } if( rc==SQLITE_OK ){ assert( p->iPrevDocid==*pRowid ); @@ -156964,10 +158410,6 @@ SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( /* #include */ /* #include */ -#if !defined(_WIN32) -/* # include */ -#endif - /* #include "sqlite3.h" */ #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_RBU) @@ -157072,6 +158514,18 @@ SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( ** ** The order of the columns in the data_% table does not matter. ** +** Instead of a regular table, the RBU database may also contain virtual +** tables or view named using the data_ naming scheme. +** +** Instead of the plain data_ naming scheme, RBU database tables +** may also be named data_, where is any sequence +** of zero or more numeric characters (0-9). This can be significant because +** tables within the RBU database are always processed in order sorted by +** name. By judicious selection of the the portion of the names +** of the RBU tables the user can therefore control the order in which they +** are processed. This can be useful, for example, to ensure that "external +** content" FTS4 tables are updated before their underlying content tables. +** ** If the target database table is a virtual table or a table that has no ** PRIMARY KEY declaration, the data_% table must also contain a column ** named "rbu_rowid". This column is mapped to the tables implicit primary @@ -157152,6 +158606,14 @@ SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( ** ** UPDATE t1 SET c = rbu_delta(c, 'usa') WHERE a = 4; ** +** Finally, if an 'f' character appears in place of a 'd' or 's' in an +** ota_control string, the contents of the data_xxx table column is assumed +** to be a "fossil delta" - a patch to be applied to a blob value in the +** format used by the fossil source-code management system. In this case +** the existing value within the target database table must be of type BLOB. +** It is replaced by the result of applying the specified fossil delta to +** itself. +** ** If the target database table is a virtual table or a table with no PRIMARY ** KEY, the rbu_control value should not include a character corresponding ** to the rbu_rowid value. For example, this: @@ -157224,6 +158686,10 @@ SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( /* #include "sqlite3.h" ** Required for error code definitions ** */ +#if 0 +extern "C" { +#endif + typedef struct sqlite3rbu sqlite3rbu; /* @@ -157309,6 +158775,18 @@ SQLITE_API sqlite3 *SQLITE_STDCALL sqlite3rbu_db(sqlite3rbu*, int bRbu); */ SQLITE_API int SQLITE_STDCALL sqlite3rbu_step(sqlite3rbu *pRbu); +/* +** Force RBU to save its state to disk. +** +** If a power failure or application crash occurs during an update, following +** system recovery RBU may resume the update from the point at which the state +** was last saved. In other words, from the most recent successful call to +** sqlite3rbu_close() or this function. +** +** SQLITE_OK is returned if successful, or an SQLite error code otherwise. +*/ +SQLITE_API int SQLITE_STDCALL sqlite3rbu_savestate(sqlite3rbu *pRbu); + /* ** Close an RBU handle. ** @@ -157390,11 +158868,19 @@ SQLITE_API int SQLITE_STDCALL sqlite3rbu_create_vfs(const char *zName, const cha */ SQLITE_API void SQLITE_STDCALL sqlite3rbu_destroy_vfs(const char *zName); +#if 0 +} /* end of the 'extern "C"' block */ +#endif + #endif /* _SQLITE3RBU_H */ /************** End of sqlite3rbu.h ******************************************/ /************** Continuing where we left off in sqlite3rbu.c *****************/ +#if defined(_WIN32_WCE) +/* #include "windows.h" */ +#endif + /* Maximum number of prepared UPDATE statements held by this module */ #define SQLITE_RBU_UPDATE_CACHESIZE 16 @@ -157541,6 +159027,7 @@ struct RbuObjIter { /* Output variables. zTbl==0 implies EOF. */ int bCleanup; /* True in "cleanup" state */ const char *zTbl; /* Name of target db table */ + const char *zDataTbl; /* Name of rbu db table (or null) */ const char *zIdx; /* Name of target db index (or null) */ int iTnum; /* Root page of current object */ int iPkTnum; /* If eType==EXTERNAL, root of PK index */ @@ -157551,7 +159038,7 @@ struct RbuObjIter { sqlite3_stmt *pSelect; /* Source data */ sqlite3_stmt *pInsert; /* Statement for INSERT operations */ sqlite3_stmt *pDelete; /* Statement for DELETE ops */ - sqlite3_stmt *pTmpInsert; /* Insert into rbu_tmp_$zTbl */ + sqlite3_stmt *pTmpInsert; /* Insert into rbu_tmp_$zDataTbl */ /* Last UPDATE used (for PK b-tree updates only), or NULL. */ RbuUpdateStmt *pRbuUpdate; @@ -157662,6 +159149,252 @@ struct rbu_file { }; +/************************************************************************* +** The following three functions, found below: +** +** rbuDeltaGetInt() +** rbuDeltaChecksum() +** rbuDeltaApply() +** +** are lifted from the fossil source code (http://fossil-scm.org). They +** are used to implement the scalar SQL function rbu_fossil_delta(). +*/ + +/* +** Read bytes from *pz and convert them into a positive integer. When +** finished, leave *pz pointing to the first character past the end of +** the integer. The *pLen parameter holds the length of the string +** in *pz and is decremented once for each character in the integer. +*/ +static unsigned int rbuDeltaGetInt(const char **pz, int *pLen){ + static const signed char zValue[] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -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, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 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, -1, -1, -1, -1, 36, + -1, 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, -1, -1, -1, 63, -1, + }; + unsigned int v = 0; + int c; + unsigned char *z = (unsigned char*)*pz; + unsigned char *zStart = z; + while( (c = zValue[0x7f&*(z++)])>=0 ){ + v = (v<<6) + c; + } + z--; + *pLen -= z - zStart; + *pz = (char*)z; + return v; +} + +/* +** Compute a 32-bit checksum on the N-byte buffer. Return the result. +*/ +static unsigned int rbuDeltaChecksum(const char *zIn, size_t N){ + const unsigned char *z = (const unsigned char *)zIn; + unsigned sum0 = 0; + unsigned sum1 = 0; + unsigned sum2 = 0; + unsigned sum3 = 0; + while(N >= 16){ + sum0 += ((unsigned)z[0] + z[4] + z[8] + z[12]); + sum1 += ((unsigned)z[1] + z[5] + z[9] + z[13]); + sum2 += ((unsigned)z[2] + z[6] + z[10]+ z[14]); + sum3 += ((unsigned)z[3] + z[7] + z[11]+ z[15]); + z += 16; + N -= 16; + } + while(N >= 4){ + sum0 += z[0]; + sum1 += z[1]; + sum2 += z[2]; + sum3 += z[3]; + z += 4; + N -= 4; + } + sum3 += (sum2 << 8) + (sum1 << 16) + (sum0 << 24); + switch(N){ + case 3: sum3 += (z[2] << 8); + case 2: sum3 += (z[1] << 16); + case 1: sum3 += (z[0] << 24); + default: ; + } + return sum3; +} + +/* +** Apply a delta. +** +** The output buffer should be big enough to hold the whole output +** file and a NUL terminator at the end. The delta_output_size() +** routine will determine this size for you. +** +** The delta string should be null-terminated. But the delta string +** may contain embedded NUL characters (if the input and output are +** binary files) so we also have to pass in the length of the delta in +** the lenDelta parameter. +** +** This function returns the size of the output file in bytes (excluding +** the final NUL terminator character). Except, if the delta string is +** malformed or intended for use with a source file other than zSrc, +** then this routine returns -1. +** +** Refer to the delta_create() documentation above for a description +** of the delta file format. +*/ +static int rbuDeltaApply( + const char *zSrc, /* The source or pattern file */ + int lenSrc, /* Length of the source file */ + const char *zDelta, /* Delta to apply to the pattern */ + int lenDelta, /* Length of the delta */ + char *zOut /* Write the output into this preallocated buffer */ +){ + unsigned int limit; + unsigned int total = 0; +#ifndef FOSSIL_OMIT_DELTA_CKSUM_TEST + char *zOrigOut = zOut; +#endif + + limit = rbuDeltaGetInt(&zDelta, &lenDelta); + if( *zDelta!='\n' ){ + /* ERROR: size integer not terminated by "\n" */ + return -1; + } + zDelta++; lenDelta--; + while( *zDelta && lenDelta>0 ){ + unsigned int cnt, ofst; + cnt = rbuDeltaGetInt(&zDelta, &lenDelta); + switch( zDelta[0] ){ + case '@': { + zDelta++; lenDelta--; + ofst = rbuDeltaGetInt(&zDelta, &lenDelta); + if( lenDelta>0 && zDelta[0]!=',' ){ + /* ERROR: copy command not terminated by ',' */ + return -1; + } + zDelta++; lenDelta--; + total += cnt; + if( total>limit ){ + /* ERROR: copy exceeds output file size */ + return -1; + } + if( (int)(ofst+cnt) > lenSrc ){ + /* ERROR: copy extends past end of input */ + return -1; + } + memcpy(zOut, &zSrc[ofst], cnt); + zOut += cnt; + break; + } + case ':': { + zDelta++; lenDelta--; + total += cnt; + if( total>limit ){ + /* ERROR: insert command gives an output larger than predicted */ + return -1; + } + if( (int)cnt>lenDelta ){ + /* ERROR: insert count exceeds size of delta */ + return -1; + } + memcpy(zOut, zDelta, cnt); + zOut += cnt; + zDelta += cnt; + lenDelta -= cnt; + break; + } + case ';': { + zDelta++; lenDelta--; + zOut[0] = 0; +#ifndef FOSSIL_OMIT_DELTA_CKSUM_TEST + if( cnt!=rbuDeltaChecksum(zOrigOut, total) ){ + /* ERROR: bad checksum */ + return -1; + } +#endif + if( total!=limit ){ + /* ERROR: generated size does not match predicted size */ + return -1; + } + return total; + } + default: { + /* ERROR: unknown delta operator */ + return -1; + } + } + } + /* ERROR: unterminated delta */ + return -1; +} + +static int rbuDeltaOutputSize(const char *zDelta, int lenDelta){ + int size; + size = rbuDeltaGetInt(&zDelta, &lenDelta); + if( *zDelta!='\n' ){ + /* ERROR: size integer not terminated by "\n" */ + return -1; + } + return size; +} + +/* +** End of code taken from fossil. +*************************************************************************/ + +/* +** Implementation of SQL scalar function rbu_fossil_delta(). +** +** This function applies a fossil delta patch to a blob. Exactly two +** arguments must be passed to this function. The first is the blob to +** patch and the second the patch to apply. If no error occurs, this +** function returns the patched blob. +*/ +static void rbuFossilDeltaFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *aDelta; + int nDelta; + const char *aOrig; + int nOrig; + + int nOut; + int nOut2; + char *aOut; + + assert( argc==2 ); + + nOrig = sqlite3_value_bytes(argv[0]); + aOrig = (const char*)sqlite3_value_blob(argv[0]); + nDelta = sqlite3_value_bytes(argv[1]); + aDelta = (const char*)sqlite3_value_blob(argv[1]); + + /* Figure out the size of the output */ + nOut = rbuDeltaOutputSize(aDelta, nDelta); + if( nOut<0 ){ + sqlite3_result_error(context, "corrupt fossil delta", -1); + return; + } + + aOut = sqlite3_malloc(nOut+1); + if( aOut==0 ){ + sqlite3_result_error_nomem(context); + }else{ + nOut2 = rbuDeltaApply(aOrig, nOrig, aDelta, nDelta, aOut); + if( nOut2!=nOut ){ + sqlite3_result_error(context, "corrupt fossil delta", -1); + }else{ + sqlite3_result_blob(context, aOut, nOut, sqlite3_free); + } + } +} + + /* ** Prepare the SQL statement in buffer zSql against database handle db. ** If successful, set *ppStmt to point to the new statement and return @@ -157828,7 +159561,8 @@ static int rbuObjIterNext(sqlite3rbu *p, RbuObjIter *pIter){ pIter->zTbl = 0; }else{ pIter->zTbl = (const char*)sqlite3_column_text(pIter->pTblIter, 0); - rc = pIter->zTbl ? SQLITE_OK : SQLITE_NOMEM; + pIter->zDataTbl = (const char*)sqlite3_column_text(pIter->pTblIter,1); + rc = (pIter->zDataTbl && pIter->zTbl) ? SQLITE_OK : SQLITE_NOMEM; } }else{ if( pIter->zIdx==0 ){ @@ -157859,6 +159593,40 @@ static int rbuObjIterNext(sqlite3rbu *p, RbuObjIter *pIter){ return rc; } + +/* +** The implementation of the rbu_target_name() SQL function. This function +** accepts one argument - the name of a table in the RBU database. If the +** table name matches the pattern: +** +** data[0-9]_ +** +** where is any sequence of 1 or more characters, is returned. +** Otherwise, if the only argument does not match the above pattern, an SQL +** NULL is returned. +** +** "data_t1" -> "t1" +** "data0123_t2" -> "t2" +** "dataAB_t3" -> NULL +*/ +static void rbuTargetNameFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + const char *zIn; + assert( argc==1 ); + + zIn = (const char*)sqlite3_value_text(argv[0]); + if( zIn && strlen(zIn)>4 && memcmp("data", zIn, 4)==0 ){ + int i; + for(i=4; zIn[i]>='0' && zIn[i]<='9'; i++); + if( zIn[i]=='_' && zIn[i+1] ){ + sqlite3_result_text(context, &zIn[i+1], -1, SQLITE_STATIC); + } + } +} + /* ** Initialize the iterator structure passed as the second argument. ** @@ -157872,8 +159640,9 @@ static int rbuObjIterFirst(sqlite3rbu *p, RbuObjIter *pIter){ memset(pIter, 0, sizeof(RbuObjIter)); rc = prepareAndCollectError(p->dbRbu, &pIter->pTblIter, &p->zErrmsg, - "SELECT substr(name, 6) FROM sqlite_master " - "WHERE type IN ('table', 'view') AND name LIKE 'data_%'" + "SELECT rbu_target_name(name) AS target, name FROM sqlite_master " + "WHERE type IN ('table', 'view') AND target IS NOT NULL " + "ORDER BY name" ); if( rc==SQLITE_OK ){ @@ -158140,7 +159909,7 @@ static void rbuTableType( } rbuTableType_end: { - int i; + unsigned int i; for(i=0; irc = prepareFreeAndCollectError(p->dbRbu, &pStmt, &p->zErrmsg, - sqlite3_mprintf("SELECT * FROM 'data_%q'", pIter->zTbl) + sqlite3_mprintf("SELECT * FROM '%q'", pIter->zDataTbl) ); if( p->rc==SQLITE_OK ){ nCol = sqlite3_column_count(pStmt); @@ -158244,7 +160013,7 @@ static int rbuObjIterCacheTableInfo(sqlite3rbu *p, RbuObjIter *pIter){ ){ p->rc = SQLITE_ERROR; p->zErrmsg = sqlite3_mprintf( - "table data_%q %s rbu_rowid column", pIter->zTbl, + "table %q %s rbu_rowid column", pIter->zDataTbl, (bRbuRowid ? "may not have" : "requires") ); } @@ -158265,8 +160034,8 @@ static int rbuObjIterCacheTableInfo(sqlite3rbu *p, RbuObjIter *pIter){ } if( i==pIter->nTblCol ){ p->rc = SQLITE_ERROR; - p->zErrmsg = sqlite3_mprintf("column missing from data_%q: %s", - pIter->zTbl, zName + p->zErrmsg = sqlite3_mprintf("column missing from %q: %s", + pIter->zDataTbl, zName ); }else{ int iPk = sqlite3_column_int(pStmt, 5); @@ -158553,7 +160322,7 @@ static char *rbuObjIterGetSetlist( if( p->rc==SQLITE_OK ){ int i; - if( strlen(zMask)!=pIter->nTblCol ){ + if( (int)strlen(zMask)!=pIter->nTblCol ){ rbuBadControlError(p); }else{ const char *zSep = ""; @@ -158565,12 +160334,18 @@ static char *rbuObjIterGetSetlist( ); zSep = ", "; } - if( c=='d' ){ + else if( c=='d' ){ zList = rbuMPrintf(p, "%z%s\"%w\"=rbu_delta(\"%w\", ?%d)", zList, zSep, pIter->azTblCol[i], pIter->azTblCol[i], i+1 ); zSep = ", "; } + else if( c=='f' ){ + zList = rbuMPrintf(p, "%z%s\"%w\"=rbu_fossil_delta(\"%w\", ?%d)", + zList, zSep, pIter->azTblCol[i], pIter->azTblCol[i], i+1 + ); + zSep = ", "; + } } } } @@ -158821,7 +160596,7 @@ static void rbuObjIterPrepareTmpInsert( p->rc = prepareFreeAndCollectError( p->dbRbu, &pIter->pTmpInsert, &p->zErrmsg, sqlite3_mprintf( "INSERT INTO %s.'rbu_tmp_%q'(rbu_control,%s%s) VALUES(%z)", - p->zStateDb, pIter->zTbl, zCollist, zRbuRowid, zBind + p->zStateDb, pIter->zDataTbl, zCollist, zRbuRowid, zBind )); } } @@ -158917,18 +160692,18 @@ static int rbuObjIterPrepareAll( if( pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_NONE ){ zSql = sqlite3_mprintf( "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' ORDER BY %s%s", - zCollist, p->zStateDb, pIter->zTbl, + zCollist, p->zStateDb, pIter->zDataTbl, zCollist, zLimit ); }else{ zSql = sqlite3_mprintf( - "SELECT %s, rbu_control FROM 'data_%q' " + "SELECT %s, rbu_control FROM '%q' " "WHERE typeof(rbu_control)='integer' AND rbu_control!=1 " "UNION ALL " "SELECT %s, rbu_control FROM %s.'rbu_tmp_%q' " "ORDER BY %s%s", - zCollist, pIter->zTbl, - zCollist, p->zStateDb, pIter->zTbl, + zCollist, pIter->zDataTbl, + zCollist, p->zStateDb, pIter->zDataTbl, zCollist, zLimit ); } @@ -158952,16 +160727,6 @@ static int rbuObjIterPrepareAll( zCollist = rbuObjIterGetCollist(p, pIter); pIter->nCol = pIter->nTblCol; - /* Create the SELECT statement to read keys from data_xxx */ - if( p->rc==SQLITE_OK ){ - p->rc = prepareFreeAndCollectError(p->dbRbu, &pIter->pSelect, pz, - sqlite3_mprintf( - "SELECT %s, rbu_control%s FROM 'data_%q'%s", - zCollist, (bRbuRowid ? ", rbu_rowid" : ""), zTbl, zLimit - ) - ); - } - /* Create the imposter table or tables (if required). */ rbuCreateImposterTable(p, pIter); rbuCreateImposterTable2(p, pIter); @@ -158995,10 +160760,10 @@ static int rbuObjIterPrepareAll( /* Create the rbu_tmp_xxx table and the triggers to populate it. */ rbuMPrintfExec(p, p->dbRbu, "CREATE TABLE IF NOT EXISTS %s.'rbu_tmp_%q' AS " - "SELECT *%s FROM 'data_%q' WHERE 0;" - , p->zStateDb - , zTbl, (pIter->eType==RBU_PK_EXTERNAL ? ", 0 AS rbu_rowid" : "") - , zTbl + "SELECT *%s FROM '%q' WHERE 0;" + , p->zStateDb, pIter->zDataTbl + , (pIter->eType==RBU_PK_EXTERNAL ? ", 0 AS rbu_rowid" : "") + , pIter->zDataTbl ); rbuMPrintfExec(p, p->dbMain, @@ -159034,6 +160799,17 @@ static int rbuObjIterPrepareAll( rbuObjIterPrepareTmpInsert(p, pIter, zCollist, zRbuRowid); } + /* Create the SELECT statement to read keys from data_xxx */ + if( p->rc==SQLITE_OK ){ + p->rc = prepareFreeAndCollectError(p->dbRbu, &pIter->pSelect, pz, + sqlite3_mprintf( + "SELECT %s, rbu_control%s FROM '%q'%s", + zCollist, (bRbuRowid ? ", rbu_rowid" : ""), + pIter->zDataTbl, zLimit + ) + ); + } + sqlite3_free(zWhere); sqlite3_free(zOldlist); sqlite3_free(zNewlist); @@ -159164,6 +160940,18 @@ static void rbuOpenDatabase(sqlite3rbu *p){ ); } + if( p->rc==SQLITE_OK ){ + p->rc = sqlite3_create_function(p->dbMain, + "rbu_fossil_delta", 2, SQLITE_UTF8, 0, rbuFossilDeltaFunc, 0, 0 + ); + } + + if( p->rc==SQLITE_OK ){ + p->rc = sqlite3_create_function(p->dbRbu, + "rbu_target_name", 1, SQLITE_UTF8, (void*)p, rbuTargetNameFunc, 0, 0 + ); + } + if( p->rc==SQLITE_OK ){ p->rc = sqlite3_file_control(p->dbMain, "main", SQLITE_FCNTL_RBU, (void*)p); } @@ -159386,6 +161174,30 @@ static void rbuLockDatabase(sqlite3rbu *p){ } } +#if defined(_WIN32_WCE) +static LPWSTR rbuWinUtf8ToUnicode(const char *zFilename){ + int nChar; + LPWSTR zWideFilename; + + nChar = MultiByteToWideChar(CP_UTF8, 0, zFilename, -1, NULL, 0); + if( nChar==0 ){ + return 0; + } + zWideFilename = sqlite3_malloc( nChar*sizeof(zWideFilename[0]) ); + if( zWideFilename==0 ){ + return 0; + } + memset(zWideFilename, 0, nChar*sizeof(zWideFilename[0])); + nChar = MultiByteToWideChar(CP_UTF8, 0, zFilename, -1, zWideFilename, + nChar); + if( nChar==0 ){ + sqlite3_free(zWideFilename); + zWideFilename = 0; + } + return zWideFilename; +} +#endif + /* ** The RBU handle is currently in RBU_STAGE_OAL state, with a SHARED lock ** on the database file. This proc moves the *-oal file to the *-wal path, @@ -159420,10 +161232,37 @@ static void rbuMoveOalFile(sqlite3rbu *p){ rbuObjIterFinalize(&p->objiter); sqlite3_close(p->dbMain); sqlite3_close(p->dbRbu); + p->dbMain = 0; + p->dbRbu = 0; + +#if defined(_WIN32_WCE) + { + LPWSTR zWideOal; + LPWSTR zWideWal; + + zWideOal = rbuWinUtf8ToUnicode(zOal); + if( zWideOal ){ + zWideWal = rbuWinUtf8ToUnicode(zWal); + if( zWideWal ){ + if( MoveFileW(zWideOal, zWideWal) ){ + p->rc = SQLITE_OK; + }else{ + p->rc = SQLITE_IOERR; + } + sqlite3_free(zWideWal); + }else{ + p->rc = SQLITE_IOERR_NOMEM; + } + sqlite3_free(zWideOal); + }else{ + p->rc = SQLITE_IOERR_NOMEM; + } + } +#else p->rc = rename(zOal, zWal) ? SQLITE_IOERR : SQLITE_OK; +#endif + if( p->rc==SQLITE_OK ){ - p->dbMain = 0; - p->dbRbu = 0; rbuOpenDatabase(p); rbuSetupCheckpoint(p, 0); } @@ -159593,7 +161432,7 @@ static int rbuStep(sqlite3rbu *p){ for(i=0; p->rc==SQLITE_OK && inCol; i++){ char c = zMask[pIter->aiSrcOrder[i]]; pVal = sqlite3_column_value(pIter->pSelect, i); - if( pIter->abTblPk[i] || c=='x' || c=='d' ){ + if( pIter->abTblPk[i] || c!='.' ){ p->rc = sqlite3_bind_value(pUpdate, i+1, pVal); } } @@ -159705,7 +161544,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3rbu_step(sqlite3rbu *p){ ** But the contents can be deleted. */ if( pIter->abIndexed ){ rbuMPrintfExec(p, p->dbRbu, - "DELETE FROM %s.'rbu_tmp_%q'", p->zStateDb, pIter->zTbl + "DELETE FROM %s.'rbu_tmp_%q'", p->zStateDb, pIter->zDataTbl ); } }else{ @@ -159928,10 +161767,13 @@ static void rbuSetupOal(sqlite3rbu *p, RbuState *pState){ ** leave an error code and error message in the rbu handle. */ static void rbuDeleteOalFile(sqlite3rbu *p){ - char *zOal = sqlite3_mprintf("%s-oal", p->zTarget); - assert( p->rc==SQLITE_OK && p->zErrmsg==0 ); - unlink(zOal); - sqlite3_free(zOal); + char *zOal = rbuMPrintf(p, "%s-oal", p->zTarget); + if( zOal ){ + sqlite3_vfs *pVfs = sqlite3_vfs_find(0); + assert( pVfs && p->rc==SQLITE_OK && p->zErrmsg==0 ); + pVfs->xDelete(pVfs, zOal, 0); + sqlite3_free(zOal); + } } /* @@ -160044,14 +161886,25 @@ SQLITE_API sqlite3rbu *SQLITE_STDCALL sqlite3rbu_open( if( p->rc==SQLITE_OK ){ if( p->eStage==RBU_STAGE_OAL ){ + sqlite3 *db = p->dbMain; /* Open transactions both databases. The *-oal file is opened or ** created at this point. */ - p->rc = sqlite3_exec(p->dbMain, "BEGIN IMMEDIATE", 0, 0, &p->zErrmsg); + p->rc = sqlite3_exec(db, "BEGIN IMMEDIATE", 0, 0, &p->zErrmsg); if( p->rc==SQLITE_OK ){ p->rc = sqlite3_exec(p->dbRbu, "BEGIN IMMEDIATE", 0, 0, &p->zErrmsg); } - + + /* Check if the main database is a zipvfs db. If it is, set the upper + ** level pager to use "journal_mode=off". This prevents it from + ** generating a large journal using a temp file. */ + if( p->rc==SQLITE_OK ){ + int frc = sqlite3_file_control(db, "main", SQLITE_FCNTL_ZIPVFS, 0); + if( frc==SQLITE_OK ){ + p->rc = sqlite3_exec(db, "PRAGMA journal_mode=off",0,0,&p->zErrmsg); + } + } + /* Point the object iterator at the first object */ if( p->rc==SQLITE_OK ){ p->rc = rbuObjIterFirst(p, &p->objiter); @@ -160165,6 +162018,32 @@ SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3rbu_progress(sqlite3rbu *pRbu){ return pRbu->nProgress; } +SQLITE_API int SQLITE_STDCALL sqlite3rbu_savestate(sqlite3rbu *p){ + int rc = p->rc; + + if( rc==SQLITE_DONE ) return SQLITE_OK; + + assert( p->eStage>=RBU_STAGE_OAL && p->eStage<=RBU_STAGE_DONE ); + if( p->eStage==RBU_STAGE_OAL ){ + assert( rc!=SQLITE_DONE ); + if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbMain, "COMMIT", 0, 0, 0); + } + + p->rc = rc; + rbuSaveState(p, p->eStage); + rc = p->rc; + + if( p->eStage==RBU_STAGE_OAL ){ + assert( rc!=SQLITE_DONE ); + if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbRbu, "COMMIT", 0, 0, 0); + if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbRbu, "BEGIN IMMEDIATE", 0, 0, 0); + if( rc==SQLITE_OK ) rc = sqlite3_exec(p->dbMain, "BEGIN IMMEDIATE", 0, 0,0); + } + + p->rc = rc; + return rc; +} + /************************************************************************** ** Beginning of RBU VFS shim methods. The VFS shim modifies the behaviour ** of a standard VFS in the following ways: @@ -160644,7 +162523,8 @@ static int rbuVfsOpen( rbuVfsShmMap, /* xShmMap */ rbuVfsShmLock, /* xShmLock */ rbuVfsShmBarrier, /* xShmBarrier */ - rbuVfsShmUnmap /* xShmUnmap */ + rbuVfsShmUnmap, /* xShmUnmap */ + 0, 0 /* xFetch, xUnfetch */ }; rbu_vfs *pRbuVfs = (rbu_vfs*)pVfs; sqlite3_vfs *pRealVfs = pRbuVfs->pRealVfs; @@ -160986,6 +162866,9 @@ SQLITE_API int SQLITE_STDCALL sqlite3rbu_create_vfs(const char *zName, const cha ** information from an SQLite database in order to implement the ** "sqlite3_analyzer" utility. See the ../tool/spaceanal.tcl script ** for an example implementation. +** +** Additional information is available on the "dbstat.html" page of the +** official SQLite documentation. */ /* #include "sqliteInt.h" ** Requires access to internal data structures ** */ @@ -161034,7 +162917,8 @@ SQLITE_API int SQLITE_STDCALL sqlite3rbu_create_vfs(const char *zName, const cha " unused INTEGER, /* Bytes of unused space on this page */" \ " mx_payload INTEGER, /* Largest payload size of all cells */" \ " pgoffset INTEGER, /* Offset of page in file */" \ - " pgsize INTEGER /* Size of the page */" \ + " pgsize INTEGER, /* Size of the page */" \ + " schema TEXT HIDDEN /* Database schema being analyzed */" \ ");" @@ -161072,6 +162956,7 @@ struct StatCursor { sqlite3_vtab_cursor base; sqlite3_stmt *pStmt; /* Iterates through set of root pages */ int isEof; /* After pStmt has returned SQLITE_DONE */ + int iDb; /* Schema used for this query */ StatPage aPage[32]; int iPage; /* Current entry in aPage[] */ @@ -161149,9 +163034,32 @@ static int statDisconnect(sqlite3_vtab *pVtab){ /* ** There is no "best-index". This virtual table always does a linear -** scan of the binary VFS log file. +** scan. However, a schema=? constraint should cause this table to +** operate on a different database schema, so check for it. +** +** idxNum is normally 0, but will be 1 if a schema=? constraint exists. */ static int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ + int i; + + pIdxInfo->estimatedCost = 1.0e6; /* Initial cost estimate */ + + /* Look for a valid schema=? constraint. If found, change the idxNum to + ** 1 and request the value of that constraint be sent to xFilter. And + ** lower the cost estimate to encourage the constrained version to be + ** used. + */ + for(i=0; inConstraint; i++){ + if( pIdxInfo->aConstraint[i].usable==0 ) continue; + if( pIdxInfo->aConstraint[i].op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; + if( pIdxInfo->aConstraint[i].iColumn!=10 ) continue; + pIdxInfo->idxNum = 1; + pIdxInfo->estimatedCost = 1.0; + pIdxInfo->aConstraintUsage[i].argvIndex = 1; + pIdxInfo->aConstraintUsage[i].omit = 1; + break; + } + /* Records are always returned in ascending order of (name, path). ** If this will satisfy the client, set the orderByConsumed flag so that @@ -161171,7 +163079,6 @@ static int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ pIdxInfo->orderByConsumed = 1; } - pIdxInfo->estimatedCost = 10.0; return SQLITE_OK; } @@ -161181,36 +163088,18 @@ static int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ static int statOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor){ StatTable *pTab = (StatTable *)pVTab; StatCursor *pCsr; - int rc; pCsr = (StatCursor *)sqlite3_malloc64(sizeof(StatCursor)); if( pCsr==0 ){ - rc = SQLITE_NOMEM; + return SQLITE_NOMEM; }else{ - char *zSql; memset(pCsr, 0, sizeof(StatCursor)); pCsr->base.pVtab = pVTab; - - zSql = sqlite3_mprintf( - "SELECT 'sqlite_master' AS name, 1 AS rootpage, 'table' AS type" - " UNION ALL " - "SELECT name, rootpage, type" - " FROM \"%w\".sqlite_master WHERE rootpage!=0" - " ORDER BY name", pTab->db->aDb[pTab->iDb].zName); - if( zSql==0 ){ - rc = SQLITE_NOMEM; - }else{ - rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); - sqlite3_free(zSql); - } - if( rc!=SQLITE_OK ){ - sqlite3_free(pCsr); - pCsr = 0; - } + pCsr->iDb = pTab->iDb; } *ppCursor = (sqlite3_vtab_cursor *)pCsr; - return rc; + return SQLITE_OK; } static void statClearPage(StatPage *p){ @@ -161235,6 +163124,7 @@ static void statResetCsr(StatCursor *pCsr){ pCsr->iPage = 0; sqlite3_free(pCsr->zPath); pCsr->zPath = 0; + pCsr->isEof = 0; } /* @@ -161397,7 +163287,7 @@ static int statNext(sqlite3_vtab_cursor *pCursor){ char *z; StatCursor *pCsr = (StatCursor *)pCursor; StatTable *pTab = (StatTable *)pCursor->pVtab; - Btree *pBt = pTab->db->aDb[pTab->iDb].pBt; + Btree *pBt = pTab->db->aDb[pCsr->iDb].pBt; Pager *pPager = sqlite3BtreePager(pBt); sqlite3_free(pCsr->zPath); @@ -161535,9 +163425,43 @@ static int statFilter( int argc, sqlite3_value **argv ){ StatCursor *pCsr = (StatCursor *)pCursor; + StatTable *pTab = (StatTable*)(pCursor->pVtab); + char *zSql; + int rc = SQLITE_OK; + char *zMaster; + if( idxNum==1 ){ + const char *zDbase = (const char*)sqlite3_value_text(argv[0]); + pCsr->iDb = sqlite3FindDbName(pTab->db, zDbase); + if( pCsr->iDb<0 ){ + sqlite3_free(pCursor->pVtab->zErrMsg); + pCursor->pVtab->zErrMsg = sqlite3_mprintf("no such schema: %s", zDbase); + return pCursor->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; + } + }else{ + pCsr->iDb = pTab->iDb; + } statResetCsr(pCsr); - return statNext(pCursor); + sqlite3_finalize(pCsr->pStmt); + pCsr->pStmt = 0; + zMaster = pCsr->iDb==1 ? "sqlite_temp_master" : "sqlite_master"; + zSql = sqlite3_mprintf( + "SELECT 'sqlite_master' AS name, 1 AS rootpage, 'table' AS type" + " UNION ALL " + "SELECT name, rootpage, type" + " FROM \"%w\".%s WHERE rootpage!=0" + " ORDER BY name", pTab->db->aDb[pCsr->iDb].zName, zMaster); + if( zSql==0 ){ + return SQLITE_NOMEM; + }else{ + rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pCsr->pStmt, 0); + sqlite3_free(zSql); + } + + if( rc==SQLITE_OK ){ + rc = statNext(pCursor); + } + return rc; } static int statColumn( @@ -161574,10 +163498,15 @@ static int statColumn( case 8: /* pgoffset */ sqlite3_result_int64(ctx, pCsr->iOffset); break; - default: /* pgsize */ - assert( i==9 ); + case 9: /* pgsize */ sqlite3_result_int(ctx, pCsr->szPage); break; + default: { /* schema */ + sqlite3 *db = sqlite3_context_db_handle(ctx); + int iDb = pCsr->iDb; + sqlite3_result_text(ctx, db->aDb[iDb].zName, -1, SQLITE_STATIC); + break; + } } return SQLITE_OK; } @@ -161621,3 +163550,20702 @@ SQLITE_PRIVATE int sqlite3DbstatRegister(sqlite3 *db){ return SQLITE_OK; } #endif /* SQLITE_ENABLE_DBSTAT_VTAB */ /************** End of dbstat.c **********************************************/ +/************** Begin file json1.c *******************************************/ +/* +** 2015-08-12 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This SQLite extension implements JSON functions. The interface is +** modeled after MySQL JSON functions: +** +** https://dev.mysql.com/doc/refman/5.7/en/json.html +** +** For the time being, all JSON is stored as pure text. (We might add +** a JSONB type in the future which stores a binary encoding of JSON in +** a BLOB, but there is no support for JSONB in the current implementation. +** This implementation parses JSON text at 250 MB/s, so it is hard to see +** how JSONB might improve on that.) +*/ +#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_JSON1) +#if !defined(_SQLITEINT_H_) +/* #include "sqlite3ext.h" */ +#endif +SQLITE_EXTENSION_INIT1 +/* #include */ +/* #include */ +/* #include */ +/* #include */ + +#define UNUSED_PARAM(X) (void)(X) + +#ifndef LARGEST_INT64 +# define LARGEST_INT64 (0xffffffff|(((sqlite3_int64)0x7fffffff)<<32)) +# define SMALLEST_INT64 (((sqlite3_int64)-1) - LARGEST_INT64) +#endif + +/* +** Versions of isspace(), isalnum() and isdigit() to which it is safe +** to pass signed char values. +*/ +#ifdef sqlite3Isdigit + /* Use the SQLite core versions if this routine is part of the + ** SQLite amalgamation */ +# define safe_isdigit(x) sqlite3Isdigit(x) +# define safe_isalnum(x) sqlite3Isalnum(x) +#else + /* Use the standard library for separate compilation */ +#include /* amalgamator: keep */ +# define safe_isdigit(x) isdigit((unsigned char)(x)) +# define safe_isalnum(x) isalnum((unsigned char)(x)) +#endif + +/* +** Growing our own isspace() routine this way is twice as fast as +** the library isspace() function, resulting in a 7% overall performance +** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). +*/ +static const char jsonIsSpace[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; +#define safe_isspace(x) (jsonIsSpace[(unsigned char)x]) + +#ifndef SQLITE_AMALGAMATION + /* Unsigned integer types. These are already defined in the sqliteInt.h, + ** but the definitions need to be repeated for separate compilation. */ + typedef sqlite3_uint64 u64; + typedef unsigned int u32; + typedef unsigned char u8; +#endif + +/* Objects */ +typedef struct JsonString JsonString; +typedef struct JsonNode JsonNode; +typedef struct JsonParse JsonParse; + +/* An instance of this object represents a JSON string +** under construction. Really, this is a generic string accumulator +** that can be and is used to create strings other than JSON. +*/ +struct JsonString { + sqlite3_context *pCtx; /* Function context - put error messages here */ + char *zBuf; /* Append JSON content here */ + u64 nAlloc; /* Bytes of storage available in zBuf[] */ + u64 nUsed; /* Bytes of zBuf[] currently used */ + u8 bStatic; /* True if zBuf is static space */ + u8 bErr; /* True if an error has been encountered */ + char zSpace[100]; /* Initial static space */ +}; + +/* JSON type values +*/ +#define JSON_NULL 0 +#define JSON_TRUE 1 +#define JSON_FALSE 2 +#define JSON_INT 3 +#define JSON_REAL 4 +#define JSON_STRING 5 +#define JSON_ARRAY 6 +#define JSON_OBJECT 7 + +/* The "subtype" set for JSON values */ +#define JSON_SUBTYPE 74 /* Ascii for "J" */ + +/* +** Names of the various JSON types: +*/ +static const char * const jsonType[] = { + "null", "true", "false", "integer", "real", "text", "array", "object" +}; + +/* Bit values for the JsonNode.jnFlag field +*/ +#define JNODE_RAW 0x01 /* Content is raw, not JSON encoded */ +#define JNODE_ESCAPE 0x02 /* Content is text with \ escapes */ +#define JNODE_REMOVE 0x04 /* Do not output */ +#define JNODE_REPLACE 0x08 /* Replace with JsonNode.iVal */ +#define JNODE_APPEND 0x10 /* More ARRAY/OBJECT entries at u.iAppend */ +#define JNODE_LABEL 0x20 /* Is a label of an object */ + + +/* A single node of parsed JSON +*/ +struct JsonNode { + u8 eType; /* One of the JSON_ type values */ + u8 jnFlags; /* JNODE flags */ + u8 iVal; /* Replacement value when JNODE_REPLACE */ + u32 n; /* Bytes of content, or number of sub-nodes */ + union { + const char *zJContent; /* Content for INT, REAL, and STRING */ + u32 iAppend; /* More terms for ARRAY and OBJECT */ + u32 iKey; /* Key for ARRAY objects in json_tree() */ + } u; +}; + +/* A completely parsed JSON string +*/ +struct JsonParse { + u32 nNode; /* Number of slots of aNode[] used */ + u32 nAlloc; /* Number of slots of aNode[] allocated */ + JsonNode *aNode; /* Array of nodes containing the parse */ + const char *zJson; /* Original JSON string */ + u32 *aUp; /* Index of parent of each node */ + u8 oom; /* Set to true if out of memory */ + u8 nErr; /* Number of errors seen */ +}; + +/************************************************************************** +** Utility routines for dealing with JsonString objects +**************************************************************************/ + +/* Set the JsonString object to an empty string +*/ +static void jsonZero(JsonString *p){ + p->zBuf = p->zSpace; + p->nAlloc = sizeof(p->zSpace); + p->nUsed = 0; + p->bStatic = 1; +} + +/* Initialize the JsonString object +*/ +static void jsonInit(JsonString *p, sqlite3_context *pCtx){ + p->pCtx = pCtx; + p->bErr = 0; + jsonZero(p); +} + + +/* Free all allocated memory and reset the JsonString object back to its +** initial state. +*/ +static void jsonReset(JsonString *p){ + if( !p->bStatic ) sqlite3_free(p->zBuf); + jsonZero(p); +} + + +/* Report an out-of-memory (OOM) condition +*/ +static void jsonOom(JsonString *p){ + p->bErr = 1; + sqlite3_result_error_nomem(p->pCtx); + jsonReset(p); +} + +/* Enlarge pJson->zBuf so that it can hold at least N more bytes. +** Return zero on success. Return non-zero on an OOM error +*/ +static int jsonGrow(JsonString *p, u32 N){ + u64 nTotal = NnAlloc ? p->nAlloc*2 : p->nAlloc+N+10; + char *zNew; + if( p->bStatic ){ + if( p->bErr ) return 1; + zNew = sqlite3_malloc64(nTotal); + if( zNew==0 ){ + jsonOom(p); + return SQLITE_NOMEM; + } + memcpy(zNew, p->zBuf, (size_t)p->nUsed); + p->zBuf = zNew; + p->bStatic = 0; + }else{ + zNew = sqlite3_realloc64(p->zBuf, nTotal); + if( zNew==0 ){ + jsonOom(p); + return SQLITE_NOMEM; + } + p->zBuf = zNew; + } + p->nAlloc = nTotal; + return SQLITE_OK; +} + +/* Append N bytes from zIn onto the end of the JsonString string. +*/ +static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N){ + if( (N+p->nUsed >= p->nAlloc) && jsonGrow(p,N)!=0 ) return; + memcpy(p->zBuf+p->nUsed, zIn, N); + p->nUsed += N; +} + +/* Append formatted text (not to exceed N bytes) to the JsonString. +*/ +static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...){ + va_list ap; + if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return; + va_start(ap, zFormat); + sqlite3_vsnprintf(N, p->zBuf+p->nUsed, zFormat, ap); + va_end(ap); + p->nUsed += (int)strlen(p->zBuf+p->nUsed); +} + +/* Append a single character +*/ +static void jsonAppendChar(JsonString *p, char c){ + if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return; + p->zBuf[p->nUsed++] = c; +} + +/* Append a comma separator to the output buffer, if the previous +** character is not '[' or '{'. +*/ +static void jsonAppendSeparator(JsonString *p){ + char c; + if( p->nUsed==0 ) return; + c = p->zBuf[p->nUsed-1]; + if( c!='[' && c!='{' ) jsonAppendChar(p, ','); +} + +/* Append the N-byte string in zIn to the end of the JsonString string +** under construction. Enclose the string in "..." and escape +** any double-quotes or backslash characters contained within the +** string. +*/ +static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ + u32 i; + if( (N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0 ) return; + p->zBuf[p->nUsed++] = '"'; + for(i=0; inUsed+N+3-i > p->nAlloc) && jsonGrow(p,N+3-i)!=0 ) return; + p->zBuf[p->nUsed++] = '\\'; + } + p->zBuf[p->nUsed++] = c; + } + p->zBuf[p->nUsed++] = '"'; + assert( p->nUsednAlloc ); +} + +/* +** Append a function parameter value to the JSON string under +** construction. +*/ +static void jsonAppendValue( + JsonString *p, /* Append to this JSON string */ + sqlite3_value *pValue /* Value to append */ +){ + switch( sqlite3_value_type(pValue) ){ + case SQLITE_NULL: { + jsonAppendRaw(p, "null", 4); + break; + } + case SQLITE_INTEGER: + case SQLITE_FLOAT: { + const char *z = (const char*)sqlite3_value_text(pValue); + u32 n = (u32)sqlite3_value_bytes(pValue); + jsonAppendRaw(p, z, n); + break; + } + case SQLITE_TEXT: { + const char *z = (const char*)sqlite3_value_text(pValue); + u32 n = (u32)sqlite3_value_bytes(pValue); + if( sqlite3_value_subtype(pValue)==JSON_SUBTYPE ){ + jsonAppendRaw(p, z, n); + }else{ + jsonAppendString(p, z, n); + } + break; + } + default: { + if( p->bErr==0 ){ + sqlite3_result_error(p->pCtx, "JSON cannot hold BLOB values", -1); + p->bErr = 1; + jsonReset(p); + } + break; + } + } +} + + +/* Make the JSON in p the result of the SQL function. +*/ +static void jsonResult(JsonString *p){ + if( p->bErr==0 ){ + sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, + p->bStatic ? SQLITE_TRANSIENT : sqlite3_free, + SQLITE_UTF8); + jsonZero(p); + } + assert( p->bStatic ); +} + +/************************************************************************** +** Utility routines for dealing with JsonNode and JsonParse objects +**************************************************************************/ + +/* +** Return the number of consecutive JsonNode slots need to represent +** the parsed JSON at pNode. The minimum answer is 1. For ARRAY and +** OBJECT types, the number might be larger. +** +** Appended elements are not counted. The value returned is the number +** by which the JsonNode counter should increment in order to go to the +** next peer value. +*/ +static u32 jsonNodeSize(JsonNode *pNode){ + return pNode->eType>=JSON_ARRAY ? pNode->n+1 : 1; +} + +/* +** Reclaim all memory allocated by a JsonParse object. But do not +** delete the JsonParse object itself. +*/ +static void jsonParseReset(JsonParse *pParse){ + sqlite3_free(pParse->aNode); + pParse->aNode = 0; + pParse->nNode = 0; + pParse->nAlloc = 0; + sqlite3_free(pParse->aUp); + pParse->aUp = 0; +} + +/* +** Convert the JsonNode pNode into a pure JSON string and +** append to pOut. Subsubstructure is also included. Return +** the number of JsonNode objects that are encoded. +*/ +static void jsonRenderNode( + JsonNode *pNode, /* The node to render */ + JsonString *pOut, /* Write JSON here */ + sqlite3_value **aReplace /* Replacement values */ +){ + switch( pNode->eType ){ + default: { + assert( pNode->eType==JSON_NULL ); + jsonAppendRaw(pOut, "null", 4); + break; + } + case JSON_TRUE: { + jsonAppendRaw(pOut, "true", 4); + break; + } + case JSON_FALSE: { + jsonAppendRaw(pOut, "false", 5); + break; + } + case JSON_STRING: { + if( pNode->jnFlags & JNODE_RAW ){ + jsonAppendString(pOut, pNode->u.zJContent, pNode->n); + break; + } + /* Fall through into the next case */ + } + case JSON_REAL: + case JSON_INT: { + jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + break; + } + case JSON_ARRAY: { + u32 j = 1; + jsonAppendChar(pOut, '['); + for(;;){ + while( j<=pNode->n ){ + if( pNode[j].jnFlags & (JNODE_REMOVE|JNODE_REPLACE) ){ + if( pNode[j].jnFlags & JNODE_REPLACE ){ + jsonAppendSeparator(pOut); + jsonAppendValue(pOut, aReplace[pNode[j].iVal]); + } + }else{ + jsonAppendSeparator(pOut); + jsonRenderNode(&pNode[j], pOut, aReplace); + } + j += jsonNodeSize(&pNode[j]); + } + if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + pNode = &pNode[pNode->u.iAppend]; + j = 1; + } + jsonAppendChar(pOut, ']'); + break; + } + case JSON_OBJECT: { + u32 j = 1; + jsonAppendChar(pOut, '{'); + for(;;){ + while( j<=pNode->n ){ + if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 ){ + jsonAppendSeparator(pOut); + jsonRenderNode(&pNode[j], pOut, aReplace); + jsonAppendChar(pOut, ':'); + if( pNode[j+1].jnFlags & JNODE_REPLACE ){ + jsonAppendValue(pOut, aReplace[pNode[j+1].iVal]); + }else{ + jsonRenderNode(&pNode[j+1], pOut, aReplace); + } + } + j += 1 + jsonNodeSize(&pNode[j+1]); + } + if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + pNode = &pNode[pNode->u.iAppend]; + j = 1; + } + jsonAppendChar(pOut, '}'); + break; + } + } +} + +/* +** Return a JsonNode and all its descendents as a JSON string. +*/ +static void jsonReturnJson( + JsonNode *pNode, /* Node to return */ + sqlite3_context *pCtx, /* Return value for this function */ + sqlite3_value **aReplace /* Array of replacement values */ +){ + JsonString s; + jsonInit(&s, pCtx); + jsonRenderNode(pNode, &s, aReplace); + jsonResult(&s); + sqlite3_result_subtype(pCtx, JSON_SUBTYPE); +} + +/* +** Make the JsonNode the return value of the function. +*/ +static void jsonReturn( + JsonNode *pNode, /* Node to return */ + sqlite3_context *pCtx, /* Return value for this function */ + sqlite3_value **aReplace /* Array of replacement values */ +){ + switch( pNode->eType ){ + default: { + assert( pNode->eType==JSON_NULL ); + sqlite3_result_null(pCtx); + break; + } + case JSON_TRUE: { + sqlite3_result_int(pCtx, 1); + break; + } + case JSON_FALSE: { + sqlite3_result_int(pCtx, 0); + break; + } + case JSON_INT: { + sqlite3_int64 i = 0; + const char *z = pNode->u.zJContent; + if( z[0]=='-' ){ z++; } + while( z[0]>='0' && z[0]<='9' ){ + unsigned v = *(z++) - '0'; + if( i>=LARGEST_INT64/10 ){ + if( i>LARGEST_INT64/10 ) goto int_as_real; + if( z[0]>='0' && z[0]<='9' ) goto int_as_real; + if( v==9 ) goto int_as_real; + if( v==8 ){ + if( pNode->u.zJContent[0]=='-' ){ + sqlite3_result_int64(pCtx, SMALLEST_INT64); + goto int_done; + }else{ + goto int_as_real; + } + } + } + i = i*10 + v; + } + if( pNode->u.zJContent[0]=='-' ){ i = -i; } + sqlite3_result_int64(pCtx, i); + int_done: + break; + int_as_real: /* fall through to real */; + } + case JSON_REAL: { + double r; +#ifdef SQLITE_AMALGAMATION + const char *z = pNode->u.zJContent; + sqlite3AtoF(z, &r, sqlite3Strlen30(z), SQLITE_UTF8); +#else + r = strtod(pNode->u.zJContent, 0); +#endif + sqlite3_result_double(pCtx, r); + break; + } + case JSON_STRING: { +#if 0 /* Never happens because JNODE_RAW is only set by json_set(), + ** json_insert() and json_replace() and those routines do not + ** call jsonReturn() */ + if( pNode->jnFlags & JNODE_RAW ){ + sqlite3_result_text(pCtx, pNode->u.zJContent, pNode->n, + SQLITE_TRANSIENT); + }else +#endif + assert( (pNode->jnFlags & JNODE_RAW)==0 ); + if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){ + /* JSON formatted without any backslash-escapes */ + sqlite3_result_text(pCtx, pNode->u.zJContent+1, pNode->n-2, + SQLITE_TRANSIENT); + }else{ + /* Translate JSON formatted string into raw text */ + u32 i; + u32 n = pNode->n; + const char *z = pNode->u.zJContent; + char *zOut; + u32 j; + zOut = sqlite3_malloc( n+1 ); + if( zOut==0 ){ + sqlite3_result_error_nomem(pCtx); + break; + } + for(i=1, j=0; i='0' && c<='9' ) v = v*16 + c - '0'; + else if( c>='A' && c<='F' ) v = v*16 + c - 'A' + 10; + else if( c>='a' && c<='f' ) v = v*16 + c - 'a' + 10; + else break; + } + if( v==0 ) break; + if( v<=0x7f ){ + zOut[j++] = (char)v; + }else if( v<=0x7ff ){ + zOut[j++] = (char)(0xc0 | (v>>6)); + zOut[j++] = 0x80 | (v&0x3f); + }else{ + zOut[j++] = (char)(0xe0 | (v>>12)); + zOut[j++] = 0x80 | ((v>>6)&0x3f); + zOut[j++] = 0x80 | (v&0x3f); + } + }else{ + if( c=='b' ){ + c = '\b'; + }else if( c=='f' ){ + c = '\f'; + }else if( c=='n' ){ + c = '\n'; + }else if( c=='r' ){ + c = '\r'; + }else if( c=='t' ){ + c = '\t'; + } + zOut[j++] = c; + } + } + } + zOut[j] = 0; + sqlite3_result_text(pCtx, zOut, j, sqlite3_free); + } + break; + } + case JSON_ARRAY: + case JSON_OBJECT: { + jsonReturnJson(pNode, pCtx, aReplace); + break; + } + } +} + +/* Forward reference */ +static int jsonParseAddNode(JsonParse*,u32,u32,const char*); + +/* +** A macro to hint to the compiler that a function should not be +** inlined. +*/ +#if defined(__GNUC__) +# define JSON_NOINLINE __attribute__((noinline)) +#elif defined(_MSC_VER) && _MSC_VER>=1310 +# define JSON_NOINLINE __declspec(noinline) +#else +# define JSON_NOINLINE +#endif + + +static JSON_NOINLINE int jsonParseAddNodeExpand( + JsonParse *pParse, /* Append the node to this object */ + u32 eType, /* Node type */ + u32 n, /* Content size or sub-node count */ + const char *zContent /* Content */ +){ + u32 nNew; + JsonNode *pNew; + assert( pParse->nNode>=pParse->nAlloc ); + if( pParse->oom ) return -1; + nNew = pParse->nAlloc*2 + 10; + pNew = sqlite3_realloc(pParse->aNode, sizeof(JsonNode)*nNew); + if( pNew==0 ){ + pParse->oom = 1; + return -1; + } + pParse->nAlloc = nNew; + pParse->aNode = pNew; + assert( pParse->nNodenAlloc ); + return jsonParseAddNode(pParse, eType, n, zContent); +} + +/* +** Create a new JsonNode instance based on the arguments and append that +** instance to the JsonParse. Return the index in pParse->aNode[] of the +** new node, or -1 if a memory allocation fails. +*/ +static int jsonParseAddNode( + JsonParse *pParse, /* Append the node to this object */ + u32 eType, /* Node type */ + u32 n, /* Content size or sub-node count */ + const char *zContent /* Content */ +){ + JsonNode *p; + if( pParse->nNode>=pParse->nAlloc ){ + return jsonParseAddNodeExpand(pParse, eType, n, zContent); + } + p = &pParse->aNode[pParse->nNode]; + p->eType = (u8)eType; + p->jnFlags = 0; + p->iVal = 0; + p->n = n; + p->u.zJContent = zContent; + return pParse->nNode++; +} + +/* +** Parse a single JSON value which begins at pParse->zJson[i]. Return the +** index of the first character past the end of the value parsed. +** +** Return negative for a syntax error. Special cases: return -2 if the +** first non-whitespace character is '}' and return -3 if the first +** non-whitespace character is ']'. +*/ +static int jsonParseValue(JsonParse *pParse, u32 i){ + char c; + u32 j; + int iThis; + int x; + JsonNode *pNode; + while( safe_isspace(pParse->zJson[i]) ){ i++; } + if( (c = pParse->zJson[i])=='{' ){ + /* Parse object */ + iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); + if( iThis<0 ) return -1; + for(j=i+1;;j++){ + while( safe_isspace(pParse->zJson[j]) ){ j++; } + x = jsonParseValue(pParse, j); + if( x<0 ){ + if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1; + return -1; + } + if( pParse->oom ) return -1; + pNode = &pParse->aNode[pParse->nNode-1]; + if( pNode->eType!=JSON_STRING ) return -1; + pNode->jnFlags |= JNODE_LABEL; + j = x; + while( safe_isspace(pParse->zJson[j]) ){ j++; } + if( pParse->zJson[j]!=':' ) return -1; + j++; + x = jsonParseValue(pParse, j); + if( x<0 ) return -1; + j = x; + while( safe_isspace(pParse->zJson[j]) ){ j++; } + c = pParse->zJson[j]; + if( c==',' ) continue; + if( c!='}' ) return -1; + break; + } + pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + return j+1; + }else if( c=='[' ){ + /* Parse array */ + iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); + if( iThis<0 ) return -1; + for(j=i+1;;j++){ + while( safe_isspace(pParse->zJson[j]) ){ j++; } + x = jsonParseValue(pParse, j); + if( x<0 ){ + if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1; + return -1; + } + j = x; + while( safe_isspace(pParse->zJson[j]) ){ j++; } + c = pParse->zJson[j]; + if( c==',' ) continue; + if( c!=']' ) return -1; + break; + } + pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + return j+1; + }else if( c=='"' ){ + /* Parse string */ + u8 jnFlags = 0; + j = i+1; + for(;;){ + c = pParse->zJson[j]; + if( c==0 ) return -1; + if( c=='\\' ){ + c = pParse->zJson[++j]; + if( c==0 ) return -1; + jnFlags = JNODE_ESCAPE; + }else if( c=='"' ){ + break; + } + j++; + } + jsonParseAddNode(pParse, JSON_STRING, j+1-i, &pParse->zJson[i]); + if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; + return j+1; + }else if( c=='n' + && strncmp(pParse->zJson+i,"null",4)==0 + && !safe_isalnum(pParse->zJson[i+4]) ){ + jsonParseAddNode(pParse, JSON_NULL, 0, 0); + return i+4; + }else if( c=='t' + && strncmp(pParse->zJson+i,"true",4)==0 + && !safe_isalnum(pParse->zJson[i+4]) ){ + jsonParseAddNode(pParse, JSON_TRUE, 0, 0); + return i+4; + }else if( c=='f' + && strncmp(pParse->zJson+i,"false",5)==0 + && !safe_isalnum(pParse->zJson[i+5]) ){ + jsonParseAddNode(pParse, JSON_FALSE, 0, 0); + return i+5; + }else if( c=='-' || (c>='0' && c<='9') ){ + /* Parse number */ + u8 seenDP = 0; + u8 seenE = 0; + j = i+1; + for(;; j++){ + c = pParse->zJson[j]; + if( c>='0' && c<='9' ) continue; + if( c=='.' ){ + if( pParse->zJson[j-1]=='-' ) return -1; + if( seenDP ) return -1; + seenDP = 1; + continue; + } + if( c=='e' || c=='E' ){ + if( pParse->zJson[j-1]<'0' ) return -1; + if( seenE ) return -1; + seenDP = seenE = 1; + c = pParse->zJson[j+1]; + if( c=='+' || c=='-' ){ + j++; + c = pParse->zJson[j+1]; + } + if( c<'0' || c>'9' ) return -1; + continue; + } + break; + } + if( pParse->zJson[j-1]<'0' ) return -1; + jsonParseAddNode(pParse, seenDP ? JSON_REAL : JSON_INT, + j - i, &pParse->zJson[i]); + return j; + }else if( c=='}' ){ + return -2; /* End of {...} */ + }else if( c==']' ){ + return -3; /* End of [...] */ + }else if( c==0 ){ + return 0; /* End of file */ + }else{ + return -1; /* Syntax error */ + } +} + +/* +** Parse a complete JSON string. Return 0 on success or non-zero if there +** are any errors. If an error occurs, free all memory associated with +** pParse. +** +** pParse is uninitialized when this routine is called. +*/ +static int jsonParse( + JsonParse *pParse, /* Initialize and fill this JsonParse object */ + sqlite3_context *pCtx, /* Report errors here */ + const char *zJson /* Input JSON text to be parsed */ +){ + int i; + memset(pParse, 0, sizeof(*pParse)); + if( zJson==0 ) return 1; + pParse->zJson = zJson; + i = jsonParseValue(pParse, 0); + if( pParse->oom ) i = -1; + if( i>0 ){ + while( safe_isspace(zJson[i]) ) i++; + if( zJson[i] ) i = -1; + } + if( i<=0 ){ + if( pCtx!=0 ){ + if( pParse->oom ){ + sqlite3_result_error_nomem(pCtx); + }else{ + sqlite3_result_error(pCtx, "malformed JSON", -1); + } + } + jsonParseReset(pParse); + return 1; + } + return 0; +} + +/* Mark node i of pParse as being a child of iParent. Call recursively +** to fill in all the descendants of node i. +*/ +static void jsonParseFillInParentage(JsonParse *pParse, u32 i, u32 iParent){ + JsonNode *pNode = &pParse->aNode[i]; + u32 j; + pParse->aUp[i] = iParent; + switch( pNode->eType ){ + case JSON_ARRAY: { + for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j)){ + jsonParseFillInParentage(pParse, i+j, i); + } + break; + } + case JSON_OBJECT: { + for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j+1)+1){ + pParse->aUp[i+j] = i; + jsonParseFillInParentage(pParse, i+j+1, i); + } + break; + } + default: { + break; + } + } +} + +/* +** Compute the parentage of all nodes in a completed parse. +*/ +static int jsonParseFindParents(JsonParse *pParse){ + u32 *aUp; + assert( pParse->aUp==0 ); + aUp = pParse->aUp = sqlite3_malloc( sizeof(u32)*pParse->nNode ); + if( aUp==0 ){ + pParse->oom = 1; + return SQLITE_NOMEM; + } + jsonParseFillInParentage(pParse, 0, 0); + return SQLITE_OK; +} + +/* +** Compare the OBJECT label at pNode against zKey,nKey. Return true on +** a match. +*/ +static int jsonLabelCompare(JsonNode *pNode, const char *zKey, u32 nKey){ + if( pNode->jnFlags & JNODE_RAW ){ + if( pNode->n!=nKey ) return 0; + return strncmp(pNode->u.zJContent, zKey, nKey)==0; + }else{ + if( pNode->n!=nKey+2 ) return 0; + return strncmp(pNode->u.zJContent+1, zKey, nKey)==0; + } +} + +/* forward declaration */ +static JsonNode *jsonLookupAppend(JsonParse*,const char*,int*,const char**); + +/* +** Search along zPath to find the node specified. Return a pointer +** to that node, or NULL if zPath is malformed or if there is no such +** node. +** +** If pApnd!=0, then try to append new nodes to complete zPath if it is +** possible to do so and if no existing node corresponds to zPath. If +** new nodes are appended *pApnd is set to 1. +*/ +static JsonNode *jsonLookupStep( + JsonParse *pParse, /* The JSON to search */ + u32 iRoot, /* Begin the search at this node */ + const char *zPath, /* The path to search */ + int *pApnd, /* Append nodes to complete path if not NULL */ + const char **pzErr /* Make *pzErr point to any syntax error in zPath */ +){ + u32 i, j, nKey; + const char *zKey; + JsonNode *pRoot = &pParse->aNode[iRoot]; + if( zPath[0]==0 ) return pRoot; + if( zPath[0]=='.' ){ + if( pRoot->eType!=JSON_OBJECT ) return 0; + zPath++; + if( zPath[0]=='"' ){ + zKey = zPath + 1; + for(i=1; zPath[i] && zPath[i]!='"'; i++){} + nKey = i-1; + if( zPath[i] ){ + i++; + }else{ + *pzErr = zPath; + return 0; + } + }else{ + zKey = zPath; + for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){} + nKey = i; + } + if( nKey==0 ){ + *pzErr = zPath; + return 0; + } + j = 1; + for(;;){ + while( j<=pRoot->n ){ + if( jsonLabelCompare(pRoot+j, zKey, nKey) ){ + return jsonLookupStep(pParse, iRoot+j+1, &zPath[i], pApnd, pzErr); + } + j++; + j += jsonNodeSize(&pRoot[j]); + } + if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; + iRoot += pRoot->u.iAppend; + pRoot = &pParse->aNode[iRoot]; + j = 1; + } + if( pApnd ){ + u32 iStart, iLabel; + JsonNode *pNode; + iStart = jsonParseAddNode(pParse, JSON_OBJECT, 2, 0); + iLabel = jsonParseAddNode(pParse, JSON_STRING, i, zPath); + zPath += i; + pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); + if( pParse->oom ) return 0; + if( pNode ){ + pRoot = &pParse->aNode[iRoot]; + pRoot->u.iAppend = iStart - iRoot; + pRoot->jnFlags |= JNODE_APPEND; + pParse->aNode[iLabel].jnFlags |= JNODE_RAW; + } + return pNode; + } + }else if( zPath[0]=='[' && safe_isdigit(zPath[1]) ){ + if( pRoot->eType!=JSON_ARRAY ) return 0; + i = 0; + j = 1; + while( safe_isdigit(zPath[j]) ){ + i = i*10 + zPath[j] - '0'; + j++; + } + if( zPath[j]!=']' ){ + *pzErr = zPath; + return 0; + } + zPath += j + 1; + j = 1; + for(;;){ + while( j<=pRoot->n && (i>0 || (pRoot[j].jnFlags & JNODE_REMOVE)!=0) ){ + if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 ) i--; + j += jsonNodeSize(&pRoot[j]); + } + if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; + iRoot += pRoot->u.iAppend; + pRoot = &pParse->aNode[iRoot]; + j = 1; + } + if( j<=pRoot->n ){ + return jsonLookupStep(pParse, iRoot+j, zPath, pApnd, pzErr); + } + if( i==0 && pApnd ){ + u32 iStart; + JsonNode *pNode; + iStart = jsonParseAddNode(pParse, JSON_ARRAY, 1, 0); + pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); + if( pParse->oom ) return 0; + if( pNode ){ + pRoot = &pParse->aNode[iRoot]; + pRoot->u.iAppend = iStart - iRoot; + pRoot->jnFlags |= JNODE_APPEND; + } + return pNode; + } + }else{ + *pzErr = zPath; + } + return 0; +} + +/* +** Append content to pParse that will complete zPath. Return a pointer +** to the inserted node, or return NULL if the append fails. +*/ +static JsonNode *jsonLookupAppend( + JsonParse *pParse, /* Append content to the JSON parse */ + const char *zPath, /* Description of content to append */ + int *pApnd, /* Set this flag to 1 */ + const char **pzErr /* Make this point to any syntax error */ +){ + *pApnd = 1; + if( zPath[0]==0 ){ + jsonParseAddNode(pParse, JSON_NULL, 0, 0); + return pParse->oom ? 0 : &pParse->aNode[pParse->nNode-1]; + } + if( zPath[0]=='.' ){ + jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); + }else if( strncmp(zPath,"[0]",3)==0 ){ + jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); + }else{ + return 0; + } + if( pParse->oom ) return 0; + return jsonLookupStep(pParse, pParse->nNode-1, zPath, pApnd, pzErr); +} + +/* +** Return the text of a syntax error message on a JSON path. Space is +** obtained from sqlite3_malloc(). +*/ +static char *jsonPathSyntaxError(const char *zErr){ + return sqlite3_mprintf("JSON path error near '%q'", zErr); +} + +/* +** Do a node lookup using zPath. Return a pointer to the node on success. +** Return NULL if not found or if there is an error. +** +** On an error, write an error message into pCtx and increment the +** pParse->nErr counter. +** +** If pApnd!=NULL then try to append missing nodes and set *pApnd = 1 if +** nodes are appended. +*/ +static JsonNode *jsonLookup( + JsonParse *pParse, /* The JSON to search */ + const char *zPath, /* The path to search */ + int *pApnd, /* Append nodes to complete path if not NULL */ + sqlite3_context *pCtx /* Report errors here, if not NULL */ +){ + const char *zErr = 0; + JsonNode *pNode = 0; + char *zMsg; + + if( zPath==0 ) return 0; + if( zPath[0]!='$' ){ + zErr = zPath; + goto lookup_err; + } + zPath++; + pNode = jsonLookupStep(pParse, 0, zPath, pApnd, &zErr); + if( zErr==0 ) return pNode; + +lookup_err: + pParse->nErr++; + assert( zErr!=0 && pCtx!=0 ); + zMsg = jsonPathSyntaxError(zErr); + if( zMsg ){ + sqlite3_result_error(pCtx, zMsg, -1); + sqlite3_free(zMsg); + }else{ + sqlite3_result_error_nomem(pCtx); + } + return 0; +} + + +/* +** Report the wrong number of arguments for json_insert(), json_replace() +** or json_set(). +*/ +static void jsonWrongNumArgs( + sqlite3_context *pCtx, + const char *zFuncName +){ + char *zMsg = sqlite3_mprintf("json_%s() needs an odd number of arguments", + zFuncName); + sqlite3_result_error(pCtx, zMsg, -1); + sqlite3_free(zMsg); +} + + +/**************************************************************************** +** SQL functions used for testing and debugging +****************************************************************************/ + +#ifdef SQLITE_DEBUG +/* +** The json_parse(JSON) function returns a string which describes +** a parse of the JSON provided. Or it returns NULL if JSON is not +** well-formed. +*/ +static void jsonParseFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonString s; /* Output string - not real JSON */ + JsonParse x; /* The parse */ + u32 i; + + assert( argc==1 ); + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + jsonParseFindParents(&x); + jsonInit(&s, ctx); + for(i=0; ieType==JSON_ARRAY ){ + assert( (pNode->jnFlags & JNODE_APPEND)==0 ); + for(i=1; i<=pNode->n; n++){ + i += jsonNodeSize(&pNode[i]); + } + } + if( x.nErr==0 ) sqlite3_result_int64(ctx, n); + jsonParseReset(&x); +} + +/* +** json_extract(JSON, PATH, ...) +** +** Return the element described by PATH. Return NULL if there is no +** PATH element. If there are multiple PATHs, then return a JSON array +** with the result from each path. Throw an error if the JSON or any PATH +** is malformed. +*/ +static void jsonExtractFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The parse */ + JsonNode *pNode; + const char *zPath; + JsonString jx; + int i; + + if( argc<2 ) return; + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + jsonInit(&jx, ctx); + jsonAppendChar(&jx, '['); + for(i=1; i2 ){ + jsonAppendSeparator(&jx); + if( pNode ){ + jsonRenderNode(pNode, &jx, 0); + }else{ + jsonAppendRaw(&jx, "null", 4); + } + }else if( pNode ){ + jsonReturn(pNode, ctx, 0); + } + } + if( argc>2 && i==argc ){ + jsonAppendChar(&jx, ']'); + jsonResult(&jx); + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + } + jsonReset(&jx); + jsonParseReset(&x); +} + +/* +** Implementation of the json_object(NAME,VALUE,...) function. Return a JSON +** object that contains all name/value given in arguments. Or if any name +** is not a string or if any value is a BLOB, throw an error. +*/ +static void jsonObjectFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + int i; + JsonString jx; + const char *z; + u32 n; + + if( argc&1 ){ + sqlite3_result_error(ctx, "json_object() requires an even number " + "of arguments", -1); + return; + } + jsonInit(&jx, ctx); + jsonAppendChar(&jx, '{'); + for(i=0; ijnFlags |= JNODE_REMOVE; + } + if( (x.aNode[0].jnFlags & JNODE_REMOVE)==0 ){ + jsonReturnJson(x.aNode, ctx, 0); + } +remove_done: + jsonParseReset(&x); +} + +/* +** json_replace(JSON, PATH, VALUE, ...) +** +** Replace the value at PATH with VALUE. If PATH does not already exist, +** this routine is a no-op. If JSON or PATH is malformed, throw an error. +*/ +static void jsonReplaceFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The parse */ + JsonNode *pNode; + const char *zPath; + u32 i; + + if( argc<1 ) return; + if( (argc&1)==0 ) { + jsonWrongNumArgs(ctx, "replace"); + return; + } + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + assert( x.nNode ); + for(i=1; i<(u32)argc; i+=2){ + zPath = (const char*)sqlite3_value_text(argv[i]); + pNode = jsonLookup(&x, zPath, 0, ctx); + if( x.nErr ) goto replace_err; + if( pNode ){ + pNode->jnFlags |= (u8)JNODE_REPLACE; + pNode->iVal = (u8)(i+1); + } + } + if( x.aNode[0].jnFlags & JNODE_REPLACE ){ + sqlite3_result_value(ctx, argv[x.aNode[0].iVal]); + }else{ + jsonReturnJson(x.aNode, ctx, argv); + } +replace_err: + jsonParseReset(&x); +} + +/* +** json_set(JSON, PATH, VALUE, ...) +** +** Set the value at PATH to VALUE. Create the PATH if it does not already +** exist. Overwrite existing values that do exist. +** If JSON or PATH is malformed, throw an error. +** +** json_insert(JSON, PATH, VALUE, ...) +** +** Create PATH and initialize it to VALUE. If PATH already exists, this +** routine is a no-op. If JSON or PATH is malformed, throw an error. +*/ +static void jsonSetFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The parse */ + JsonNode *pNode; + const char *zPath; + u32 i; + int bApnd; + int bIsSet = *(int*)sqlite3_user_data(ctx); + + if( argc<1 ) return; + if( (argc&1)==0 ) { + jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); + return; + } + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + assert( x.nNode ); + for(i=1; i<(u32)argc; i+=2){ + zPath = (const char*)sqlite3_value_text(argv[i]); + bApnd = 0; + pNode = jsonLookup(&x, zPath, &bApnd, ctx); + if( x.oom ){ + sqlite3_result_error_nomem(ctx); + goto jsonSetDone; + }else if( x.nErr ){ + goto jsonSetDone; + }else if( pNode && (bApnd || bIsSet) ){ + pNode->jnFlags |= (u8)JNODE_REPLACE; + pNode->iVal = (u8)(i+1); + } + } + if( x.aNode[0].jnFlags & JNODE_REPLACE ){ + sqlite3_result_value(ctx, argv[x.aNode[0].iVal]); + }else{ + jsonReturnJson(x.aNode, ctx, argv); + } +jsonSetDone: + jsonParseReset(&x); +} + +/* +** json_type(JSON) +** json_type(JSON, PATH) +** +** Return the top-level "type" of a JSON string. Throw an error if +** either the JSON or PATH inputs are not well-formed. +*/ +static void jsonTypeFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The parse */ + const char *zPath; + JsonNode *pNode; + + if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; + assert( x.nNode ); + if( argc==2 ){ + zPath = (const char*)sqlite3_value_text(argv[1]); + pNode = jsonLookup(&x, zPath, 0, ctx); + }else{ + pNode = x.aNode; + } + if( pNode ){ + sqlite3_result_text(ctx, jsonType[pNode->eType], -1, SQLITE_STATIC); + } + jsonParseReset(&x); +} + +/* +** json_valid(JSON) +** +** Return 1 if JSON is a well-formed JSON string according to RFC-7159. +** Return 0 otherwise. +*/ +static void jsonValidFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse x; /* The parse */ + int rc = 0; + + UNUSED_PARAM(argc); + if( jsonParse(&x, 0, (const char*)sqlite3_value_text(argv[0]))==0 ){ + rc = 1; + } + jsonParseReset(&x); + sqlite3_result_int(ctx, rc); +} + +#ifndef SQLITE_OMIT_VIRTUALTABLE +/**************************************************************************** +** The json_each virtual table +****************************************************************************/ +typedef struct JsonEachCursor JsonEachCursor; +struct JsonEachCursor { + sqlite3_vtab_cursor base; /* Base class - must be first */ + u32 iRowid; /* The rowid */ + u32 iBegin; /* The first node of the scan */ + u32 i; /* Index in sParse.aNode[] of current row */ + u32 iEnd; /* EOF when i equals or exceeds this value */ + u8 eType; /* Type of top-level element */ + u8 bRecursive; /* True for json_tree(). False for json_each() */ + char *zJson; /* Input JSON */ + char *zRoot; /* Path by which to filter zJson */ + JsonParse sParse; /* Parse of the input JSON */ +}; + +/* Constructor for the json_each virtual table */ +static int jsonEachConnect( + sqlite3 *db, + void *pAux, + int argc, const char *const*argv, + sqlite3_vtab **ppVtab, + char **pzErr +){ + sqlite3_vtab *pNew; + int rc; + +/* Column numbers */ +#define JEACH_KEY 0 +#define JEACH_VALUE 1 +#define JEACH_TYPE 2 +#define JEACH_ATOM 3 +#define JEACH_ID 4 +#define JEACH_PARENT 5 +#define JEACH_FULLKEY 6 +#define JEACH_PATH 7 +#define JEACH_JSON 8 +#define JEACH_ROOT 9 + + UNUSED_PARAM(pzErr); + UNUSED_PARAM(argv); + UNUSED_PARAM(argc); + UNUSED_PARAM(pAux); + rc = sqlite3_declare_vtab(db, + "CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path," + "json HIDDEN,root HIDDEN)"); + if( rc==SQLITE_OK ){ + pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); + if( pNew==0 ) return SQLITE_NOMEM; + memset(pNew, 0, sizeof(*pNew)); + } + return rc; +} + +/* destructor for json_each virtual table */ +static int jsonEachDisconnect(sqlite3_vtab *pVtab){ + sqlite3_free(pVtab); + return SQLITE_OK; +} + +/* constructor for a JsonEachCursor object for json_each(). */ +static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ + JsonEachCursor *pCur; + + UNUSED_PARAM(p); + pCur = sqlite3_malloc( sizeof(*pCur) ); + if( pCur==0 ) return SQLITE_NOMEM; + memset(pCur, 0, sizeof(*pCur)); + *ppCursor = &pCur->base; + return SQLITE_OK; +} + +/* constructor for a JsonEachCursor object for json_tree(). */ +static int jsonEachOpenTree(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ + int rc = jsonEachOpenEach(p, ppCursor); + if( rc==SQLITE_OK ){ + JsonEachCursor *pCur = (JsonEachCursor*)*ppCursor; + pCur->bRecursive = 1; + } + return rc; +} + +/* Reset a JsonEachCursor back to its original state. Free any memory +** held. */ +static void jsonEachCursorReset(JsonEachCursor *p){ + sqlite3_free(p->zJson); + sqlite3_free(p->zRoot); + jsonParseReset(&p->sParse); + p->iRowid = 0; + p->i = 0; + p->iEnd = 0; + p->eType = 0; + p->zJson = 0; + p->zRoot = 0; +} + +/* Destructor for a jsonEachCursor object */ +static int jsonEachClose(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + jsonEachCursorReset(p); + sqlite3_free(cur); + return SQLITE_OK; +} + +/* Return TRUE if the jsonEachCursor object has been advanced off the end +** of the JSON object */ +static int jsonEachEof(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + return p->i >= p->iEnd; +} + +/* Advance the cursor to the next element for json_tree() */ +static int jsonEachNext(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + if( p->bRecursive ){ + if( p->sParse.aNode[p->i].jnFlags & JNODE_LABEL ) p->i++; + p->i++; + p->iRowid++; + if( p->iiEnd ){ + u32 iUp = p->sParse.aUp[p->i]; + JsonNode *pUp = &p->sParse.aNode[iUp]; + p->eType = pUp->eType; + if( pUp->eType==JSON_ARRAY ){ + if( iUp==p->i-1 ){ + pUp->u.iKey = 0; + }else{ + pUp->u.iKey++; + } + } + } + }else{ + switch( p->eType ){ + case JSON_ARRAY: { + p->i += jsonNodeSize(&p->sParse.aNode[p->i]); + p->iRowid++; + break; + } + case JSON_OBJECT: { + p->i += 1 + jsonNodeSize(&p->sParse.aNode[p->i+1]); + p->iRowid++; + break; + } + default: { + p->i = p->iEnd; + break; + } + } + } + return SQLITE_OK; +} + +/* Append the name of the path for element i to pStr +*/ +static void jsonEachComputePath( + JsonEachCursor *p, /* The cursor */ + JsonString *pStr, /* Write the path here */ + u32 i /* Path to this element */ +){ + JsonNode *pNode, *pUp; + u32 iUp; + if( i==0 ){ + jsonAppendChar(pStr, '$'); + return; + } + iUp = p->sParse.aUp[i]; + jsonEachComputePath(p, pStr, iUp); + pNode = &p->sParse.aNode[i]; + pUp = &p->sParse.aNode[iUp]; + if( pUp->eType==JSON_ARRAY ){ + jsonPrintf(30, pStr, "[%d]", pUp->u.iKey); + }else{ + assert( pUp->eType==JSON_OBJECT ); + if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--; + assert( pNode->eType==JSON_STRING ); + assert( pNode->jnFlags & JNODE_LABEL ); + jsonPrintf(pNode->n+1, pStr, ".%.*s", pNode->n-2, pNode->u.zJContent+1); + } +} + +/* Return the value of a column */ +static int jsonEachColumn( + sqlite3_vtab_cursor *cur, /* The cursor */ + sqlite3_context *ctx, /* First argument to sqlite3_result_...() */ + int i /* Which column to return */ +){ + JsonEachCursor *p = (JsonEachCursor*)cur; + JsonNode *pThis = &p->sParse.aNode[p->i]; + switch( i ){ + case JEACH_KEY: { + if( p->i==0 ) break; + if( p->eType==JSON_OBJECT ){ + jsonReturn(pThis, ctx, 0); + }else if( p->eType==JSON_ARRAY ){ + u32 iKey; + if( p->bRecursive ){ + if( p->iRowid==0 ) break; + iKey = p->sParse.aNode[p->sParse.aUp[p->i]].u.iKey; + }else{ + iKey = p->iRowid; + } + sqlite3_result_int64(ctx, (sqlite3_int64)iKey); + } + break; + } + case JEACH_VALUE: { + if( pThis->jnFlags & JNODE_LABEL ) pThis++; + jsonReturn(pThis, ctx, 0); + break; + } + case JEACH_TYPE: { + if( pThis->jnFlags & JNODE_LABEL ) pThis++; + sqlite3_result_text(ctx, jsonType[pThis->eType], -1, SQLITE_STATIC); + break; + } + case JEACH_ATOM: { + if( pThis->jnFlags & JNODE_LABEL ) pThis++; + if( pThis->eType>=JSON_ARRAY ) break; + jsonReturn(pThis, ctx, 0); + break; + } + case JEACH_ID: { + sqlite3_result_int64(ctx, + (sqlite3_int64)p->i + ((pThis->jnFlags & JNODE_LABEL)!=0)); + break; + } + case JEACH_PARENT: { + if( p->i>p->iBegin && p->bRecursive ){ + sqlite3_result_int64(ctx, (sqlite3_int64)p->sParse.aUp[p->i]); + } + break; + } + case JEACH_FULLKEY: { + JsonString x; + jsonInit(&x, ctx); + if( p->bRecursive ){ + jsonEachComputePath(p, &x, p->i); + }else{ + if( p->zRoot ){ + jsonAppendRaw(&x, p->zRoot, (int)strlen(p->zRoot)); + }else{ + jsonAppendChar(&x, '$'); + } + if( p->eType==JSON_ARRAY ){ + jsonPrintf(30, &x, "[%d]", p->iRowid); + }else{ + jsonPrintf(pThis->n, &x, ".%.*s", pThis->n-2, pThis->u.zJContent+1); + } + } + jsonResult(&x); + break; + } + case JEACH_PATH: { + if( p->bRecursive ){ + JsonString x; + jsonInit(&x, ctx); + jsonEachComputePath(p, &x, p->sParse.aUp[p->i]); + jsonResult(&x); + break; + } + /* For json_each() path and root are the same so fall through + ** into the root case */ + } + case JEACH_ROOT: { + const char *zRoot = p->zRoot; + if( zRoot==0 ) zRoot = "$"; + sqlite3_result_text(ctx, zRoot, -1, SQLITE_STATIC); + break; + } + case JEACH_JSON: { + assert( i==JEACH_JSON ); + sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_STATIC); + break; + } + } + return SQLITE_OK; +} + +/* Return the current rowid value */ +static int jsonEachRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid){ + JsonEachCursor *p = (JsonEachCursor*)cur; + *pRowid = p->iRowid; + return SQLITE_OK; +} + +/* The query strategy is to look for an equality constraint on the json +** column. Without such a constraint, the table cannot operate. idxNum is +** 1 if the constraint is found, 3 if the constraint and zRoot are found, +** and 0 otherwise. +*/ +static int jsonEachBestIndex( + sqlite3_vtab *tab, + sqlite3_index_info *pIdxInfo +){ + int i; + int jsonIdx = -1; + int rootIdx = -1; + const struct sqlite3_index_constraint *pConstraint; + + UNUSED_PARAM(tab); + pConstraint = pIdxInfo->aConstraint; + for(i=0; inConstraint; i++, pConstraint++){ + if( pConstraint->usable==0 ) continue; + if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; + switch( pConstraint->iColumn ){ + case JEACH_JSON: jsonIdx = i; break; + case JEACH_ROOT: rootIdx = i; break; + default: /* no-op */ break; + } + } + if( jsonIdx<0 ){ + pIdxInfo->idxNum = 0; + pIdxInfo->estimatedCost = 1e99; + }else{ + pIdxInfo->estimatedCost = 1.0; + pIdxInfo->aConstraintUsage[jsonIdx].argvIndex = 1; + pIdxInfo->aConstraintUsage[jsonIdx].omit = 1; + if( rootIdx<0 ){ + pIdxInfo->idxNum = 1; + }else{ + pIdxInfo->aConstraintUsage[rootIdx].argvIndex = 2; + pIdxInfo->aConstraintUsage[rootIdx].omit = 1; + pIdxInfo->idxNum = 3; + } + } + return SQLITE_OK; +} + +/* Start a search on a new JSON string */ +static int jsonEachFilter( + sqlite3_vtab_cursor *cur, + int idxNum, const char *idxStr, + int argc, sqlite3_value **argv +){ + JsonEachCursor *p = (JsonEachCursor*)cur; + const char *z; + const char *zRoot = 0; + sqlite3_int64 n; + + UNUSED_PARAM(idxStr); + UNUSED_PARAM(argc); + jsonEachCursorReset(p); + if( idxNum==0 ) return SQLITE_OK; + z = (const char*)sqlite3_value_text(argv[0]); + if( z==0 ) return SQLITE_OK; + n = sqlite3_value_bytes(argv[0]); + p->zJson = sqlite3_malloc64( n+1 ); + if( p->zJson==0 ) return SQLITE_NOMEM; + memcpy(p->zJson, z, (size_t)n+1); + if( jsonParse(&p->sParse, 0, p->zJson) ){ + int rc = SQLITE_NOMEM; + if( p->sParse.oom==0 ){ + sqlite3_free(cur->pVtab->zErrMsg); + cur->pVtab->zErrMsg = sqlite3_mprintf("malformed JSON"); + if( cur->pVtab->zErrMsg ) rc = SQLITE_ERROR; + } + jsonEachCursorReset(p); + return rc; + }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){ + jsonEachCursorReset(p); + return SQLITE_NOMEM; + }else{ + JsonNode *pNode = 0; + if( idxNum==3 ){ + const char *zErr = 0; + zRoot = (const char*)sqlite3_value_text(argv[1]); + if( zRoot==0 ) return SQLITE_OK; + n = sqlite3_value_bytes(argv[1]); + p->zRoot = sqlite3_malloc64( n+1 ); + if( p->zRoot==0 ) return SQLITE_NOMEM; + memcpy(p->zRoot, zRoot, (size_t)n+1); + if( zRoot[0]!='$' ){ + zErr = zRoot; + }else{ + pNode = jsonLookupStep(&p->sParse, 0, p->zRoot+1, 0, &zErr); + } + if( zErr ){ + sqlite3_free(cur->pVtab->zErrMsg); + cur->pVtab->zErrMsg = jsonPathSyntaxError(zErr); + jsonEachCursorReset(p); + return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; + }else if( pNode==0 ){ + return SQLITE_OK; + } + }else{ + pNode = p->sParse.aNode; + } + p->iBegin = p->i = (int)(pNode - p->sParse.aNode); + p->eType = pNode->eType; + if( p->eType>=JSON_ARRAY ){ + pNode->u.iKey = 0; + p->iEnd = p->i + pNode->n + 1; + if( p->bRecursive ){ + p->eType = p->sParse.aNode[p->sParse.aUp[p->i]].eType; + if( p->i>0 && (p->sParse.aNode[p->i-1].jnFlags & JNODE_LABEL)!=0 ){ + p->i--; + } + }else{ + p->i++; + } + }else{ + p->iEnd = p->i+1; + } + } + return SQLITE_OK; +} + +/* The methods of the json_each virtual table */ +static sqlite3_module jsonEachModule = { + 0, /* iVersion */ + 0, /* xCreate */ + jsonEachConnect, /* xConnect */ + jsonEachBestIndex, /* xBestIndex */ + jsonEachDisconnect, /* xDisconnect */ + 0, /* xDestroy */ + jsonEachOpenEach, /* xOpen - open a cursor */ + jsonEachClose, /* xClose - close a cursor */ + jsonEachFilter, /* xFilter - configure scan constraints */ + jsonEachNext, /* xNext - advance a cursor */ + jsonEachEof, /* xEof - check for end of scan */ + jsonEachColumn, /* xColumn - read data */ + jsonEachRowid, /* xRowid - read data */ + 0, /* xUpdate */ + 0, /* xBegin */ + 0, /* xSync */ + 0, /* xCommit */ + 0, /* xRollback */ + 0, /* xFindMethod */ + 0, /* xRename */ + 0, /* xSavepoint */ + 0, /* xRelease */ + 0 /* xRollbackTo */ +}; + +/* The methods of the json_tree virtual table. */ +static sqlite3_module jsonTreeModule = { + 0, /* iVersion */ + 0, /* xCreate */ + jsonEachConnect, /* xConnect */ + jsonEachBestIndex, /* xBestIndex */ + jsonEachDisconnect, /* xDisconnect */ + 0, /* xDestroy */ + jsonEachOpenTree, /* xOpen - open a cursor */ + jsonEachClose, /* xClose - close a cursor */ + jsonEachFilter, /* xFilter - configure scan constraints */ + jsonEachNext, /* xNext - advance a cursor */ + jsonEachEof, /* xEof - check for end of scan */ + jsonEachColumn, /* xColumn - read data */ + jsonEachRowid, /* xRowid - read data */ + 0, /* xUpdate */ + 0, /* xBegin */ + 0, /* xSync */ + 0, /* xCommit */ + 0, /* xRollback */ + 0, /* xFindMethod */ + 0, /* xRename */ + 0, /* xSavepoint */ + 0, /* xRelease */ + 0 /* xRollbackTo */ +}; +#endif /* SQLITE_OMIT_VIRTUALTABLE */ + +/**************************************************************************** +** The following routines are the only publically visible identifiers in this +** file. Call the following routines in order to register the various SQL +** functions and the virtual table implemented by this file. +****************************************************************************/ + +SQLITE_PRIVATE int sqlite3Json1Init(sqlite3 *db){ + int rc = SQLITE_OK; + unsigned int i; + static const struct { + const char *zName; + int nArg; + int flag; + void (*xFunc)(sqlite3_context*,int,sqlite3_value**); + } aFunc[] = { + { "json", 1, 0, jsonRemoveFunc }, + { "json_array", -1, 0, jsonArrayFunc }, + { "json_array_length", 1, 0, jsonArrayLengthFunc }, + { "json_array_length", 2, 0, jsonArrayLengthFunc }, + { "json_extract", -1, 0, jsonExtractFunc }, + { "json_insert", -1, 0, jsonSetFunc }, + { "json_object", -1, 0, jsonObjectFunc }, + { "json_remove", -1, 0, jsonRemoveFunc }, + { "json_replace", -1, 0, jsonReplaceFunc }, + { "json_set", -1, 1, jsonSetFunc }, + { "json_type", 1, 0, jsonTypeFunc }, + { "json_type", 2, 0, jsonTypeFunc }, + { "json_valid", 1, 0, jsonValidFunc }, + +#if SQLITE_DEBUG + /* DEBUG and TESTING functions */ + { "json_parse", 1, 0, jsonParseFunc }, + { "json_test1", 1, 0, jsonTest1Func }, +#endif + }; +#ifndef SQLITE_OMIT_VIRTUALTABLE + static const struct { + const char *zName; + sqlite3_module *pModule; + } aMod[] = { + { "json_each", &jsonEachModule }, + { "json_tree", &jsonTreeModule }, + }; +#endif + for(i=0; ixPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); +** iOff>=0; +** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) +** ){ +** // An instance of phrase iPhrase at offset iOff of column iCol +** } +** +** The Fts5PhraseIter structure is defined above. Applications should not +** modify this structure directly - it should only be used as shown above +** with the xPhraseFirst() and xPhraseNext() API methods. +** +** xPhraseNext() +** See xPhraseFirst above. +*/ +struct Fts5ExtensionApi { + int iVersion; /* Currently always set to 1 */ + + void *(*xUserData)(Fts5Context*); + + int (*xColumnCount)(Fts5Context*); + int (*xRowCount)(Fts5Context*, sqlite3_int64 *pnRow); + int (*xColumnTotalSize)(Fts5Context*, int iCol, sqlite3_int64 *pnToken); + + int (*xTokenize)(Fts5Context*, + const char *pText, int nText, /* Text to tokenize */ + void *pCtx, /* Context passed to xToken() */ + int (*xToken)(void*, int, const char*, int, int, int) /* Callback */ + ); + + int (*xPhraseCount)(Fts5Context*); + int (*xPhraseSize)(Fts5Context*, int iPhrase); + + int (*xInstCount)(Fts5Context*, int *pnInst); + int (*xInst)(Fts5Context*, int iIdx, int *piPhrase, int *piCol, int *piOff); + + sqlite3_int64 (*xRowid)(Fts5Context*); + int (*xColumnText)(Fts5Context*, int iCol, const char **pz, int *pn); + int (*xColumnSize)(Fts5Context*, int iCol, int *pnToken); + + int (*xQueryPhrase)(Fts5Context*, int iPhrase, void *pUserData, + int(*)(const Fts5ExtensionApi*,Fts5Context*,void*) + ); + int (*xSetAuxdata)(Fts5Context*, void *pAux, void(*xDelete)(void*)); + void *(*xGetAuxdata)(Fts5Context*, int bClear); + + void (*xPhraseFirst)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*, int*); + void (*xPhraseNext)(Fts5Context*, Fts5PhraseIter*, int *piCol, int *piOff); +}; + +/* +** CUSTOM AUXILIARY FUNCTIONS +*************************************************************************/ + +/************************************************************************* +** CUSTOM TOKENIZERS +** +** Applications may also register custom tokenizer types. A tokenizer +** is registered by providing fts5 with a populated instance of the +** following structure. All structure methods must be defined, setting +** any member of the fts5_tokenizer struct to NULL leads to undefined +** behaviour. The structure methods are expected to function as follows: +** +** xCreate: +** This function is used to allocate and inititalize a tokenizer instance. +** A tokenizer instance is required to actually tokenize text. +** +** The first argument passed to this function is a copy of the (void*) +** pointer provided by the application when the fts5_tokenizer object +** was registered with FTS5 (the third argument to xCreateTokenizer()). +** The second and third arguments are an array of nul-terminated strings +** containing the tokenizer arguments, if any, specified following the +** tokenizer name as part of the CREATE VIRTUAL TABLE statement used +** to create the FTS5 table. +** +** The final argument is an output variable. If successful, (*ppOut) +** should be set to point to the new tokenizer handle and SQLITE_OK +** returned. If an error occurs, some value other than SQLITE_OK should +** be returned. In this case, fts5 assumes that the final value of *ppOut +** is undefined. +** +** xDelete: +** This function is invoked to delete a tokenizer handle previously +** allocated using xCreate(). Fts5 guarantees that this function will +** be invoked exactly once for each successful call to xCreate(). +** +** xTokenize: +** This function is expected to tokenize the nText byte string indicated +** by argument pText. pText may or may not be nul-terminated. The first +** argument passed to this function is a pointer to an Fts5Tokenizer object +** returned by an earlier call to xCreate(). +** +** The second argument indicates the reason that FTS5 is requesting +** tokenization of the supplied text. This is always one of the following +** four values: +** +**
  • FTS5_TOKENIZE_DOCUMENT - A document is being inserted into +** or removed from the FTS table. The tokenizer is being invoked to +** determine the set of tokens to add to (or delete from) the +** FTS index. +** +**
  • FTS5_TOKENIZE_QUERY - A MATCH query is being executed +** against the FTS index. The tokenizer is being called to tokenize +** a bareword or quoted string specified as part of the query. +** +**
  • (FTS5_TOKENIZE_QUERY | FTS5_TOKENIZE_PREFIX) - Same as +** FTS5_TOKENIZE_QUERY, except that the bareword or quoted string is +** followed by a "*" character, indicating that the last token +** returned by the tokenizer will be treated as a token prefix. +** +**
  • FTS5_TOKENIZE_AUX - The tokenizer is being invoked to +** satisfy an fts5_api.xTokenize() request made by an auxiliary +** function. Or an fts5_api.xColumnSize() request made by the same +** on a columnsize=0 database. +**
+** +** For each token in the input string, the supplied callback xToken() must +** be invoked. The first argument to it should be a copy of the pointer +** passed as the second argument to xTokenize(). The third and fourth +** arguments are a pointer to a buffer containing the token text, and the +** size of the token in bytes. The 4th and 5th arguments are the byte offsets +** of the first byte of and first byte immediately following the text from +** which the token is derived within the input. +** +** The second argument passed to the xToken() callback ("tflags") should +** normally be set to 0. The exception is if the tokenizer supports +** synonyms. In this case see the discussion below for details. +** +** FTS5 assumes the xToken() callback is invoked for each token in the +** order that they occur within the input text. +** +** If an xToken() callback returns any value other than SQLITE_OK, then +** the tokenization should be abandoned and the xTokenize() method should +** immediately return a copy of the xToken() return value. Or, if the +** input buffer is exhausted, xTokenize() should return SQLITE_OK. Finally, +** if an error occurs with the xTokenize() implementation itself, it +** may abandon the tokenization and return any error code other than +** SQLITE_OK or SQLITE_DONE. +** +** SYNONYM SUPPORT +** +** Custom tokenizers may also support synonyms. Consider a case in which a +** user wishes to query for a phrase such as "first place". Using the +** built-in tokenizers, the FTS5 query 'first + place' will match instances +** of "first place" within the document set, but not alternative forms +** such as "1st place". In some applications, it would be better to match +** all instances of "first place" or "1st place" regardless of which form +** the user specified in the MATCH query text. +** +** There are several ways to approach this in FTS5: +** +**
  1. By mapping all synonyms to a single token. In this case, the +** In the above example, this means that the tokenizer returns the +** same token for inputs "first" and "1st". Say that token is in +** fact "first", so that when the user inserts the document "I won +** 1st place" entries are added to the index for tokens "i", "won", +** "first" and "place". If the user then queries for '1st + place', +** the tokenizer substitutes "first" for "1st" and the query works +** as expected. +** +**
  2. By adding multiple synonyms for a single term to the FTS index. +** In this case, when tokenizing query text, the tokenizer may +** provide multiple synonyms for a single term within the document. +** FTS5 then queries the index for each synonym individually. For +** example, faced with the query: +** +** +** ... MATCH 'first place' +** +** the tokenizer offers both "1st" and "first" as synonyms for the +** first token in the MATCH query and FTS5 effectively runs a query +** similar to: +** +** +** ... MATCH '(first OR 1st) place' +** +** except that, for the purposes of auxiliary functions, the query +** still appears to contain just two phrases - "(first OR 1st)" +** being treated as a single phrase. +** +**
  3. By adding multiple synonyms for a single term to the FTS index. +** Using this method, when tokenizing document text, the tokenizer +** provides multiple synonyms for each token. So that when a +** document such as "I won first place" is tokenized, entries are +** added to the FTS index for "i", "won", "first", "1st" and +** "place". +** +** This way, even if the tokenizer does not provide synonyms +** when tokenizing query text (it should not - to do would be +** inefficient), it doesn't matter if the user queries for +** 'first + place' or '1st + place', as there are entires in the +** FTS index corresponding to both forms of the first token. +**
+** +** Whether it is parsing document or query text, any call to xToken that +** specifies a tflags argument with the FTS5_TOKEN_COLOCATED bit +** is considered to supply a synonym for the previous token. For example, +** when parsing the document "I won first place", a tokenizer that supports +** synonyms would call xToken() 5 times, as follows: +** +** +** xToken(pCtx, 0, "i", 1, 0, 1); +** xToken(pCtx, 0, "won", 3, 2, 5); +** xToken(pCtx, 0, "first", 5, 6, 11); +** xToken(pCtx, FTS5_TOKEN_COLOCATED, "1st", 3, 6, 11); +** xToken(pCtx, 0, "place", 5, 12, 17); +** +** +** It is an error to specify the FTS5_TOKEN_COLOCATED flag the first time +** xToken() is called. Multiple synonyms may be specified for a single token +** by making multiple calls to xToken(FTS5_TOKEN_COLOCATED) in sequence. +** There is no limit to the number of synonyms that may be provided for a +** single token. +** +** In many cases, method (1) above is the best approach. It does not add +** extra data to the FTS index or require FTS5 to query for multiple terms, +** so it is efficient in terms of disk space and query speed. However, it +** does not support prefix queries very well. If, as suggested above, the +** token "first" is subsituted for "1st" by the tokenizer, then the query: +** +** +** ... MATCH '1s*' +** +** will not match documents that contain the token "1st" (as the tokenizer +** will probably not map "1s" to any prefix of "first"). +** +** For full prefix support, method (3) may be preferred. In this case, +** because the index contains entries for both "first" and "1st", prefix +** queries such as 'fi*' or '1s*' will match correctly. However, because +** extra entries are added to the FTS index, this method uses more space +** within the database. +** +** Method (2) offers a midpoint between (1) and (3). Using this method, +** a query such as '1s*' will match documents that contain the literal +** token "1st", but not "first" (assuming the tokenizer is not able to +** provide synonyms for prefixes). However, a non-prefix query like '1st' +** will match against "1st" and "first". This method does not require +** extra disk space, as no extra entries are added to the FTS index. +** On the other hand, it may require more CPU cycles to run MATCH queries, +** as separate queries of the FTS index are required for each synonym. +** +** When using methods (2) or (3), it is important that the tokenizer only +** provide synonyms when tokenizing document text (method (2)) or query +** text (method (3)), not both. Doing so will not cause any errors, but is +** inefficient. +*/ +typedef struct Fts5Tokenizer Fts5Tokenizer; +typedef struct fts5_tokenizer fts5_tokenizer; +struct fts5_tokenizer { + int (*xCreate)(void*, const char **azArg, int nArg, Fts5Tokenizer **ppOut); + void (*xDelete)(Fts5Tokenizer*); + int (*xTokenize)(Fts5Tokenizer*, + void *pCtx, + int flags, /* Mask of FTS5_TOKENIZE_* flags */ + const char *pText, int nText, + int (*xToken)( + void *pCtx, /* Copy of 2nd argument to xTokenize() */ + int tflags, /* Mask of FTS5_TOKEN_* flags */ + const char *pToken, /* Pointer to buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStart, /* Byte offset of token within input text */ + int iEnd /* Byte offset of end of token within input text */ + ) + ); +}; + +/* Flags that may be passed as the third argument to xTokenize() */ +#define FTS5_TOKENIZE_QUERY 0x0001 +#define FTS5_TOKENIZE_PREFIX 0x0002 +#define FTS5_TOKENIZE_DOCUMENT 0x0004 +#define FTS5_TOKENIZE_AUX 0x0008 + +/* Flags that may be passed by the tokenizer implementation back to FTS5 +** as the third argument to the supplied xToken callback. */ +#define FTS5_TOKEN_COLOCATED 0x0001 /* Same position as prev. token */ + +/* +** END OF CUSTOM TOKENIZERS +*************************************************************************/ + +/************************************************************************* +** FTS5 EXTENSION REGISTRATION API +*/ +typedef struct fts5_api fts5_api; +struct fts5_api { + int iVersion; /* Currently always set to 2 */ + + /* Create a new tokenizer */ + int (*xCreateTokenizer)( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_tokenizer *pTokenizer, + void (*xDestroy)(void*) + ); + + /* Find an existing tokenizer */ + int (*xFindTokenizer)( + fts5_api *pApi, + const char *zName, + void **ppContext, + fts5_tokenizer *pTokenizer + ); + + /* Create a new auxiliary function */ + int (*xCreateFunction)( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_extension_function xFunction, + void (*xDestroy)(void*) + ); +}; + +/* +** END OF REGISTRATION API +*************************************************************************/ + +#if 0 +} /* end of the 'extern "C"' block */ +#endif + +#endif /* _FTS5_H */ + + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +*/ +#ifndef _FTS5INT_H +#define _FTS5INT_H + +/* #include "sqlite3ext.h" */ +SQLITE_EXTENSION_INIT1 + +/* #include */ +/* #include */ + +#ifndef SQLITE_AMALGAMATION + +typedef unsigned char u8; +typedef unsigned int u32; +typedef unsigned short u16; +typedef sqlite3_int64 i64; +typedef sqlite3_uint64 u64; + +#define ArraySize(x) (sizeof(x) / sizeof(x[0])) + +#define testcase(x) +#define ALWAYS(x) 1 +#define NEVER(x) 0 + +#define MIN(x,y) (((x) < (y)) ? (x) : (y)) +#define MAX(x,y) (((x) > (y)) ? (x) : (y)) + +/* +** Constants for the largest and smallest possible 64-bit signed integers. +*/ +# define LARGEST_INT64 (0xffffffff|(((i64)0x7fffffff)<<32)) +# define SMALLEST_INT64 (((i64)-1) - LARGEST_INT64) + +#endif + + +/* +** Maximum number of prefix indexes on single FTS5 table. This must be +** less than 32. If it is set to anything large than that, an #error +** directive in fts5_index.c will cause the build to fail. +*/ +#define FTS5_MAX_PREFIX_INDEXES 31 + +#define FTS5_DEFAULT_NEARDIST 10 +#define FTS5_DEFAULT_RANK "bm25" + +/* Name of rank and rowid columns */ +#define FTS5_RANK_NAME "rank" +#define FTS5_ROWID_NAME "rowid" + +#ifdef SQLITE_DEBUG +# define FTS5_CORRUPT sqlite3Fts5Corrupt() +static int sqlite3Fts5Corrupt(void); +#else +# define FTS5_CORRUPT SQLITE_CORRUPT_VTAB +#endif + +/* +** The assert_nc() macro is similar to the assert() macro, except that it +** is used for assert() conditions that are true only if it can be +** guranteed that the database is not corrupt. +*/ +#ifdef SQLITE_DEBUG +SQLITE_API extern int sqlite3_fts5_may_be_corrupt; +# define assert_nc(x) assert(sqlite3_fts5_may_be_corrupt || (x)) +#else +# define assert_nc(x) assert(x) +#endif + +typedef struct Fts5Global Fts5Global; +typedef struct Fts5Colset Fts5Colset; + +/* If a NEAR() clump or phrase may only match a specific set of columns, +** then an object of the following type is used to record the set of columns. +** Each entry in the aiCol[] array is a column that may be matched. +** +** This object is used by fts5_expr.c and fts5_index.c. +*/ +struct Fts5Colset { + int nCol; + int aiCol[1]; +}; + + + +/************************************************************************** +** Interface to code in fts5_config.c. fts5_config.c contains contains code +** to parse the arguments passed to the CREATE VIRTUAL TABLE statement. +*/ + +typedef struct Fts5Config Fts5Config; + +/* +** An instance of the following structure encodes all information that can +** be gleaned from the CREATE VIRTUAL TABLE statement. +** +** And all information loaded from the %_config table. +** +** nAutomerge: +** The minimum number of segments that an auto-merge operation should +** attempt to merge together. A value of 1 sets the object to use the +** compile time default. Zero disables auto-merge altogether. +** +** zContent: +** +** zContentRowid: +** The value of the content_rowid= option, if one was specified. Or +** the string "rowid" otherwise. This text is not quoted - if it is +** used as part of an SQL statement it needs to be quoted appropriately. +** +** zContentExprlist: +** +** pzErrmsg: +** This exists in order to allow the fts5_index.c module to return a +** decent error message if it encounters a file-format version it does +** not understand. +** +** bColumnsize: +** True if the %_docsize table is created. +** +** bPrefixIndex: +** This is only used for debugging. If set to false, any prefix indexes +** are ignored. This value is configured using: +** +** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); +** +*/ +struct Fts5Config { + sqlite3 *db; /* Database handle */ + char *zDb; /* Database holding FTS index (e.g. "main") */ + char *zName; /* Name of FTS index */ + int nCol; /* Number of columns */ + char **azCol; /* Column names */ + u8 *abUnindexed; /* True for unindexed columns */ + int nPrefix; /* Number of prefix indexes */ + int *aPrefix; /* Sizes in bytes of nPrefix prefix indexes */ + int eContent; /* An FTS5_CONTENT value */ + char *zContent; /* content table */ + char *zContentRowid; /* "content_rowid=" option value */ + int bColumnsize; /* "columnsize=" option value (dflt==1) */ + char *zContentExprlist; + Fts5Tokenizer *pTok; + fts5_tokenizer *pTokApi; + + /* Values loaded from the %_config table */ + int iCookie; /* Incremented when %_config is modified */ + int pgsz; /* Approximate page size used in %_data */ + int nAutomerge; /* 'automerge' setting */ + int nCrisisMerge; /* Maximum allowed segments per level */ + char *zRank; /* Name of rank function */ + char *zRankArgs; /* Arguments to rank function */ + + /* If non-NULL, points to sqlite3_vtab.base.zErrmsg. Often NULL. */ + char **pzErrmsg; + +#ifdef SQLITE_DEBUG + int bPrefixIndex; /* True to use prefix-indexes */ +#endif +}; + +/* Current expected value of %_config table 'version' field */ +#define FTS5_CURRENT_VERSION 4 + +#define FTS5_CONTENT_NORMAL 0 +#define FTS5_CONTENT_NONE 1 +#define FTS5_CONTENT_EXTERNAL 2 + + + + +static int sqlite3Fts5ConfigParse( + Fts5Global*, sqlite3*, int, const char **, Fts5Config**, char** +); +static void sqlite3Fts5ConfigFree(Fts5Config*); + +static int sqlite3Fts5ConfigDeclareVtab(Fts5Config *pConfig); + +static int sqlite3Fts5Tokenize( + Fts5Config *pConfig, /* FTS5 Configuration object */ + int flags, /* FTS5_TOKENIZE_* flags */ + const char *pText, int nText, /* Text to tokenize */ + void *pCtx, /* Context passed to xToken() */ + int (*xToken)(void*, int, const char*, int, int, int) /* Callback */ +); + +static void sqlite3Fts5Dequote(char *z); + +/* Load the contents of the %_config table */ +static int sqlite3Fts5ConfigLoad(Fts5Config*, int); + +/* Set the value of a single config attribute */ +static int sqlite3Fts5ConfigSetValue(Fts5Config*, const char*, sqlite3_value*, int*); + +static int sqlite3Fts5ConfigParseRank(const char*, char**, char**); + +/* +** End of interface to code in fts5_config.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_buffer.c. +*/ + +/* +** Buffer object for the incremental building of string data. +*/ +typedef struct Fts5Buffer Fts5Buffer; +struct Fts5Buffer { + u8 *p; + int n; + int nSpace; +}; + +static int sqlite3Fts5BufferGrow(int*, Fts5Buffer*, int); +static void sqlite3Fts5BufferAppendVarint(int*, Fts5Buffer*, i64); +static void sqlite3Fts5BufferAppendBlob(int*, Fts5Buffer*, int, const u8*); +static void sqlite3Fts5BufferAppendString(int *, Fts5Buffer*, const char*); +static void sqlite3Fts5BufferFree(Fts5Buffer*); +static void sqlite3Fts5BufferZero(Fts5Buffer*); +static void sqlite3Fts5BufferSet(int*, Fts5Buffer*, int, const u8*); +static void sqlite3Fts5BufferAppendPrintf(int *, Fts5Buffer*, char *zFmt, ...); +static void sqlite3Fts5BufferAppend32(int*, Fts5Buffer*, int); + +static char *sqlite3Fts5Mprintf(int *pRc, const char *zFmt, ...); + +#define fts5BufferZero(x) sqlite3Fts5BufferZero(x) +#define fts5BufferGrow(a,b,c) sqlite3Fts5BufferGrow(a,b,c) +#define fts5BufferAppendVarint(a,b,c) sqlite3Fts5BufferAppendVarint(a,b,c) +#define fts5BufferFree(a) sqlite3Fts5BufferFree(a) +#define fts5BufferAppendBlob(a,b,c,d) sqlite3Fts5BufferAppendBlob(a,b,c,d) +#define fts5BufferSet(a,b,c,d) sqlite3Fts5BufferSet(a,b,c,d) +#define fts5BufferAppend32(a,b,c) sqlite3Fts5BufferAppend32(a,b,c) + +/* Write and decode big-endian 32-bit integer values */ +static void sqlite3Fts5Put32(u8*, int); +static int sqlite3Fts5Get32(const u8*); + +#define FTS5_POS2COLUMN(iPos) (int)(iPos >> 32) +#define FTS5_POS2OFFSET(iPos) (int)(iPos & 0xFFFFFFFF) + +typedef struct Fts5PoslistReader Fts5PoslistReader; +struct Fts5PoslistReader { + /* Variables used only by sqlite3Fts5PoslistIterXXX() functions. */ + const u8 *a; /* Position list to iterate through */ + int n; /* Size of buffer at a[] in bytes */ + int i; /* Current offset in a[] */ + + u8 bFlag; /* For client use (any custom purpose) */ + + /* Output variables */ + u8 bEof; /* Set to true at EOF */ + i64 iPos; /* (iCol<<32) + iPos */ +}; +static int sqlite3Fts5PoslistReaderInit( + const u8 *a, int n, /* Poslist buffer to iterate through */ + Fts5PoslistReader *pIter /* Iterator object to initialize */ +); +static int sqlite3Fts5PoslistReaderNext(Fts5PoslistReader*); + +typedef struct Fts5PoslistWriter Fts5PoslistWriter; +struct Fts5PoslistWriter { + i64 iPrev; +}; +static int sqlite3Fts5PoslistWriterAppend(Fts5Buffer*, Fts5PoslistWriter*, i64); + +static int sqlite3Fts5PoslistNext64( + const u8 *a, int n, /* Buffer containing poslist */ + int *pi, /* IN/OUT: Offset within a[] */ + i64 *piOff /* IN/OUT: Current offset */ +); + +/* Malloc utility */ +static void *sqlite3Fts5MallocZero(int *pRc, int nByte); +static char *sqlite3Fts5Strndup(int *pRc, const char *pIn, int nIn); + +/* Character set tests (like isspace(), isalpha() etc.) */ +static int sqlite3Fts5IsBareword(char t); + +/* +** End of interface to code in fts5_buffer.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_index.c. fts5_index.c contains contains code +** to access the data stored in the %_data table. +*/ + +typedef struct Fts5Index Fts5Index; +typedef struct Fts5IndexIter Fts5IndexIter; + +/* +** Values used as part of the flags argument passed to IndexQuery(). +*/ +#define FTS5INDEX_QUERY_PREFIX 0x0001 /* Prefix query */ +#define FTS5INDEX_QUERY_DESC 0x0002 /* Docs in descending rowid order */ +#define FTS5INDEX_QUERY_TEST_NOIDX 0x0004 /* Do not use prefix index */ +#define FTS5INDEX_QUERY_SCAN 0x0008 /* Scan query (fts5vocab) */ + +/* +** Create/destroy an Fts5Index object. +*/ +static int sqlite3Fts5IndexOpen(Fts5Config *pConfig, int bCreate, Fts5Index**, char**); +static int sqlite3Fts5IndexClose(Fts5Index *p); + +/* +** for( +** sqlite3Fts5IndexQuery(p, "token", 5, 0, 0, &pIter); +** 0==sqlite3Fts5IterEof(pIter); +** sqlite3Fts5IterNext(pIter) +** ){ +** i64 iRowid = sqlite3Fts5IterRowid(pIter); +** } +*/ + +/* +** Open a new iterator to iterate though all rowids that match the +** specified token or token prefix. +*/ +static int sqlite3Fts5IndexQuery( + Fts5Index *p, /* FTS index to query */ + const char *pToken, int nToken, /* Token (or prefix) to query for */ + int flags, /* Mask of FTS5INDEX_QUERY_X flags */ + Fts5Colset *pColset, /* Match these columns only */ + Fts5IndexIter **ppIter /* OUT: New iterator object */ +); + +/* +** The various operations on open token or token prefix iterators opened +** using sqlite3Fts5IndexQuery(). +*/ +static int sqlite3Fts5IterEof(Fts5IndexIter*); +static int sqlite3Fts5IterNext(Fts5IndexIter*); +static int sqlite3Fts5IterNextFrom(Fts5IndexIter*, i64 iMatch); +static i64 sqlite3Fts5IterRowid(Fts5IndexIter*); +static int sqlite3Fts5IterPoslist(Fts5IndexIter*,Fts5Colset*, const u8**, int*, i64*); +static int sqlite3Fts5IterPoslistBuffer(Fts5IndexIter *pIter, Fts5Buffer *pBuf); + +/* +** Close an iterator opened by sqlite3Fts5IndexQuery(). +*/ +static void sqlite3Fts5IterClose(Fts5IndexIter*); + +/* +** This interface is used by the fts5vocab module. +*/ +static const char *sqlite3Fts5IterTerm(Fts5IndexIter*, int*); +static int sqlite3Fts5IterNextScan(Fts5IndexIter*); + + +/* +** Insert or remove data to or from the index. Each time a document is +** added to or removed from the index, this function is called one or more +** times. +** +** For an insert, it must be called once for each token in the new document. +** If the operation is a delete, it must be called (at least) once for each +** unique token in the document with an iCol value less than zero. The iPos +** argument is ignored for a delete. +*/ +static int sqlite3Fts5IndexWrite( + Fts5Index *p, /* Index to write to */ + int iCol, /* Column token appears in (-ve -> delete) */ + int iPos, /* Position of token within column */ + const char *pToken, int nToken /* Token to add or remove to or from index */ +); + +/* +** Indicate that subsequent calls to sqlite3Fts5IndexWrite() pertain to +** document iDocid. +*/ +static int sqlite3Fts5IndexBeginWrite( + Fts5Index *p, /* Index to write to */ + int bDelete, /* True if current operation is a delete */ + i64 iDocid /* Docid to add or remove data from */ +); + +/* +** Flush any data stored in the in-memory hash tables to the database. +** If the bCommit flag is true, also close any open blob handles. +*/ +static int sqlite3Fts5IndexSync(Fts5Index *p, int bCommit); + +/* +** Discard any data stored in the in-memory hash tables. Do not write it +** to the database. Additionally, assume that the contents of the %_data +** table may have changed on disk. So any in-memory caches of %_data +** records must be invalidated. +*/ +static int sqlite3Fts5IndexRollback(Fts5Index *p); + +/* +** Get or set the "averages" values. +*/ +static int sqlite3Fts5IndexGetAverages(Fts5Index *p, i64 *pnRow, i64 *anSize); +static int sqlite3Fts5IndexSetAverages(Fts5Index *p, const u8*, int); + +/* +** Functions called by the storage module as part of integrity-check. +*/ +static u64 sqlite3Fts5IndexCksum(Fts5Config*,i64,int,int,const char*,int); +static int sqlite3Fts5IndexIntegrityCheck(Fts5Index*, u64 cksum); + +/* +** Called during virtual module initialization to register UDF +** fts5_decode() with SQLite +*/ +static int sqlite3Fts5IndexInit(sqlite3*); + +static int sqlite3Fts5IndexSetCookie(Fts5Index*, int); + +/* +** Return the total number of entries read from the %_data table by +** this connection since it was created. +*/ +static int sqlite3Fts5IndexReads(Fts5Index *p); + +static int sqlite3Fts5IndexReinit(Fts5Index *p); +static int sqlite3Fts5IndexOptimize(Fts5Index *p); +static int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge); + +static int sqlite3Fts5IndexLoadConfig(Fts5Index *p); + +/* +** End of interface to code in fts5_index.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_varint.c. +*/ +static int sqlite3Fts5GetVarint32(const unsigned char *p, u32 *v); +static int sqlite3Fts5GetVarintLen(u32 iVal); +static u8 sqlite3Fts5GetVarint(const unsigned char*, u64*); +static int sqlite3Fts5PutVarint(unsigned char *p, u64 v); + +#define fts5GetVarint32(a,b) sqlite3Fts5GetVarint32(a,(u32*)&b) +#define fts5GetVarint sqlite3Fts5GetVarint + +#define fts5FastGetVarint32(a, iOff, nVal) { \ + nVal = (a)[iOff++]; \ + if( nVal & 0x80 ){ \ + iOff--; \ + iOff += fts5GetVarint32(&(a)[iOff], nVal); \ + } \ +} + + +/* +** End of interface to code in fts5_varint.c. +**************************************************************************/ + + +/************************************************************************** +** Interface to code in fts5.c. +*/ + +static int sqlite3Fts5GetTokenizer( + Fts5Global*, + const char **azArg, + int nArg, + Fts5Tokenizer**, + fts5_tokenizer**, + char **pzErr +); + +static Fts5Index *sqlite3Fts5IndexFromCsrid(Fts5Global*, i64, int*); + +/* +** End of interface to code in fts5.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_hash.c. +*/ +typedef struct Fts5Hash Fts5Hash; + +/* +** Create a hash table, free a hash table. +*/ +static int sqlite3Fts5HashNew(Fts5Hash**, int *pnSize); +static void sqlite3Fts5HashFree(Fts5Hash*); + +static int sqlite3Fts5HashWrite( + Fts5Hash*, + i64 iRowid, /* Rowid for this entry */ + int iCol, /* Column token appears in (-ve -> delete) */ + int iPos, /* Position of token within column */ + char bByte, + const char *pToken, int nToken /* Token to add or remove to or from index */ +); + +/* +** Empty (but do not delete) a hash table. +*/ +static void sqlite3Fts5HashClear(Fts5Hash*); + +static int sqlite3Fts5HashQuery( + Fts5Hash*, /* Hash table to query */ + const char *pTerm, int nTerm, /* Query term */ + const u8 **ppDoclist, /* OUT: Pointer to doclist for pTerm */ + int *pnDoclist /* OUT: Size of doclist in bytes */ +); + +static int sqlite3Fts5HashScanInit( + Fts5Hash*, /* Hash table to query */ + const char *pTerm, int nTerm /* Query prefix */ +); +static void sqlite3Fts5HashScanNext(Fts5Hash*); +static int sqlite3Fts5HashScanEof(Fts5Hash*); +static void sqlite3Fts5HashScanEntry(Fts5Hash *, + const char **pzTerm, /* OUT: term (nul-terminated) */ + const u8 **ppDoclist, /* OUT: pointer to doclist */ + int *pnDoclist /* OUT: size of doclist in bytes */ +); + + +/* +** End of interface to code in fts5_hash.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_storage.c. fts5_storage.c contains contains +** code to access the data stored in the %_content and %_docsize tables. +*/ + +#define FTS5_STMT_SCAN_ASC 0 /* SELECT rowid, * FROM ... ORDER BY 1 ASC */ +#define FTS5_STMT_SCAN_DESC 1 /* SELECT rowid, * FROM ... ORDER BY 1 DESC */ +#define FTS5_STMT_LOOKUP 2 /* SELECT rowid, * FROM ... WHERE rowid=? */ + +typedef struct Fts5Storage Fts5Storage; + +static int sqlite3Fts5StorageOpen(Fts5Config*, Fts5Index*, int, Fts5Storage**, char**); +static int sqlite3Fts5StorageClose(Fts5Storage *p); +static int sqlite3Fts5StorageRename(Fts5Storage*, const char *zName); + +static int sqlite3Fts5DropAll(Fts5Config*); +static int sqlite3Fts5CreateTable(Fts5Config*, const char*, const char*, int, char **); + +static int sqlite3Fts5StorageDelete(Fts5Storage *p, i64); +static int sqlite3Fts5StorageContentInsert(Fts5Storage *p, sqlite3_value**, i64*); +static int sqlite3Fts5StorageIndexInsert(Fts5Storage *p, sqlite3_value**, i64); + +static int sqlite3Fts5StorageIntegrity(Fts5Storage *p); + +static int sqlite3Fts5StorageStmt(Fts5Storage *p, int eStmt, sqlite3_stmt**, char**); +static void sqlite3Fts5StorageStmtRelease(Fts5Storage *p, int eStmt, sqlite3_stmt*); + +static int sqlite3Fts5StorageDocsize(Fts5Storage *p, i64 iRowid, int *aCol); +static int sqlite3Fts5StorageSize(Fts5Storage *p, int iCol, i64 *pnAvg); +static int sqlite3Fts5StorageRowCount(Fts5Storage *p, i64 *pnRow); + +static int sqlite3Fts5StorageSync(Fts5Storage *p, int bCommit); +static int sqlite3Fts5StorageRollback(Fts5Storage *p); + +static int sqlite3Fts5StorageConfigValue( + Fts5Storage *p, const char*, sqlite3_value*, int +); + +static int sqlite3Fts5StorageSpecialDelete(Fts5Storage *p, i64 iDel, sqlite3_value**); + +static int sqlite3Fts5StorageDeleteAll(Fts5Storage *p); +static int sqlite3Fts5StorageRebuild(Fts5Storage *p); +static int sqlite3Fts5StorageOptimize(Fts5Storage *p); +static int sqlite3Fts5StorageMerge(Fts5Storage *p, int nMerge); + +/* +** End of interface to code in fts5_storage.c. +**************************************************************************/ + + +/************************************************************************** +** Interface to code in fts5_expr.c. +*/ +typedef struct Fts5Expr Fts5Expr; +typedef struct Fts5ExprNode Fts5ExprNode; +typedef struct Fts5Parse Fts5Parse; +typedef struct Fts5Token Fts5Token; +typedef struct Fts5ExprPhrase Fts5ExprPhrase; +typedef struct Fts5ExprNearset Fts5ExprNearset; + +struct Fts5Token { + const char *p; /* Token text (not NULL terminated) */ + int n; /* Size of buffer p in bytes */ +}; + +/* Parse a MATCH expression. */ +static int sqlite3Fts5ExprNew( + Fts5Config *pConfig, + const char *zExpr, + Fts5Expr **ppNew, + char **pzErr +); + +/* +** for(rc = sqlite3Fts5ExprFirst(pExpr, pIdx, bDesc); +** rc==SQLITE_OK && 0==sqlite3Fts5ExprEof(pExpr); +** rc = sqlite3Fts5ExprNext(pExpr) +** ){ +** // The document with rowid iRowid matches the expression! +** i64 iRowid = sqlite3Fts5ExprRowid(pExpr); +** } +*/ +static int sqlite3Fts5ExprFirst(Fts5Expr*, Fts5Index *pIdx, i64 iMin, int bDesc); +static int sqlite3Fts5ExprNext(Fts5Expr*, i64 iMax); +static int sqlite3Fts5ExprEof(Fts5Expr*); +static i64 sqlite3Fts5ExprRowid(Fts5Expr*); + +static void sqlite3Fts5ExprFree(Fts5Expr*); + +/* Called during startup to register a UDF with SQLite */ +static int sqlite3Fts5ExprInit(Fts5Global*, sqlite3*); + +static int sqlite3Fts5ExprPhraseCount(Fts5Expr*); +static int sqlite3Fts5ExprPhraseSize(Fts5Expr*, int iPhrase); +static int sqlite3Fts5ExprPoslist(Fts5Expr*, int, const u8 **); + +static int sqlite3Fts5ExprClonePhrase(Fts5Config*, Fts5Expr*, int, Fts5Expr**); + +/******************************************* +** The fts5_expr.c API above this point is used by the other hand-written +** C code in this module. The interfaces below this point are called by +** the parser code in fts5parse.y. */ + +static void sqlite3Fts5ParseError(Fts5Parse *pParse, const char *zFmt, ...); + +static Fts5ExprNode *sqlite3Fts5ParseNode( + Fts5Parse *pParse, + int eType, + Fts5ExprNode *pLeft, + Fts5ExprNode *pRight, + Fts5ExprNearset *pNear +); + +static Fts5ExprPhrase *sqlite3Fts5ParseTerm( + Fts5Parse *pParse, + Fts5ExprPhrase *pPhrase, + Fts5Token *pToken, + int bPrefix +); + +static Fts5ExprNearset *sqlite3Fts5ParseNearset( + Fts5Parse*, + Fts5ExprNearset*, + Fts5ExprPhrase* +); + +static Fts5Colset *sqlite3Fts5ParseColset( + Fts5Parse*, + Fts5Colset*, + Fts5Token * +); + +static void sqlite3Fts5ParsePhraseFree(Fts5ExprPhrase*); +static void sqlite3Fts5ParseNearsetFree(Fts5ExprNearset*); +static void sqlite3Fts5ParseNodeFree(Fts5ExprNode*); + +static void sqlite3Fts5ParseSetDistance(Fts5Parse*, Fts5ExprNearset*, Fts5Token*); +static void sqlite3Fts5ParseSetColset(Fts5Parse*, Fts5ExprNearset*, Fts5Colset*); +static void sqlite3Fts5ParseFinished(Fts5Parse *pParse, Fts5ExprNode *p); +static void sqlite3Fts5ParseNear(Fts5Parse *pParse, Fts5Token*); + +/* +** End of interface to code in fts5_expr.c. +**************************************************************************/ + + + +/************************************************************************** +** Interface to code in fts5_aux.c. +*/ + +static int sqlite3Fts5AuxInit(fts5_api*); +/* +** End of interface to code in fts5_aux.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_tokenizer.c. +*/ + +static int sqlite3Fts5TokenizerInit(fts5_api*); +/* +** End of interface to code in fts5_tokenizer.c. +**************************************************************************/ + +/************************************************************************** +** Interface to code in fts5_vocab.c. +*/ + +static int sqlite3Fts5VocabInit(Fts5Global*, sqlite3*); + +/* +** End of interface to code in fts5_vocab.c. +**************************************************************************/ + + +/************************************************************************** +** Interface to automatically generated code in fts5_unicode2.c. +*/ +static int sqlite3Fts5UnicodeIsalnum(int c); +static int sqlite3Fts5UnicodeIsdiacritic(int c); +static int sqlite3Fts5UnicodeFold(int c, int bRemoveDiacritic); +/* +** End of interface to code in fts5_unicode2.c. +**************************************************************************/ + +#endif + +#define FTS5_OR 1 +#define FTS5_AND 2 +#define FTS5_NOT 3 +#define FTS5_TERM 4 +#define FTS5_COLON 5 +#define FTS5_LP 6 +#define FTS5_RP 7 +#define FTS5_LCP 8 +#define FTS5_RCP 9 +#define FTS5_STRING 10 +#define FTS5_COMMA 11 +#define FTS5_PLUS 12 +#define FTS5_STAR 13 + +/* Driver template for the LEMON parser generator. +** The author disclaims copyright to this source code. +** +** This version of "lempar.c" is modified, slightly, for use by SQLite. +** The only modifications are the addition of a couple of NEVER() +** macros to disable tests that are needed in the case of a general +** LALR(1) grammar but which are always false in the +** specific grammar used by SQLite. +*/ +/* First off, code is included that follows the "include" declaration +** in the input grammar file. */ +/* #include */ + + +/* +** Disable all error recovery processing in the parser push-down +** automaton. +*/ +#define fts5YYNOERRORRECOVERY 1 + +/* +** Make fts5yytestcase() the same as testcase() +*/ +#define fts5yytestcase(X) testcase(X) + +/* Next is all token values, in a form suitable for use by makeheaders. +** This section will be null unless lemon is run with the -m switch. +*/ +/* +** These constants (all generated automatically by the parser generator) +** specify the various kinds of tokens (terminals) that the parser +** understands. +** +** Each symbol here is a terminal symbol in the grammar. +*/ +/* Make sure the INTERFACE macro is defined. +*/ +#ifndef INTERFACE +# define INTERFACE 1 +#endif +/* The next thing included is series of defines which control +** various aspects of the generated parser. +** fts5YYCODETYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 terminals +** and nonterminals. "int" is used otherwise. +** fts5YYNOCODE is a number of type fts5YYCODETYPE which corresponds +** to no legal terminal or nonterminal number. This +** number is used to fill in empty slots of the hash +** table. +** fts5YYFALLBACK If defined, this indicates that one or more tokens +** have fall-back values which should be used if the +** original value of the token will not parse. +** fts5YYACTIONTYPE is the data type used for storing terminal +** and nonterminal numbers. "unsigned char" is +** used if there are fewer than 250 rules and +** states combined. "int" is used otherwise. +** sqlite3Fts5ParserFTS5TOKENTYPE is the data type used for minor tokens given +** directly to the parser from the tokenizer. +** fts5YYMINORTYPE is the data type used for all minor tokens. +** This is typically a union of many types, one of +** which is sqlite3Fts5ParserFTS5TOKENTYPE. The entry in the union +** for base tokens is called "fts5yy0". +** fts5YYSTACKDEPTH is the maximum depth of the parser's stack. If +** zero the stack is dynamically sized using realloc() +** sqlite3Fts5ParserARG_SDECL A static variable declaration for the %extra_argument +** sqlite3Fts5ParserARG_PDECL A parameter declaration for the %extra_argument +** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser +** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser +** fts5YYERRORSYMBOL is the code number of the error symbol. If not +** defined, then do no error processing. +** fts5YYNSTATE the combined number of states. +** fts5YYNRULE the number of rules in the grammar +** fts5YY_MAX_SHIFT Maximum value for shift actions +** fts5YY_MIN_SHIFTREDUCE Minimum value for shift-reduce actions +** fts5YY_MAX_SHIFTREDUCE Maximum value for shift-reduce actions +** fts5YY_MIN_REDUCE Maximum value for reduce actions +** fts5YY_ERROR_ACTION The fts5yy_action[] code for syntax error +** fts5YY_ACCEPT_ACTION The fts5yy_action[] code for accept +** fts5YY_NO_ACTION The fts5yy_action[] code for no-op +*/ +#define fts5YYCODETYPE unsigned char +#define fts5YYNOCODE 27 +#define fts5YYACTIONTYPE unsigned char +#define sqlite3Fts5ParserFTS5TOKENTYPE Fts5Token +typedef union { + int fts5yyinit; + sqlite3Fts5ParserFTS5TOKENTYPE fts5yy0; + Fts5Colset* fts5yy3; + Fts5ExprPhrase* fts5yy11; + Fts5ExprNode* fts5yy18; + int fts5yy20; + Fts5ExprNearset* fts5yy26; +} fts5YYMINORTYPE; +#ifndef fts5YYSTACKDEPTH +#define fts5YYSTACKDEPTH 100 +#endif +#define sqlite3Fts5ParserARG_SDECL Fts5Parse *pParse; +#define sqlite3Fts5ParserARG_PDECL ,Fts5Parse *pParse +#define sqlite3Fts5ParserARG_FETCH Fts5Parse *pParse = fts5yypParser->pParse +#define sqlite3Fts5ParserARG_STORE fts5yypParser->pParse = pParse +#define fts5YYNSTATE 26 +#define fts5YYNRULE 24 +#define fts5YY_MAX_SHIFT 25 +#define fts5YY_MIN_SHIFTREDUCE 40 +#define fts5YY_MAX_SHIFTREDUCE 63 +#define fts5YY_MIN_REDUCE 64 +#define fts5YY_MAX_REDUCE 87 +#define fts5YY_ERROR_ACTION 88 +#define fts5YY_ACCEPT_ACTION 89 +#define fts5YY_NO_ACTION 90 + +/* The fts5yyzerominor constant is used to initialize instances of +** fts5YYMINORTYPE objects to zero. */ +static const fts5YYMINORTYPE fts5yyzerominor = { 0 }; + +/* Define the fts5yytestcase() macro to be a no-op if is not already defined +** otherwise. +** +** Applications can choose to define fts5yytestcase() in the %include section +** to a macro that can assist in verifying code coverage. For production +** code the fts5yytestcase() macro should be turned off. But it is useful +** for testing. +*/ +#ifndef fts5yytestcase +# define fts5yytestcase(X) +#endif + + +/* Next are the tables used to determine what action to take based on the +** current state and lookahead token. These tables are used to implement +** functions that take a state number and lookahead value and return an +** action integer. +** +** Suppose the action integer is N. Then the action is determined as +** follows +** +** 0 <= N <= fts5YY_MAX_SHIFT Shift N. That is, push the lookahead +** token onto the stack and goto state N. +** +** N between fts5YY_MIN_SHIFTREDUCE Shift to an arbitrary state then +** and fts5YY_MAX_SHIFTREDUCE reduce by rule N-fts5YY_MIN_SHIFTREDUCE. +** +** N between fts5YY_MIN_REDUCE Reduce by rule N-fts5YY_MIN_REDUCE +** and fts5YY_MAX_REDUCE + +** N == fts5YY_ERROR_ACTION A syntax error has occurred. +** +** N == fts5YY_ACCEPT_ACTION The parser accepts its input. +** +** N == fts5YY_NO_ACTION No such action. Denotes unused +** slots in the fts5yy_action[] table. +** +** The action table is constructed as a single large table named fts5yy_action[]. +** Given state S and lookahead X, the action is computed as +** +** fts5yy_action[ fts5yy_shift_ofst[S] + X ] +** +** If the index value fts5yy_shift_ofst[S]+X is out of range or if the value +** fts5yy_lookahead[fts5yy_shift_ofst[S]+X] is not equal to X or if fts5yy_shift_ofst[S] +** is equal to fts5YY_SHIFT_USE_DFLT, it means that the action is not in the table +** and that fts5yy_default[S] should be used instead. +** +** The formula above is for computing the action when the lookahead is +** a terminal symbol. If the lookahead is a non-terminal (as occurs after +** a reduce action) then the fts5yy_reduce_ofst[] array is used in place of +** the fts5yy_shift_ofst[] array and fts5YY_REDUCE_USE_DFLT is used in place of +** fts5YY_SHIFT_USE_DFLT. +** +** The following are the tables generated in this section: +** +** fts5yy_action[] A single table containing all actions. +** fts5yy_lookahead[] A table containing the lookahead for each entry in +** fts5yy_action. Used to detect hash collisions. +** fts5yy_shift_ofst[] For each state, the offset into fts5yy_action for +** shifting terminals. +** fts5yy_reduce_ofst[] For each state, the offset into fts5yy_action for +** shifting non-terminals after a reduce. +** fts5yy_default[] Default action for each state. +*/ +#define fts5YY_ACTTAB_COUNT (78) +static const fts5YYACTIONTYPE fts5yy_action[] = { + /* 0 */ 89, 15, 46, 5, 48, 24, 12, 19, 23, 14, + /* 10 */ 46, 5, 48, 24, 20, 21, 23, 43, 46, 5, + /* 20 */ 48, 24, 6, 18, 23, 17, 46, 5, 48, 24, + /* 30 */ 75, 7, 23, 25, 46, 5, 48, 24, 62, 47, + /* 40 */ 23, 48, 24, 7, 11, 23, 9, 3, 4, 2, + /* 50 */ 62, 50, 52, 44, 64, 3, 4, 2, 49, 4, + /* 60 */ 2, 1, 23, 11, 16, 9, 12, 2, 10, 61, + /* 70 */ 53, 59, 62, 60, 22, 13, 55, 8, +}; +static const fts5YYCODETYPE fts5yy_lookahead[] = { + /* 0 */ 15, 16, 17, 18, 19, 20, 10, 11, 23, 16, + /* 10 */ 17, 18, 19, 20, 23, 24, 23, 16, 17, 18, + /* 20 */ 19, 20, 22, 23, 23, 16, 17, 18, 19, 20, + /* 30 */ 5, 6, 23, 16, 17, 18, 19, 20, 13, 17, + /* 40 */ 23, 19, 20, 6, 8, 23, 10, 1, 2, 3, + /* 50 */ 13, 9, 10, 7, 0, 1, 2, 3, 19, 2, + /* 60 */ 3, 6, 23, 8, 21, 10, 10, 3, 10, 25, + /* 70 */ 10, 10, 13, 25, 12, 10, 7, 5, +}; +#define fts5YY_SHIFT_USE_DFLT (-5) +#define fts5YY_SHIFT_COUNT (25) +#define fts5YY_SHIFT_MIN (-4) +#define fts5YY_SHIFT_MAX (72) +static const signed char fts5yy_shift_ofst[] = { + /* 0 */ 55, 55, 55, 55, 55, 36, -4, 56, 58, 25, + /* 10 */ 37, 60, 59, 59, 46, 54, 42, 57, 62, 61, + /* 20 */ 62, 69, 65, 62, 72, 64, +}; +#define fts5YY_REDUCE_USE_DFLT (-16) +#define fts5YY_REDUCE_COUNT (13) +#define fts5YY_REDUCE_MIN (-15) +#define fts5YY_REDUCE_MAX (48) +static const signed char fts5yy_reduce_ofst[] = { + /* 0 */ -15, -7, 1, 9, 17, 22, -9, 0, 39, 44, + /* 10 */ 44, 43, 44, 48, +}; +static const fts5YYACTIONTYPE fts5yy_default[] = { + /* 0 */ 88, 88, 88, 88, 88, 69, 82, 88, 88, 87, + /* 10 */ 87, 88, 87, 87, 88, 88, 88, 66, 80, 88, + /* 20 */ 81, 88, 88, 78, 88, 65, +}; + +/* The next table maps tokens into fallback tokens. If a construct +** like the following: +** +** %fallback ID X Y Z. +** +** appears in the grammar, then ID becomes a fallback token for X, Y, +** and Z. Whenever one of the tokens X, Y, or Z is input to the parser +** but it does not parse, the type of the token is changed to ID and +** the parse is retried before an error is thrown. +*/ +#ifdef fts5YYFALLBACK +static const fts5YYCODETYPE fts5yyFallback[] = { +}; +#endif /* fts5YYFALLBACK */ + +/* The following structure represents a single element of the +** parser's stack. Information stored includes: +** +** + The state number for the parser at this level of the stack. +** +** + The value of the token stored at this level of the stack. +** (In other words, the "major" token.) +** +** + The semantic value stored at this level of the stack. This is +** the information used by the action routines in the grammar. +** It is sometimes called the "minor" token. +** +** After the "shift" half of a SHIFTREDUCE action, the stateno field +** actually contains the reduce action for the second half of the +** SHIFTREDUCE. +*/ +struct fts5yyStackEntry { + fts5YYACTIONTYPE stateno; /* The state-number, or reduce action in SHIFTREDUCE */ + fts5YYCODETYPE major; /* The major token value. This is the code + ** number for the token at this stack level */ + fts5YYMINORTYPE minor; /* The user-supplied minor token value. This + ** is the value of the token */ +}; +typedef struct fts5yyStackEntry fts5yyStackEntry; + +/* The state of the parser is completely contained in an instance of +** the following structure */ +struct fts5yyParser { + int fts5yyidx; /* Index of top element in stack */ +#ifdef fts5YYTRACKMAXSTACKDEPTH + int fts5yyidxMax; /* Maximum value of fts5yyidx */ +#endif + int fts5yyerrcnt; /* Shifts left before out of the error */ + sqlite3Fts5ParserARG_SDECL /* A place to hold %extra_argument */ +#if fts5YYSTACKDEPTH<=0 + int fts5yystksz; /* Current side of the stack */ + fts5yyStackEntry *fts5yystack; /* The parser's stack */ +#else + fts5yyStackEntry fts5yystack[fts5YYSTACKDEPTH]; /* The parser's stack */ +#endif +}; +typedef struct fts5yyParser fts5yyParser; + +#ifndef NDEBUG +/* #include */ +static FILE *fts5yyTraceFILE = 0; +static char *fts5yyTracePrompt = 0; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* +** Turn parser tracing on by giving a stream to which to write the trace +** and a prompt to preface each trace message. Tracing is turned off +** by making either argument NULL +** +** Inputs: +**
    +**
  • A FILE* to which trace output should be written. +** If NULL, then tracing is turned off. +**
  • A prefix string written at the beginning of every +** line of trace output. If NULL, then tracing is +** turned off. +**
+** +** Outputs: +** None. +*/ +static void sqlite3Fts5ParserTrace(FILE *TraceFILE, char *zTracePrompt){ + fts5yyTraceFILE = TraceFILE; + fts5yyTracePrompt = zTracePrompt; + if( fts5yyTraceFILE==0 ) fts5yyTracePrompt = 0; + else if( fts5yyTracePrompt==0 ) fts5yyTraceFILE = 0; +} +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing shifts, the names of all terminals and nonterminals +** are required. The following table supplies these names */ +static const char *const fts5yyTokenName[] = { + "$", "OR", "AND", "NOT", + "TERM", "COLON", "LP", "RP", + "LCP", "RCP", "STRING", "COMMA", + "PLUS", "STAR", "error", "input", + "expr", "cnearset", "exprlist", "nearset", + "colset", "colsetlist", "nearphrases", "phrase", + "neardist_opt", "star_opt", +}; +#endif /* NDEBUG */ + +#ifndef NDEBUG +/* For tracing reduce actions, the names of all rules are required. +*/ +static const char *const fts5yyRuleName[] = { + /* 0 */ "input ::= expr", + /* 1 */ "expr ::= expr AND expr", + /* 2 */ "expr ::= expr OR expr", + /* 3 */ "expr ::= expr NOT expr", + /* 4 */ "expr ::= LP expr RP", + /* 5 */ "expr ::= exprlist", + /* 6 */ "exprlist ::= cnearset", + /* 7 */ "exprlist ::= exprlist cnearset", + /* 8 */ "cnearset ::= nearset", + /* 9 */ "cnearset ::= colset COLON nearset", + /* 10 */ "colset ::= LCP colsetlist RCP", + /* 11 */ "colset ::= STRING", + /* 12 */ "colsetlist ::= colsetlist STRING", + /* 13 */ "colsetlist ::= STRING", + /* 14 */ "nearset ::= phrase", + /* 15 */ "nearset ::= STRING LP nearphrases neardist_opt RP", + /* 16 */ "nearphrases ::= phrase", + /* 17 */ "nearphrases ::= nearphrases phrase", + /* 18 */ "neardist_opt ::=", + /* 19 */ "neardist_opt ::= COMMA STRING", + /* 20 */ "phrase ::= phrase PLUS STRING star_opt", + /* 21 */ "phrase ::= STRING star_opt", + /* 22 */ "star_opt ::= STAR", + /* 23 */ "star_opt ::=", +}; +#endif /* NDEBUG */ + + +#if fts5YYSTACKDEPTH<=0 +/* +** Try to increase the size of the parser stack. +*/ +static void fts5yyGrowStack(fts5yyParser *p){ + int newSize; + fts5yyStackEntry *pNew; + + newSize = p->fts5yystksz*2 + 100; + pNew = realloc(p->fts5yystack, newSize*sizeof(pNew[0])); + if( pNew ){ + p->fts5yystack = pNew; + p->fts5yystksz = newSize; +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sStack grows to %d entries!\n", + fts5yyTracePrompt, p->fts5yystksz); + } +#endif + } +} +#endif + +/* +** This function allocates a new parser. +** The only argument is a pointer to a function which works like +** malloc. +** +** Inputs: +** A pointer to the function used to allocate memory. +** +** Outputs: +** A pointer to a parser. This pointer is used in subsequent calls +** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. +*/ +static void *sqlite3Fts5ParserAlloc(void *(*mallocProc)(u64)){ + fts5yyParser *pParser; + pParser = (fts5yyParser*)(*mallocProc)( (u64)sizeof(fts5yyParser) ); + if( pParser ){ + pParser->fts5yyidx = -1; +#ifdef fts5YYTRACKMAXSTACKDEPTH + pParser->fts5yyidxMax = 0; +#endif +#if fts5YYSTACKDEPTH<=0 + pParser->fts5yystack = NULL; + pParser->fts5yystksz = 0; + fts5yyGrowStack(pParser); +#endif + } + return pParser; +} + +/* The following function deletes the value associated with a +** symbol. The symbol can be either a terminal or nonterminal. +** "fts5yymajor" is the symbol code, and "fts5yypminor" is a pointer to +** the value. +*/ +static void fts5yy_destructor( + fts5yyParser *fts5yypParser, /* The parser */ + fts5YYCODETYPE fts5yymajor, /* Type code for object to destroy */ + fts5YYMINORTYPE *fts5yypminor /* The object to be destroyed */ +){ + sqlite3Fts5ParserARG_FETCH; + switch( fts5yymajor ){ + /* Here is inserted the actions which take place when a + ** terminal or non-terminal is destroyed. This can happen + ** when the symbol is popped from the stack during a + ** reduce or during error processing or when a parser is + ** being destroyed before it is finished parsing. + ** + ** Note: during a reduce, the only symbols destroyed are those + ** which appear on the RHS of the rule, but which are not used + ** inside the C code. + */ + case 15: /* input */ +{ + (void)pParse; +} + break; + case 16: /* expr */ + case 17: /* cnearset */ + case 18: /* exprlist */ +{ + sqlite3Fts5ParseNodeFree((fts5yypminor->fts5yy18)); +} + break; + case 19: /* nearset */ + case 22: /* nearphrases */ +{ + sqlite3Fts5ParseNearsetFree((fts5yypminor->fts5yy26)); +} + break; + case 20: /* colset */ + case 21: /* colsetlist */ +{ + sqlite3_free((fts5yypminor->fts5yy3)); +} + break; + case 23: /* phrase */ +{ + sqlite3Fts5ParsePhraseFree((fts5yypminor->fts5yy11)); +} + break; + default: break; /* If no destructor action specified: do nothing */ + } +} + +/* +** Pop the parser's stack once. +** +** If there is a destructor routine associated with the token which +** is popped from the stack, then call it. +** +** Return the major token number for the symbol popped. +*/ +static int fts5yy_pop_parser_stack(fts5yyParser *pParser){ + fts5YYCODETYPE fts5yymajor; + fts5yyStackEntry *fts5yytos = &pParser->fts5yystack[pParser->fts5yyidx]; + + /* There is no mechanism by which the parser stack can be popped below + ** empty in SQLite. */ + assert( pParser->fts5yyidx>=0 ); +#ifndef NDEBUG + if( fts5yyTraceFILE && pParser->fts5yyidx>=0 ){ + fprintf(fts5yyTraceFILE,"%sPopping %s\n", + fts5yyTracePrompt, + fts5yyTokenName[fts5yytos->major]); + } +#endif + fts5yymajor = fts5yytos->major; + fts5yy_destructor(pParser, fts5yymajor, &fts5yytos->minor); + pParser->fts5yyidx--; + return fts5yymajor; +} + +/* +** Deallocate and destroy a parser. Destructors are all called for +** all stack elements before shutting the parser down. +** +** Inputs: +**
    +**
  • A pointer to the parser. This should be a pointer +** obtained from sqlite3Fts5ParserAlloc. +**
  • A pointer to a function used to reclaim memory obtained +** from malloc. +**
+*/ +static void sqlite3Fts5ParserFree( + void *p, /* The parser to be deleted */ + void (*freeProc)(void*) /* Function used to reclaim memory */ +){ + fts5yyParser *pParser = (fts5yyParser*)p; + /* In SQLite, we never try to destroy a parser that was not successfully + ** created in the first place. */ + if( NEVER(pParser==0) ) return; + while( pParser->fts5yyidx>=0 ) fts5yy_pop_parser_stack(pParser); +#if fts5YYSTACKDEPTH<=0 + free(pParser->fts5yystack); +#endif + (*freeProc)((void*)pParser); +} + +/* +** Return the peak depth of the stack for a parser. +*/ +#ifdef fts5YYTRACKMAXSTACKDEPTH +static int sqlite3Fts5ParserStackPeak(void *p){ + fts5yyParser *pParser = (fts5yyParser*)p; + return pParser->fts5yyidxMax; +} +#endif + +/* +** Find the appropriate action for a parser given the terminal +** look-ahead token iLookAhead. +** +** If the look-ahead token is fts5YYNOCODE, then check to see if the action is +** independent of the look-ahead. If it is, return the action, otherwise +** return fts5YY_NO_ACTION. +*/ +static int fts5yy_find_shift_action( + fts5yyParser *pParser, /* The parser */ + fts5YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; + int stateno = pParser->fts5yystack[pParser->fts5yyidx].stateno; + + if( stateno>=fts5YY_MIN_REDUCE ) return stateno; + assert( stateno <= fts5YY_SHIFT_COUNT ); + i = fts5yy_shift_ofst[stateno]; + if( i==fts5YY_SHIFT_USE_DFLT ) return fts5yy_default[stateno]; + assert( iLookAhead!=fts5YYNOCODE ); + i += iLookAhead; + if( i<0 || i>=fts5YY_ACTTAB_COUNT || fts5yy_lookahead[i]!=iLookAhead ){ + if( iLookAhead>0 ){ +#ifdef fts5YYFALLBACK + fts5YYCODETYPE iFallback; /* Fallback token */ + if( iLookAhead %s\n", + fts5yyTracePrompt, fts5yyTokenName[iLookAhead], fts5yyTokenName[iFallback]); + } +#endif + return fts5yy_find_shift_action(pParser, iFallback); + } +#endif +#ifdef fts5YYWILDCARD + { + int j = i - iLookAhead + fts5YYWILDCARD; + if( +#if fts5YY_SHIFT_MIN+fts5YYWILDCARD<0 + j>=0 && +#endif +#if fts5YY_SHIFT_MAX+fts5YYWILDCARD>=fts5YY_ACTTAB_COUNT + j %s\n", + fts5yyTracePrompt, fts5yyTokenName[iLookAhead], fts5yyTokenName[fts5YYWILDCARD]); + } +#endif /* NDEBUG */ + return fts5yy_action[j]; + } + } +#endif /* fts5YYWILDCARD */ + } + return fts5yy_default[stateno]; + }else{ + return fts5yy_action[i]; + } +} + +/* +** Find the appropriate action for a parser given the non-terminal +** look-ahead token iLookAhead. +** +** If the look-ahead token is fts5YYNOCODE, then check to see if the action is +** independent of the look-ahead. If it is, return the action, otherwise +** return fts5YY_NO_ACTION. +*/ +static int fts5yy_find_reduce_action( + int stateno, /* Current state number */ + fts5YYCODETYPE iLookAhead /* The look-ahead token */ +){ + int i; +#ifdef fts5YYERRORSYMBOL + if( stateno>fts5YY_REDUCE_COUNT ){ + return fts5yy_default[stateno]; + } +#else + assert( stateno<=fts5YY_REDUCE_COUNT ); +#endif + i = fts5yy_reduce_ofst[stateno]; + assert( i!=fts5YY_REDUCE_USE_DFLT ); + assert( iLookAhead!=fts5YYNOCODE ); + i += iLookAhead; +#ifdef fts5YYERRORSYMBOL + if( i<0 || i>=fts5YY_ACTTAB_COUNT || fts5yy_lookahead[i]!=iLookAhead ){ + return fts5yy_default[stateno]; + } +#else + assert( i>=0 && ifts5yyidx--; +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sStack Overflow!\n",fts5yyTracePrompt); + } +#endif + while( fts5yypParser->fts5yyidx>=0 ) fts5yy_pop_parser_stack(fts5yypParser); + /* Here code is inserted which will execute if the parser + ** stack every overflows */ + + assert( 0 ); + sqlite3Fts5ParserARG_STORE; /* Suppress warning about unused %extra_argument var */ +} + +/* +** Print tracing information for a SHIFT action +*/ +#ifndef NDEBUG +static void fts5yyTraceShift(fts5yyParser *fts5yypParser, int fts5yyNewState){ + if( fts5yyTraceFILE ){ + int i; + if( fts5yyNewStatefts5yyidx; i++) + fprintf(fts5yyTraceFILE," %s",fts5yyTokenName[fts5yypParser->fts5yystack[i].major]); + fprintf(fts5yyTraceFILE,"\n"); + }else{ + fprintf(fts5yyTraceFILE,"%sShift *\n",fts5yyTracePrompt); + } + } +} +#else +# define fts5yyTraceShift(X,Y) +#endif + +/* +** Perform a shift action. Return the number of errors. +*/ +static void fts5yy_shift( + fts5yyParser *fts5yypParser, /* The parser to be shifted */ + int fts5yyNewState, /* The new state to shift in */ + int fts5yyMajor, /* The major token to shift in */ + fts5YYMINORTYPE *fts5yypMinor /* Pointer to the minor token to shift in */ +){ + fts5yyStackEntry *fts5yytos; + fts5yypParser->fts5yyidx++; +#ifdef fts5YYTRACKMAXSTACKDEPTH + if( fts5yypParser->fts5yyidx>fts5yypParser->fts5yyidxMax ){ + fts5yypParser->fts5yyidxMax = fts5yypParser->fts5yyidx; + } +#endif +#if fts5YYSTACKDEPTH>0 + if( fts5yypParser->fts5yyidx>=fts5YYSTACKDEPTH ){ + fts5yyStackOverflow(fts5yypParser, fts5yypMinor); + return; + } +#else + if( fts5yypParser->fts5yyidx>=fts5yypParser->fts5yystksz ){ + fts5yyGrowStack(fts5yypParser); + if( fts5yypParser->fts5yyidx>=fts5yypParser->fts5yystksz ){ + fts5yyStackOverflow(fts5yypParser, fts5yypMinor); + return; + } + } +#endif + fts5yytos = &fts5yypParser->fts5yystack[fts5yypParser->fts5yyidx]; + fts5yytos->stateno = (fts5YYACTIONTYPE)fts5yyNewState; + fts5yytos->major = (fts5YYCODETYPE)fts5yyMajor; + fts5yytos->minor = *fts5yypMinor; + fts5yyTraceShift(fts5yypParser, fts5yyNewState); +} + +/* The following table contains information about every rule that +** is used during the reduce. +*/ +static const struct { + fts5YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ + unsigned char nrhs; /* Number of right-hand side symbols in the rule */ +} fts5yyRuleInfo[] = { + { 15, 1 }, + { 16, 3 }, + { 16, 3 }, + { 16, 3 }, + { 16, 3 }, + { 16, 1 }, + { 18, 1 }, + { 18, 2 }, + { 17, 1 }, + { 17, 3 }, + { 20, 3 }, + { 20, 1 }, + { 21, 2 }, + { 21, 1 }, + { 19, 1 }, + { 19, 5 }, + { 22, 1 }, + { 22, 2 }, + { 24, 0 }, + { 24, 2 }, + { 23, 4 }, + { 23, 2 }, + { 25, 1 }, + { 25, 0 }, +}; + +static void fts5yy_accept(fts5yyParser*); /* Forward Declaration */ + +/* +** Perform a reduce action and the shift that must immediately +** follow the reduce. +*/ +static void fts5yy_reduce( + fts5yyParser *fts5yypParser, /* The parser */ + int fts5yyruleno /* Number of the rule by which to reduce */ +){ + int fts5yygoto; /* The next state */ + int fts5yyact; /* The next action */ + fts5YYMINORTYPE fts5yygotominor; /* The LHS of the rule reduced */ + fts5yyStackEntry *fts5yymsp; /* The top of the parser's stack */ + int fts5yysize; /* Amount to pop the stack */ + sqlite3Fts5ParserARG_FETCH; + fts5yymsp = &fts5yypParser->fts5yystack[fts5yypParser->fts5yyidx]; +#ifndef NDEBUG + if( fts5yyTraceFILE && fts5yyruleno>=0 + && fts5yyruleno<(int)(sizeof(fts5yyRuleName)/sizeof(fts5yyRuleName[0])) ){ + fts5yysize = fts5yyRuleInfo[fts5yyruleno].nrhs; + fprintf(fts5yyTraceFILE, "%sReduce [%s] -> state %d.\n", fts5yyTracePrompt, + fts5yyRuleName[fts5yyruleno], fts5yymsp[-fts5yysize].stateno); + } +#endif /* NDEBUG */ + + /* Silence complaints from purify about fts5yygotominor being uninitialized + ** in some cases when it is copied into the stack after the following + ** switch. fts5yygotominor is uninitialized when a rule reduces that does + ** not set the value of its left-hand side nonterminal. Leaving the + ** value of the nonterminal uninitialized is utterly harmless as long + ** as the value is never used. So really the only thing this code + ** accomplishes is to quieten purify. + ** + ** 2007-01-16: The wireshark project (www.wireshark.org) reports that + ** without this code, their parser segfaults. I'm not sure what there + ** parser is doing to make this happen. This is the second bug report + ** from wireshark this week. Clearly they are stressing Lemon in ways + ** that it has not been previously stressed... (SQLite ticket #2172) + */ + /*memset(&fts5yygotominor, 0, sizeof(fts5yygotominor));*/ + fts5yygotominor = fts5yyzerominor; + + + switch( fts5yyruleno ){ + /* Beginning here are the reduction cases. A typical example + ** follows: + ** case 0: + ** #line + ** { ... } // User supplied code + ** #line + ** break; + */ + case 0: /* input ::= expr */ +{ sqlite3Fts5ParseFinished(pParse, fts5yymsp[0].minor.fts5yy18); } + break; + case 1: /* expr ::= expr AND expr */ +{ + fts5yygotominor.fts5yy18 = sqlite3Fts5ParseNode(pParse, FTS5_AND, fts5yymsp[-2].minor.fts5yy18, fts5yymsp[0].minor.fts5yy18, 0); +} + break; + case 2: /* expr ::= expr OR expr */ +{ + fts5yygotominor.fts5yy18 = sqlite3Fts5ParseNode(pParse, FTS5_OR, fts5yymsp[-2].minor.fts5yy18, fts5yymsp[0].minor.fts5yy18, 0); +} + break; + case 3: /* expr ::= expr NOT expr */ +{ + fts5yygotominor.fts5yy18 = sqlite3Fts5ParseNode(pParse, FTS5_NOT, fts5yymsp[-2].minor.fts5yy18, fts5yymsp[0].minor.fts5yy18, 0); +} + break; + case 4: /* expr ::= LP expr RP */ +{fts5yygotominor.fts5yy18 = fts5yymsp[-1].minor.fts5yy18;} + break; + case 5: /* expr ::= exprlist */ + case 6: /* exprlist ::= cnearset */ fts5yytestcase(fts5yyruleno==6); +{fts5yygotominor.fts5yy18 = fts5yymsp[0].minor.fts5yy18;} + break; + case 7: /* exprlist ::= exprlist cnearset */ +{ + fts5yygotominor.fts5yy18 = sqlite3Fts5ParseNode(pParse, FTS5_AND, fts5yymsp[-1].minor.fts5yy18, fts5yymsp[0].minor.fts5yy18, 0); +} + break; + case 8: /* cnearset ::= nearset */ +{ + fts5yygotominor.fts5yy18 = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, fts5yymsp[0].minor.fts5yy26); +} + break; + case 9: /* cnearset ::= colset COLON nearset */ +{ + sqlite3Fts5ParseSetColset(pParse, fts5yymsp[0].minor.fts5yy26, fts5yymsp[-2].minor.fts5yy3); + fts5yygotominor.fts5yy18 = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, fts5yymsp[0].minor.fts5yy26); +} + break; + case 10: /* colset ::= LCP colsetlist RCP */ +{ fts5yygotominor.fts5yy3 = fts5yymsp[-1].minor.fts5yy3; } + break; + case 11: /* colset ::= STRING */ +{ + fts5yygotominor.fts5yy3 = sqlite3Fts5ParseColset(pParse, 0, &fts5yymsp[0].minor.fts5yy0); +} + break; + case 12: /* colsetlist ::= colsetlist STRING */ +{ + fts5yygotominor.fts5yy3 = sqlite3Fts5ParseColset(pParse, fts5yymsp[-1].minor.fts5yy3, &fts5yymsp[0].minor.fts5yy0); } + break; + case 13: /* colsetlist ::= STRING */ +{ + fts5yygotominor.fts5yy3 = sqlite3Fts5ParseColset(pParse, 0, &fts5yymsp[0].minor.fts5yy0); +} + break; + case 14: /* nearset ::= phrase */ +{ fts5yygotominor.fts5yy26 = sqlite3Fts5ParseNearset(pParse, 0, fts5yymsp[0].minor.fts5yy11); } + break; + case 15: /* nearset ::= STRING LP nearphrases neardist_opt RP */ +{ + sqlite3Fts5ParseNear(pParse, &fts5yymsp[-4].minor.fts5yy0); + sqlite3Fts5ParseSetDistance(pParse, fts5yymsp[-2].minor.fts5yy26, &fts5yymsp[-1].minor.fts5yy0); + fts5yygotominor.fts5yy26 = fts5yymsp[-2].minor.fts5yy26; +} + break; + case 16: /* nearphrases ::= phrase */ +{ + fts5yygotominor.fts5yy26 = sqlite3Fts5ParseNearset(pParse, 0, fts5yymsp[0].minor.fts5yy11); +} + break; + case 17: /* nearphrases ::= nearphrases phrase */ +{ + fts5yygotominor.fts5yy26 = sqlite3Fts5ParseNearset(pParse, fts5yymsp[-1].minor.fts5yy26, fts5yymsp[0].minor.fts5yy11); +} + break; + case 18: /* neardist_opt ::= */ +{ fts5yygotominor.fts5yy0.p = 0; fts5yygotominor.fts5yy0.n = 0; } + break; + case 19: /* neardist_opt ::= COMMA STRING */ +{ fts5yygotominor.fts5yy0 = fts5yymsp[0].minor.fts5yy0; } + break; + case 20: /* phrase ::= phrase PLUS STRING star_opt */ +{ + fts5yygotominor.fts5yy11 = sqlite3Fts5ParseTerm(pParse, fts5yymsp[-3].minor.fts5yy11, &fts5yymsp[-1].minor.fts5yy0, fts5yymsp[0].minor.fts5yy20); +} + break; + case 21: /* phrase ::= STRING star_opt */ +{ + fts5yygotominor.fts5yy11 = sqlite3Fts5ParseTerm(pParse, 0, &fts5yymsp[-1].minor.fts5yy0, fts5yymsp[0].minor.fts5yy20); +} + break; + case 22: /* star_opt ::= STAR */ +{ fts5yygotominor.fts5yy20 = 1; } + break; + case 23: /* star_opt ::= */ +{ fts5yygotominor.fts5yy20 = 0; } + break; + default: + break; + }; + assert( fts5yyruleno>=0 && fts5yyrulenofts5yyidx -= fts5yysize; + fts5yyact = fts5yy_find_reduce_action(fts5yymsp[-fts5yysize].stateno,(fts5YYCODETYPE)fts5yygoto); + if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){ + if( fts5yyact>fts5YY_MAX_SHIFT ) fts5yyact += fts5YY_MIN_REDUCE - fts5YY_MIN_SHIFTREDUCE; + /* If the reduce action popped at least + ** one element off the stack, then we can push the new element back + ** onto the stack here, and skip the stack overflow test in fts5yy_shift(). + ** That gives a significant speed improvement. */ + if( fts5yysize ){ + fts5yypParser->fts5yyidx++; + fts5yymsp -= fts5yysize-1; + fts5yymsp->stateno = (fts5YYACTIONTYPE)fts5yyact; + fts5yymsp->major = (fts5YYCODETYPE)fts5yygoto; + fts5yymsp->minor = fts5yygotominor; + fts5yyTraceShift(fts5yypParser, fts5yyact); + }else{ + fts5yy_shift(fts5yypParser,fts5yyact,fts5yygoto,&fts5yygotominor); + } + }else{ + assert( fts5yyact == fts5YY_ACCEPT_ACTION ); + fts5yy_accept(fts5yypParser); + } +} + +/* +** The following code executes when the parse fails +*/ +#ifndef fts5YYNOERRORRECOVERY +static void fts5yy_parse_failed( + fts5yyParser *fts5yypParser /* The parser */ +){ + sqlite3Fts5ParserARG_FETCH; +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sFail!\n",fts5yyTracePrompt); + } +#endif + while( fts5yypParser->fts5yyidx>=0 ) fts5yy_pop_parser_stack(fts5yypParser); + /* Here code is inserted which will be executed whenever the + ** parser fails */ + sqlite3Fts5ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} +#endif /* fts5YYNOERRORRECOVERY */ + +/* +** The following code executes when a syntax error first occurs. +*/ +static void fts5yy_syntax_error( + fts5yyParser *fts5yypParser, /* The parser */ + int fts5yymajor, /* The major type of the error token */ + fts5YYMINORTYPE fts5yyminor /* The minor type of the error token */ +){ + sqlite3Fts5ParserARG_FETCH; +#define FTS5TOKEN (fts5yyminor.fts5yy0) + + sqlite3Fts5ParseError( + pParse, "fts5: syntax error near \"%.*s\"",FTS5TOKEN.n,FTS5TOKEN.p + ); + sqlite3Fts5ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* +** The following is executed when the parser accepts +*/ +static void fts5yy_accept( + fts5yyParser *fts5yypParser /* The parser */ +){ + sqlite3Fts5ParserARG_FETCH; +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sAccept!\n",fts5yyTracePrompt); + } +#endif + while( fts5yypParser->fts5yyidx>=0 ) fts5yy_pop_parser_stack(fts5yypParser); + /* Here code is inserted which will be executed whenever the + ** parser accepts */ + sqlite3Fts5ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ +} + +/* The main parser program. +** The first argument is a pointer to a structure obtained from +** "sqlite3Fts5ParserAlloc" which describes the current state of the parser. +** The second argument is the major token number. The third is +** the minor token. The fourth optional argument is whatever the +** user wants (and specified in the grammar) and is available for +** use by the action routines. +** +** Inputs: +**
    +**
  • A pointer to the parser (an opaque structure.) +**
  • The major token number. +**
  • The minor token number. +**
  • An option argument of a grammar-specified type. +**
+** +** Outputs: +** None. +*/ +static void sqlite3Fts5Parser( + void *fts5yyp, /* The parser */ + int fts5yymajor, /* The major token code number */ + sqlite3Fts5ParserFTS5TOKENTYPE fts5yyminor /* The value for the token */ + sqlite3Fts5ParserARG_PDECL /* Optional %extra_argument parameter */ +){ + fts5YYMINORTYPE fts5yyminorunion; + int fts5yyact; /* The parser action. */ +#if !defined(fts5YYERRORSYMBOL) && !defined(fts5YYNOERRORRECOVERY) + int fts5yyendofinput; /* True if we are at the end of input */ +#endif +#ifdef fts5YYERRORSYMBOL + int fts5yyerrorhit = 0; /* True if fts5yymajor has invoked an error */ +#endif + fts5yyParser *fts5yypParser; /* The parser */ + + /* (re)initialize the parser, if necessary */ + fts5yypParser = (fts5yyParser*)fts5yyp; + if( fts5yypParser->fts5yyidx<0 ){ +#if fts5YYSTACKDEPTH<=0 + if( fts5yypParser->fts5yystksz <=0 ){ + /*memset(&fts5yyminorunion, 0, sizeof(fts5yyminorunion));*/ + fts5yyminorunion = fts5yyzerominor; + fts5yyStackOverflow(fts5yypParser, &fts5yyminorunion); + return; + } +#endif + fts5yypParser->fts5yyidx = 0; + fts5yypParser->fts5yyerrcnt = -1; + fts5yypParser->fts5yystack[0].stateno = 0; + fts5yypParser->fts5yystack[0].major = 0; + } + fts5yyminorunion.fts5yy0 = fts5yyminor; +#if !defined(fts5YYERRORSYMBOL) && !defined(fts5YYNOERRORRECOVERY) + fts5yyendofinput = (fts5yymajor==0); +#endif + sqlite3Fts5ParserARG_STORE; + +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sInput %s\n",fts5yyTracePrompt,fts5yyTokenName[fts5yymajor]); + } +#endif + + do{ + fts5yyact = fts5yy_find_shift_action(fts5yypParser,(fts5YYCODETYPE)fts5yymajor); + if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){ + if( fts5yyact > fts5YY_MAX_SHIFT ) fts5yyact += fts5YY_MIN_REDUCE - fts5YY_MIN_SHIFTREDUCE; + fts5yy_shift(fts5yypParser,fts5yyact,fts5yymajor,&fts5yyminorunion); + fts5yypParser->fts5yyerrcnt--; + fts5yymajor = fts5YYNOCODE; + }else if( fts5yyact <= fts5YY_MAX_REDUCE ){ + fts5yy_reduce(fts5yypParser,fts5yyact-fts5YY_MIN_REDUCE); + }else{ + assert( fts5yyact == fts5YY_ERROR_ACTION ); +#ifdef fts5YYERRORSYMBOL + int fts5yymx; +#endif +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sSyntax Error!\n",fts5yyTracePrompt); + } +#endif +#ifdef fts5YYERRORSYMBOL + /* A syntax error has occurred. + ** The response to an error depends upon whether or not the + ** grammar defines an error token "ERROR". + ** + ** This is what we do if the grammar does define ERROR: + ** + ** * Call the %syntax_error function. + ** + ** * Begin popping the stack until we enter a state where + ** it is legal to shift the error symbol, then shift + ** the error symbol. + ** + ** * Set the error count to three. + ** + ** * Begin accepting and shifting new tokens. No new error + ** processing will occur until three tokens have been + ** shifted successfully. + ** + */ + if( fts5yypParser->fts5yyerrcnt<0 ){ + fts5yy_syntax_error(fts5yypParser,fts5yymajor,fts5yyminorunion); + } + fts5yymx = fts5yypParser->fts5yystack[fts5yypParser->fts5yyidx].major; + if( fts5yymx==fts5YYERRORSYMBOL || fts5yyerrorhit ){ +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sDiscard input token %s\n", + fts5yyTracePrompt,fts5yyTokenName[fts5yymajor]); + } +#endif + fts5yy_destructor(fts5yypParser, (fts5YYCODETYPE)fts5yymajor,&fts5yyminorunion); + fts5yymajor = fts5YYNOCODE; + }else{ + while( + fts5yypParser->fts5yyidx >= 0 && + fts5yymx != fts5YYERRORSYMBOL && + (fts5yyact = fts5yy_find_reduce_action( + fts5yypParser->fts5yystack[fts5yypParser->fts5yyidx].stateno, + fts5YYERRORSYMBOL)) >= fts5YY_MIN_REDUCE + ){ + fts5yy_pop_parser_stack(fts5yypParser); + } + if( fts5yypParser->fts5yyidx < 0 || fts5yymajor==0 ){ + fts5yy_destructor(fts5yypParser,(fts5YYCODETYPE)fts5yymajor,&fts5yyminorunion); + fts5yy_parse_failed(fts5yypParser); + fts5yymajor = fts5YYNOCODE; + }else if( fts5yymx!=fts5YYERRORSYMBOL ){ + fts5YYMINORTYPE u2; + u2.fts5YYERRSYMDT = 0; + fts5yy_shift(fts5yypParser,fts5yyact,fts5YYERRORSYMBOL,&u2); + } + } + fts5yypParser->fts5yyerrcnt = 3; + fts5yyerrorhit = 1; +#elif defined(fts5YYNOERRORRECOVERY) + /* If the fts5YYNOERRORRECOVERY macro is defined, then do not attempt to + ** do any kind of error recovery. Instead, simply invoke the syntax + ** error routine and continue going as if nothing had happened. + ** + ** Applications can set this macro (for example inside %include) if + ** they intend to abandon the parse upon the first syntax error seen. + */ + fts5yy_syntax_error(fts5yypParser,fts5yymajor,fts5yyminorunion); + fts5yy_destructor(fts5yypParser,(fts5YYCODETYPE)fts5yymajor,&fts5yyminorunion); + fts5yymajor = fts5YYNOCODE; + +#else /* fts5YYERRORSYMBOL is not defined */ + /* This is what we do if the grammar does not define ERROR: + ** + ** * Report an error message, and throw away the input token. + ** + ** * If the input token is $, then fail the parse. + ** + ** As before, subsequent error messages are suppressed until + ** three input tokens have been successfully shifted. + */ + if( fts5yypParser->fts5yyerrcnt<=0 ){ + fts5yy_syntax_error(fts5yypParser,fts5yymajor,fts5yyminorunion); + } + fts5yypParser->fts5yyerrcnt = 3; + fts5yy_destructor(fts5yypParser,(fts5YYCODETYPE)fts5yymajor,&fts5yyminorunion); + if( fts5yyendofinput ){ + fts5yy_parse_failed(fts5yypParser); + } + fts5yymajor = fts5YYNOCODE; +#endif + } + }while( fts5yymajor!=fts5YYNOCODE && fts5yypParser->fts5yyidx>=0 ); +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sReturn\n",fts5yyTracePrompt); + } +#endif + return; +} + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +*/ + + +#include /* amalgamator: keep */ + +/* +** Object used to iterate through all "coalesced phrase instances" in +** a single column of the current row. If the phrase instances in the +** column being considered do not overlap, this object simply iterates +** through them. Or, if they do overlap (share one or more tokens in +** common), each set of overlapping instances is treated as a single +** match. See documentation for the highlight() auxiliary function for +** details. +** +** Usage is: +** +** for(rc = fts5CInstIterNext(pApi, pFts, iCol, &iter); +** (rc==SQLITE_OK && 0==fts5CInstIterEof(&iter); +** rc = fts5CInstIterNext(&iter) +** ){ +** printf("instance starts at %d, ends at %d\n", iter.iStart, iter.iEnd); +** } +** +*/ +typedef struct CInstIter CInstIter; +struct CInstIter { + const Fts5ExtensionApi *pApi; /* API offered by current FTS version */ + Fts5Context *pFts; /* First arg to pass to pApi functions */ + int iCol; /* Column to search */ + int iInst; /* Next phrase instance index */ + int nInst; /* Total number of phrase instances */ + + /* Output variables */ + int iStart; /* First token in coalesced phrase instance */ + int iEnd; /* Last token in coalesced phrase instance */ +}; + +/* +** Advance the iterator to the next coalesced phrase instance. Return +** an SQLite error code if an error occurs, or SQLITE_OK otherwise. +*/ +static int fts5CInstIterNext(CInstIter *pIter){ + int rc = SQLITE_OK; + pIter->iStart = -1; + pIter->iEnd = -1; + + while( rc==SQLITE_OK && pIter->iInstnInst ){ + int ip; int ic; int io; + rc = pIter->pApi->xInst(pIter->pFts, pIter->iInst, &ip, &ic, &io); + if( rc==SQLITE_OK ){ + if( ic==pIter->iCol ){ + int iEnd = io - 1 + pIter->pApi->xPhraseSize(pIter->pFts, ip); + if( pIter->iStart<0 ){ + pIter->iStart = io; + pIter->iEnd = iEnd; + }else if( io<=pIter->iEnd ){ + if( iEnd>pIter->iEnd ) pIter->iEnd = iEnd; + }else{ + break; + } + } + pIter->iInst++; + } + } + + return rc; +} + +/* +** Initialize the iterator object indicated by the final parameter to +** iterate through coalesced phrase instances in column iCol. +*/ +static int fts5CInstIterInit( + const Fts5ExtensionApi *pApi, + Fts5Context *pFts, + int iCol, + CInstIter *pIter +){ + int rc; + + memset(pIter, 0, sizeof(CInstIter)); + pIter->pApi = pApi; + pIter->pFts = pFts; + pIter->iCol = iCol; + rc = pApi->xInstCount(pFts, &pIter->nInst); + + if( rc==SQLITE_OK ){ + rc = fts5CInstIterNext(pIter); + } + + return rc; +} + + + +/************************************************************************* +** Start of highlight() implementation. +*/ +typedef struct HighlightContext HighlightContext; +struct HighlightContext { + CInstIter iter; /* Coalesced Instance Iterator */ + int iPos; /* Current token offset in zIn[] */ + int iRangeStart; /* First token to include */ + int iRangeEnd; /* If non-zero, last token to include */ + const char *zOpen; /* Opening highlight */ + const char *zClose; /* Closing highlight */ + const char *zIn; /* Input text */ + int nIn; /* Size of input text in bytes */ + int iOff; /* Current offset within zIn[] */ + char *zOut; /* Output value */ +}; + +/* +** Append text to the HighlightContext output string - p->zOut. Argument +** z points to a buffer containing n bytes of text to append. If n is +** negative, everything up until the first '\0' is appended to the output. +** +** If *pRc is set to any value other than SQLITE_OK when this function is +** called, it is a no-op. If an error (i.e. an OOM condition) is encountered, +** *pRc is set to an error code before returning. +*/ +static void fts5HighlightAppend( + int *pRc, + HighlightContext *p, + const char *z, int n +){ + if( *pRc==SQLITE_OK ){ + if( n<0 ) n = strlen(z); + p->zOut = sqlite3_mprintf("%z%.*s", p->zOut, n, z); + if( p->zOut==0 ) *pRc = SQLITE_NOMEM; + } +} + +/* +** Tokenizer callback used by implementation of highlight() function. +*/ +static int fts5HighlightCb( + void *pContext, /* Pointer to HighlightContext object */ + int tflags, /* Mask of FTS5_TOKEN_* flags */ + const char *pToken, /* Buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStartOff, /* Start offset of token */ + int iEndOff /* End offset of token */ +){ + HighlightContext *p = (HighlightContext*)pContext; + int rc = SQLITE_OK; + int iPos; + + if( tflags & FTS5_TOKEN_COLOCATED ) return SQLITE_OK; + iPos = p->iPos++; + + if( p->iRangeEnd>0 ){ + if( iPosiRangeStart || iPos>p->iRangeEnd ) return SQLITE_OK; + if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff; + } + + if( iPos==p->iter.iStart ){ + fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iStartOff - p->iOff); + fts5HighlightAppend(&rc, p, p->zOpen, -1); + p->iOff = iStartOff; + } + + if( iPos==p->iter.iEnd ){ + if( p->iRangeEnd && p->iter.iStartiRangeStart ){ + fts5HighlightAppend(&rc, p, p->zOpen, -1); + } + fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); + fts5HighlightAppend(&rc, p, p->zClose, -1); + p->iOff = iEndOff; + if( rc==SQLITE_OK ){ + rc = fts5CInstIterNext(&p->iter); + } + } + + if( p->iRangeEnd>0 && iPos==p->iRangeEnd ){ + fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); + p->iOff = iEndOff; + if( iPositer.iEnd ){ + fts5HighlightAppend(&rc, p, p->zClose, -1); + } + } + + return rc; +} + +/* +** Implementation of highlight() function. +*/ +static void fts5HighlightFunction( + const Fts5ExtensionApi *pApi, /* API offered by current FTS version */ + Fts5Context *pFts, /* First arg to pass to pApi functions */ + sqlite3_context *pCtx, /* Context for returning result/error */ + int nVal, /* Number of values in apVal[] array */ + sqlite3_value **apVal /* Array of trailing arguments */ +){ + HighlightContext ctx; + int rc; + int iCol; + + if( nVal!=3 ){ + const char *zErr = "wrong number of arguments to function highlight()"; + sqlite3_result_error(pCtx, zErr, -1); + return; + } + + iCol = sqlite3_value_int(apVal[0]); + memset(&ctx, 0, sizeof(HighlightContext)); + ctx.zOpen = (const char*)sqlite3_value_text(apVal[1]); + ctx.zClose = (const char*)sqlite3_value_text(apVal[2]); + rc = pApi->xColumnText(pFts, iCol, &ctx.zIn, &ctx.nIn); + + if( ctx.zIn ){ + if( rc==SQLITE_OK ){ + rc = fts5CInstIterInit(pApi, pFts, iCol, &ctx.iter); + } + + if( rc==SQLITE_OK ){ + rc = pApi->xTokenize(pFts, ctx.zIn, ctx.nIn, (void*)&ctx,fts5HighlightCb); + } + fts5HighlightAppend(&rc, &ctx, &ctx.zIn[ctx.iOff], ctx.nIn - ctx.iOff); + + if( rc==SQLITE_OK ){ + sqlite3_result_text(pCtx, (const char*)ctx.zOut, -1, SQLITE_TRANSIENT); + } + sqlite3_free(ctx.zOut); + } + if( rc!=SQLITE_OK ){ + sqlite3_result_error_code(pCtx, rc); + } +} +/* +** End of highlight() implementation. +**************************************************************************/ + +/* +** Implementation of snippet() function. +*/ +static void fts5SnippetFunction( + const Fts5ExtensionApi *pApi, /* API offered by current FTS version */ + Fts5Context *pFts, /* First arg to pass to pApi functions */ + sqlite3_context *pCtx, /* Context for returning result/error */ + int nVal, /* Number of values in apVal[] array */ + sqlite3_value **apVal /* Array of trailing arguments */ +){ + HighlightContext ctx; + int rc = SQLITE_OK; /* Return code */ + int iCol; /* 1st argument to snippet() */ + const char *zEllips; /* 4th argument to snippet() */ + int nToken; /* 5th argument to snippet() */ + int nInst = 0; /* Number of instance matches this row */ + int i; /* Used to iterate through instances */ + int nPhrase; /* Number of phrases in query */ + unsigned char *aSeen; /* Array of "seen instance" flags */ + int iBestCol; /* Column containing best snippet */ + int iBestStart = 0; /* First token of best snippet */ + int iBestLast; /* Last token of best snippet */ + int nBestScore = 0; /* Score of best snippet */ + int nColSize = 0; /* Total size of iBestCol in tokens */ + + if( nVal!=5 ){ + const char *zErr = "wrong number of arguments to function snippet()"; + sqlite3_result_error(pCtx, zErr, -1); + return; + } + + memset(&ctx, 0, sizeof(HighlightContext)); + iCol = sqlite3_value_int(apVal[0]); + ctx.zOpen = (const char*)sqlite3_value_text(apVal[1]); + ctx.zClose = (const char*)sqlite3_value_text(apVal[2]); + zEllips = (const char*)sqlite3_value_text(apVal[3]); + nToken = sqlite3_value_int(apVal[4]); + iBestLast = nToken-1; + + iBestCol = (iCol>=0 ? iCol : 0); + nPhrase = pApi->xPhraseCount(pFts); + aSeen = sqlite3_malloc(nPhrase); + if( aSeen==0 ){ + rc = SQLITE_NOMEM; + } + + if( rc==SQLITE_OK ){ + rc = pApi->xInstCount(pFts, &nInst); + } + for(i=0; rc==SQLITE_OK && ixInst(pFts, i, &ip, &iSnippetCol, &iStart); + if( rc==SQLITE_OK && (iCol<0 || iSnippetCol==iCol) ){ + int nScore = 1000; + int iLast = iStart - 1 + pApi->xPhraseSize(pFts, ip); + int j; + aSeen[ip] = 1; + + for(j=i+1; rc==SQLITE_OK && jxInst(pFts, j, &ip, &ic, &io); + iFinal = io + pApi->xPhraseSize(pFts, ip) - 1; + if( rc==SQLITE_OK && ic==iSnippetCol && iLastiLast ) iLast = iFinal; + } + } + + if( rc==SQLITE_OK && nScore>nBestScore ){ + iBestCol = iSnippetCol; + iBestStart = iStart; + iBestLast = iLast; + nBestScore = nScore; + } + } + } + + if( rc==SQLITE_OK ){ + rc = pApi->xColumnSize(pFts, iBestCol, &nColSize); + } + if( rc==SQLITE_OK ){ + rc = pApi->xColumnText(pFts, iBestCol, &ctx.zIn, &ctx.nIn); + } + if( ctx.zIn ){ + if( rc==SQLITE_OK ){ + rc = fts5CInstIterInit(pApi, pFts, iBestCol, &ctx.iter); + } + + if( (iBestStart+nToken-1)>iBestLast ){ + iBestStart -= (iBestStart+nToken-1-iBestLast) / 2; + } + if( iBestStart+nToken>nColSize ){ + iBestStart = nColSize - nToken; + } + if( iBestStart<0 ) iBestStart = 0; + + ctx.iRangeStart = iBestStart; + ctx.iRangeEnd = iBestStart + nToken - 1; + + if( iBestStart>0 ){ + fts5HighlightAppend(&rc, &ctx, zEllips, -1); + } + if( rc==SQLITE_OK ){ + rc = pApi->xTokenize(pFts, ctx.zIn, ctx.nIn, (void*)&ctx,fts5HighlightCb); + } + if( ctx.iRangeEnd>=(nColSize-1) ){ + fts5HighlightAppend(&rc, &ctx, &ctx.zIn[ctx.iOff], ctx.nIn - ctx.iOff); + }else{ + fts5HighlightAppend(&rc, &ctx, zEllips, -1); + } + + if( rc==SQLITE_OK ){ + sqlite3_result_text(pCtx, (const char*)ctx.zOut, -1, SQLITE_TRANSIENT); + }else{ + sqlite3_result_error_code(pCtx, rc); + } + sqlite3_free(ctx.zOut); + } + sqlite3_free(aSeen); +} + +/************************************************************************/ + +/* +** The first time the bm25() function is called for a query, an instance +** of the following structure is allocated and populated. +*/ +typedef struct Fts5Bm25Data Fts5Bm25Data; +struct Fts5Bm25Data { + int nPhrase; /* Number of phrases in query */ + double avgdl; /* Average number of tokens in each row */ + double *aIDF; /* IDF for each phrase */ + double *aFreq; /* Array used to calculate phrase freq. */ +}; + +/* +** Callback used by fts5Bm25GetData() to count the number of rows in the +** table matched by each individual phrase within the query. +*/ +static int fts5CountCb( + const Fts5ExtensionApi *pApi, + Fts5Context *pFts, + void *pUserData /* Pointer to sqlite3_int64 variable */ +){ + sqlite3_int64 *pn = (sqlite3_int64*)pUserData; + (*pn)++; + return SQLITE_OK; +} + +/* +** Set *ppData to point to the Fts5Bm25Data object for the current query. +** If the object has not already been allocated, allocate and populate it +** now. +*/ +static int fts5Bm25GetData( + const Fts5ExtensionApi *pApi, + Fts5Context *pFts, + Fts5Bm25Data **ppData /* OUT: bm25-data object for this query */ +){ + int rc = SQLITE_OK; /* Return code */ + Fts5Bm25Data *p; /* Object to return */ + + p = pApi->xGetAuxdata(pFts, 0); + if( p==0 ){ + int nPhrase; /* Number of phrases in query */ + sqlite3_int64 nRow = 0; /* Number of rows in table */ + sqlite3_int64 nToken = 0; /* Number of tokens in table */ + int nByte; /* Bytes of space to allocate */ + int i; + + /* Allocate the Fts5Bm25Data object */ + nPhrase = pApi->xPhraseCount(pFts); + nByte = sizeof(Fts5Bm25Data) + nPhrase*2*sizeof(double); + p = (Fts5Bm25Data*)sqlite3_malloc(nByte); + if( p==0 ){ + rc = SQLITE_NOMEM; + }else{ + memset(p, 0, nByte); + p->nPhrase = nPhrase; + p->aIDF = (double*)&p[1]; + p->aFreq = &p->aIDF[nPhrase]; + } + + /* Calculate the average document length for this FTS5 table */ + if( rc==SQLITE_OK ) rc = pApi->xRowCount(pFts, &nRow); + if( rc==SQLITE_OK ) rc = pApi->xColumnTotalSize(pFts, -1, &nToken); + if( rc==SQLITE_OK ) p->avgdl = (double)nToken / (double)nRow; + + /* Calculate an IDF for each phrase in the query */ + for(i=0; rc==SQLITE_OK && ixQueryPhrase(pFts, i, (void*)&nHit, fts5CountCb); + if( rc==SQLITE_OK ){ + /* Calculate the IDF (Inverse Document Frequency) for phrase i. + ** This is done using the standard BM25 formula as found on wikipedia: + ** + ** IDF = log( (N - nHit + 0.5) / (nHit + 0.5) ) + ** + ** where "N" is the total number of documents in the set and nHit + ** is the number that contain at least one instance of the phrase + ** under consideration. + ** + ** The problem with this is that if (N < 2*nHit), the IDF is + ** negative. Which is undesirable. So the mimimum allowable IDF is + ** (1e-6) - roughly the same as a term that appears in just over + ** half of set of 5,000,000 documents. */ + double idf = log( (nRow - nHit + 0.5) / (nHit + 0.5) ); + if( idf<=0.0 ) idf = 1e-6; + p->aIDF[i] = idf; + } + } + + if( rc!=SQLITE_OK ){ + sqlite3_free(p); + }else{ + rc = pApi->xSetAuxdata(pFts, p, sqlite3_free); + } + if( rc!=SQLITE_OK ) p = 0; + } + *ppData = p; + return rc; +} + +/* +** Implementation of bm25() function. +*/ +static void fts5Bm25Function( + const Fts5ExtensionApi *pApi, /* API offered by current FTS version */ + Fts5Context *pFts, /* First arg to pass to pApi functions */ + sqlite3_context *pCtx, /* Context for returning result/error */ + int nVal, /* Number of values in apVal[] array */ + sqlite3_value **apVal /* Array of trailing arguments */ +){ + const double k1 = 1.2; /* Constant "k1" from BM25 formula */ + const double b = 0.75; /* Constant "b" from BM25 formula */ + int rc = SQLITE_OK; /* Error code */ + double score = 0.0; /* SQL function return value */ + Fts5Bm25Data *pData; /* Values allocated/calculated once only */ + int i; /* Iterator variable */ + int nInst = 0; /* Value returned by xInstCount() */ + double D = 0.0; /* Total number of tokens in row */ + double *aFreq = 0; /* Array of phrase freq. for current row */ + + /* Calculate the phrase frequency (symbol "f(qi,D)" in the documentation) + ** for each phrase in the query for the current row. */ + rc = fts5Bm25GetData(pApi, pFts, &pData); + if( rc==SQLITE_OK ){ + aFreq = pData->aFreq; + memset(aFreq, 0, sizeof(double) * pData->nPhrase); + rc = pApi->xInstCount(pFts, &nInst); + } + for(i=0; rc==SQLITE_OK && ixInst(pFts, i, &ip, &ic, &io); + if( rc==SQLITE_OK ){ + double w = (nVal > ic) ? sqlite3_value_double(apVal[ic]) : 1.0; + aFreq[ip] += w; + } + } + + /* Figure out the total size of the current row in tokens. */ + if( rc==SQLITE_OK ){ + int nTok; + rc = pApi->xColumnSize(pFts, -1, &nTok); + D = (double)nTok; + } + + /* Determine the BM25 score for the current row. */ + for(i=0; rc==SQLITE_OK && inPhrase; i++){ + score += pData->aIDF[i] * ( + ( aFreq[i] * (k1 + 1.0) ) / + ( aFreq[i] + k1 * (1 - b + b * D / pData->avgdl) ) + ); + } + + /* If no error has occurred, return the calculated score. Otherwise, + ** throw an SQL exception. */ + if( rc==SQLITE_OK ){ + sqlite3_result_double(pCtx, -1.0 * score); + }else{ + sqlite3_result_error_code(pCtx, rc); + } +} + +static int sqlite3Fts5AuxInit(fts5_api *pApi){ + struct Builtin { + const char *zFunc; /* Function name (nul-terminated) */ + void *pUserData; /* User-data pointer */ + fts5_extension_function xFunc;/* Callback function */ + void (*xDestroy)(void*); /* Destructor function */ + } aBuiltin [] = { + { "snippet", 0, fts5SnippetFunction, 0 }, + { "highlight", 0, fts5HighlightFunction, 0 }, + { "bm25", 0, fts5Bm25Function, 0 }, + }; + int rc = SQLITE_OK; /* Return code */ + int i; /* To iterate through builtin functions */ + + for(i=0; rc==SQLITE_OK && ixCreateFunction(pApi, + aBuiltin[i].zFunc, + aBuiltin[i].pUserData, + aBuiltin[i].xFunc, + aBuiltin[i].xDestroy + ); + } + + return rc; +} + + + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +*/ + + + + +static int sqlite3Fts5BufferGrow(int *pRc, Fts5Buffer *pBuf, int nByte){ + + if( (pBuf->n + nByte) > pBuf->nSpace ){ + u8 *pNew; + int nNew = pBuf->nSpace ? pBuf->nSpace*2 : 64; + + /* A no-op if an error has already occurred */ + if( *pRc ) return 1; + + while( nNew<(pBuf->n + nByte) ){ + nNew = nNew * 2; + } + pNew = sqlite3_realloc(pBuf->p, nNew); + if( pNew==0 ){ + *pRc = SQLITE_NOMEM; + return 1; + }else{ + pBuf->nSpace = nNew; + pBuf->p = pNew; + } + } + return 0; +} + +/* +** Encode value iVal as an SQLite varint and append it to the buffer object +** pBuf. If an OOM error occurs, set the error code in p. +*/ +static void sqlite3Fts5BufferAppendVarint(int *pRc, Fts5Buffer *pBuf, i64 iVal){ + if( sqlite3Fts5BufferGrow(pRc, pBuf, 9) ) return; + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iVal); +} + +static void sqlite3Fts5Put32(u8 *aBuf, int iVal){ + aBuf[0] = (iVal>>24) & 0x00FF; + aBuf[1] = (iVal>>16) & 0x00FF; + aBuf[2] = (iVal>> 8) & 0x00FF; + aBuf[3] = (iVal>> 0) & 0x00FF; +} + +static int sqlite3Fts5Get32(const u8 *aBuf){ + return (aBuf[0] << 24) + (aBuf[1] << 16) + (aBuf[2] << 8) + aBuf[3]; +} + +static void sqlite3Fts5BufferAppend32(int *pRc, Fts5Buffer *pBuf, int iVal){ + if( sqlite3Fts5BufferGrow(pRc, pBuf, 4) ) return; + sqlite3Fts5Put32(&pBuf->p[pBuf->n], iVal); + pBuf->n += 4; +} + +/* +** Append buffer nData/pData to buffer pBuf. If an OOM error occurs, set +** the error code in p. If an error has already occurred when this function +** is called, it is a no-op. +*/ +static void sqlite3Fts5BufferAppendBlob( + int *pRc, + Fts5Buffer *pBuf, + int nData, + const u8 *pData +){ + assert( *pRc || nData>=0 ); + if( sqlite3Fts5BufferGrow(pRc, pBuf, nData) ) return; + memcpy(&pBuf->p[pBuf->n], pData, nData); + pBuf->n += nData; +} + +/* +** Append the nul-terminated string zStr to the buffer pBuf. This function +** ensures that the byte following the buffer data is set to 0x00, even +** though this byte is not included in the pBuf->n count. +*/ +static void sqlite3Fts5BufferAppendString( + int *pRc, + Fts5Buffer *pBuf, + const char *zStr +){ + int nStr = strlen(zStr); + sqlite3Fts5BufferAppendBlob(pRc, pBuf, nStr+1, (const u8*)zStr); + pBuf->n--; +} + +/* +** Argument zFmt is a printf() style format string. This function performs +** the printf() style processing, then appends the results to buffer pBuf. +** +** Like sqlite3Fts5BufferAppendString(), this function ensures that the byte +** following the buffer data is set to 0x00, even though this byte is not +** included in the pBuf->n count. +*/ +static void sqlite3Fts5BufferAppendPrintf( + int *pRc, + Fts5Buffer *pBuf, + char *zFmt, ... +){ + if( *pRc==SQLITE_OK ){ + char *zTmp; + va_list ap; + va_start(ap, zFmt); + zTmp = sqlite3_vmprintf(zFmt, ap); + va_end(ap); + + if( zTmp==0 ){ + *pRc = SQLITE_NOMEM; + }else{ + sqlite3Fts5BufferAppendString(pRc, pBuf, zTmp); + sqlite3_free(zTmp); + } + } +} + +static char *sqlite3Fts5Mprintf(int *pRc, const char *zFmt, ...){ + char *zRet = 0; + if( *pRc==SQLITE_OK ){ + va_list ap; + va_start(ap, zFmt); + zRet = sqlite3_vmprintf(zFmt, ap); + va_end(ap); + if( zRet==0 ){ + *pRc = SQLITE_NOMEM; + } + } + return zRet; +} + + +/* +** Free any buffer allocated by pBuf. Zero the structure before returning. +*/ +static void sqlite3Fts5BufferFree(Fts5Buffer *pBuf){ + sqlite3_free(pBuf->p); + memset(pBuf, 0, sizeof(Fts5Buffer)); +} + +/* +** Zero the contents of the buffer object. But do not free the associated +** memory allocation. +*/ +static void sqlite3Fts5BufferZero(Fts5Buffer *pBuf){ + pBuf->n = 0; +} + +/* +** Set the buffer to contain nData/pData. If an OOM error occurs, leave an +** the error code in p. If an error has already occurred when this function +** is called, it is a no-op. +*/ +static void sqlite3Fts5BufferSet( + int *pRc, + Fts5Buffer *pBuf, + int nData, + const u8 *pData +){ + pBuf->n = 0; + sqlite3Fts5BufferAppendBlob(pRc, pBuf, nData, pData); +} + +static int sqlite3Fts5PoslistNext64( + const u8 *a, int n, /* Buffer containing poslist */ + int *pi, /* IN/OUT: Offset within a[] */ + i64 *piOff /* IN/OUT: Current offset */ +){ + int i = *pi; + if( i>=n ){ + /* EOF */ + *piOff = -1; + return 1; + }else{ + i64 iOff = *piOff; + int iVal; + fts5FastGetVarint32(a, i, iVal); + if( iVal==1 ){ + fts5FastGetVarint32(a, i, iVal); + iOff = ((i64)iVal) << 32; + fts5FastGetVarint32(a, i, iVal); + } + *piOff = iOff + (iVal-2); + *pi = i; + return 0; + } +} + + +/* +** Advance the iterator object passed as the only argument. Return true +** if the iterator reaches EOF, or false otherwise. +*/ +static int sqlite3Fts5PoslistReaderNext(Fts5PoslistReader *pIter){ + if( sqlite3Fts5PoslistNext64(pIter->a, pIter->n, &pIter->i, &pIter->iPos) ){ + pIter->bEof = 1; + } + return pIter->bEof; +} + +static int sqlite3Fts5PoslistReaderInit( + const u8 *a, int n, /* Poslist buffer to iterate through */ + Fts5PoslistReader *pIter /* Iterator object to initialize */ +){ + memset(pIter, 0, sizeof(*pIter)); + pIter->a = a; + pIter->n = n; + sqlite3Fts5PoslistReaderNext(pIter); + return pIter->bEof; +} + +static int sqlite3Fts5PoslistWriterAppend( + Fts5Buffer *pBuf, + Fts5PoslistWriter *pWriter, + i64 iPos +){ + static const i64 colmask = ((i64)(0x7FFFFFFF)) << 32; + int rc = SQLITE_OK; + if( 0==sqlite3Fts5BufferGrow(&rc, pBuf, 5+5+5) ){ + if( (iPos & colmask) != (pWriter->iPrev & colmask) ){ + pBuf->p[pBuf->n++] = 1; + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], (iPos>>32)); + pWriter->iPrev = (iPos & colmask); + } + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], (iPos-pWriter->iPrev)+2); + pWriter->iPrev = iPos; + } + return rc; +} + +static void *sqlite3Fts5MallocZero(int *pRc, int nByte){ + void *pRet = 0; + if( *pRc==SQLITE_OK ){ + pRet = sqlite3_malloc(nByte); + if( pRet==0 && nByte>0 ){ + *pRc = SQLITE_NOMEM; + }else{ + memset(pRet, 0, nByte); + } + } + return pRet; +} + +/* +** Return a nul-terminated copy of the string indicated by pIn. If nIn +** is non-negative, then it is the length of the string in bytes. Otherwise, +** the length of the string is determined using strlen(). +** +** It is the responsibility of the caller to eventually free the returned +** buffer using sqlite3_free(). If an OOM error occurs, NULL is returned. +*/ +static char *sqlite3Fts5Strndup(int *pRc, const char *pIn, int nIn){ + char *zRet = 0; + if( *pRc==SQLITE_OK ){ + if( nIn<0 ){ + nIn = strlen(pIn); + } + zRet = (char*)sqlite3_malloc(nIn+1); + if( zRet ){ + memcpy(zRet, pIn, nIn); + zRet[nIn] = '\0'; + }else{ + *pRc = SQLITE_NOMEM; + } + } + return zRet; +} + + +/* +** Return true if character 't' may be part of an FTS5 bareword, or false +** otherwise. Characters that may be part of barewords: +** +** * All non-ASCII characters, +** * The 52 upper and lower case ASCII characters, and +** * The 10 integer ASCII characters. +** * The underscore character "_" (0x5F). +** * The unicode "subsitute" character (0x1A). +*/ +static int sqlite3Fts5IsBareword(char t){ + u8 aBareword[128] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 .. 0x0F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x10 .. 0x1F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 .. 0x2F */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 0x30 .. 0x3F */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x40 .. 0x4F */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, /* 0x50 .. 0x5F */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x60 .. 0x6F */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 /* 0x70 .. 0x7F */ + }; + + return (t & 0x80) || aBareword[(int)t]; +} + + + +/* +** 2014 Jun 09 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This is an SQLite module implementing full-text search. +*/ + + + + +#define FTS5_DEFAULT_PAGE_SIZE 4050 +#define FTS5_DEFAULT_AUTOMERGE 4 +#define FTS5_DEFAULT_CRISISMERGE 16 + +/* Maximum allowed page size */ +#define FTS5_MAX_PAGE_SIZE (128*1024) + +static int fts5_iswhitespace(char x){ + return (x==' '); +} + +static int fts5_isopenquote(char x){ + return (x=='"' || x=='\'' || x=='[' || x=='`'); +} + +/* +** Argument pIn points to a character that is part of a nul-terminated +** string. Return a pointer to the first character following *pIn in +** the string that is not a white-space character. +*/ +static const char *fts5ConfigSkipWhitespace(const char *pIn){ + const char *p = pIn; + if( p ){ + while( fts5_iswhitespace(*p) ){ p++; } + } + return p; +} + +/* +** Argument pIn points to a character that is part of a nul-terminated +** string. Return a pointer to the first character following *pIn in +** the string that is not a "bareword" character. +*/ +static const char *fts5ConfigSkipBareword(const char *pIn){ + const char *p = pIn; + while ( sqlite3Fts5IsBareword(*p) ) p++; + if( p==pIn ) p = 0; + return p; +} + +static int fts5_isdigit(char a){ + return (a>='0' && a<='9'); +} + + + +static const char *fts5ConfigSkipLiteral(const char *pIn){ + const char *p = pIn; + switch( *p ){ + case 'n': case 'N': + if( sqlite3_strnicmp("null", p, 4)==0 ){ + p = &p[4]; + }else{ + p = 0; + } + break; + + case 'x': case 'X': + p++; + if( *p=='\'' ){ + p++; + while( (*p>='a' && *p<='f') + || (*p>='A' && *p<='F') + || (*p>='0' && *p<='9') + ){ + p++; + } + if( *p=='\'' && 0==((p-pIn)%2) ){ + p++; + }else{ + p = 0; + } + }else{ + p = 0; + } + break; + + case '\'': + p++; + while( p ){ + if( *p=='\'' ){ + p++; + if( *p!='\'' ) break; + } + p++; + if( *p==0 ) p = 0; + } + break; + + default: + /* maybe a number */ + if( *p=='+' || *p=='-' ) p++; + while( fts5_isdigit(*p) ) p++; + + /* At this point, if the literal was an integer, the parse is + ** finished. Or, if it is a floating point value, it may continue + ** with either a decimal point or an 'E' character. */ + if( *p=='.' && fts5_isdigit(p[1]) ){ + p += 2; + while( fts5_isdigit(*p) ) p++; + } + if( p==pIn ) p = 0; + + break; + } + + return p; +} + +/* +** The first character of the string pointed to by argument z is guaranteed +** to be an open-quote character (see function fts5_isopenquote()). +** +** This function searches for the corresponding close-quote character within +** the string and, if found, dequotes the string in place and adds a new +** nul-terminator byte. +** +** If the close-quote is found, the value returned is the byte offset of +** the character immediately following it. Or, if the close-quote is not +** found, -1 is returned. If -1 is returned, the buffer is left in an +** undefined state. +*/ +static int fts5Dequote(char *z){ + char q; + int iIn = 1; + int iOut = 0; + q = z[0]; + + /* Set stack variable q to the close-quote character */ + assert( q=='[' || q=='\'' || q=='"' || q=='`' ); + if( q=='[' ) q = ']'; + + while( ALWAYS(z[iIn]) ){ + if( z[iIn]==q ){ + if( z[iIn+1]!=q ){ + /* Character iIn was the close quote. */ + iIn++; + break; + }else{ + /* Character iIn and iIn+1 form an escaped quote character. Skip + ** the input cursor past both and copy a single quote character + ** to the output buffer. */ + iIn += 2; + z[iOut++] = q; + } + }else{ + z[iOut++] = z[iIn++]; + } + } + + z[iOut] = '\0'; + return iIn; +} + +/* +** Convert an SQL-style quoted string into a normal string by removing +** the quote characters. The conversion is done in-place. If the +** input does not begin with a quote character, then this routine +** is a no-op. +** +** Examples: +** +** "abc" becomes abc +** 'xyz' becomes xyz +** [pqr] becomes pqr +** `mno` becomes mno +*/ +static void sqlite3Fts5Dequote(char *z){ + char quote; /* Quote character (if any ) */ + + assert( 0==fts5_iswhitespace(z[0]) ); + quote = z[0]; + if( quote=='[' || quote=='\'' || quote=='"' || quote=='`' ){ + fts5Dequote(z); + } +} + +/* +** Parse a "special" CREATE VIRTUAL TABLE directive and update +** configuration object pConfig as appropriate. +** +** If successful, object pConfig is updated and SQLITE_OK returned. If +** an error occurs, an SQLite error code is returned and an error message +** may be left in *pzErr. It is the responsibility of the caller to +** eventually free any such error message using sqlite3_free(). +*/ +static int fts5ConfigParseSpecial( + Fts5Global *pGlobal, + Fts5Config *pConfig, /* Configuration object to update */ + const char *zCmd, /* Special command to parse */ + const char *zArg, /* Argument to parse */ + char **pzErr /* OUT: Error message */ +){ + int rc = SQLITE_OK; + int nCmd = strlen(zCmd); + if( sqlite3_strnicmp("prefix", zCmd, nCmd)==0 ){ + const int nByte = sizeof(int) * FTS5_MAX_PREFIX_INDEXES; + const char *p; + if( pConfig->aPrefix ){ + *pzErr = sqlite3_mprintf("multiple prefix=... directives"); + rc = SQLITE_ERROR; + }else{ + pConfig->aPrefix = sqlite3Fts5MallocZero(&rc, nByte); + } + p = zArg; + while( rc==SQLITE_OK && p[0] ){ + int nPre = 0; + while( p[0]==' ' ) p++; + while( p[0]>='0' && p[0]<='9' && nPre<1000 ){ + nPre = nPre*10 + (p[0] - '0'); + p++; + } + while( p[0]==' ' ) p++; + if( p[0]==',' ){ + p++; + }else if( p[0] ){ + *pzErr = sqlite3_mprintf("malformed prefix=... directive"); + rc = SQLITE_ERROR; + } + if( rc==SQLITE_OK && (nPre==0 || nPre>=1000) ){ + *pzErr = sqlite3_mprintf("prefix length out of range: %d", nPre); + rc = SQLITE_ERROR; + } + pConfig->aPrefix[pConfig->nPrefix] = nPre; + pConfig->nPrefix++; + } + return rc; + } + + if( sqlite3_strnicmp("tokenize", zCmd, nCmd)==0 ){ + const char *p = (const char*)zArg; + int nArg = strlen(zArg) + 1; + char **azArg = sqlite3Fts5MallocZero(&rc, sizeof(char*) * nArg); + char *pDel = sqlite3Fts5MallocZero(&rc, nArg * 2); + char *pSpace = pDel; + + if( azArg && pSpace ){ + if( pConfig->pTok ){ + *pzErr = sqlite3_mprintf("multiple tokenize=... directives"); + rc = SQLITE_ERROR; + }else{ + for(nArg=0; p && *p; nArg++){ + const char *p2 = fts5ConfigSkipWhitespace(p); + if( *p2=='\'' ){ + p = fts5ConfigSkipLiteral(p2); + }else{ + p = fts5ConfigSkipBareword(p2); + } + if( p ){ + memcpy(pSpace, p2, p-p2); + azArg[nArg] = pSpace; + sqlite3Fts5Dequote(pSpace); + pSpace += (p - p2) + 1; + p = fts5ConfigSkipWhitespace(p); + } + } + if( p==0 ){ + *pzErr = sqlite3_mprintf("parse error in tokenize directive"); + rc = SQLITE_ERROR; + }else{ + rc = sqlite3Fts5GetTokenizer(pGlobal, + (const char**)azArg, nArg, &pConfig->pTok, &pConfig->pTokApi, + pzErr + ); + } + } + } + + sqlite3_free(azArg); + sqlite3_free(pDel); + return rc; + } + + if( sqlite3_strnicmp("content", zCmd, nCmd)==0 ){ + if( pConfig->eContent!=FTS5_CONTENT_NORMAL ){ + *pzErr = sqlite3_mprintf("multiple content=... directives"); + rc = SQLITE_ERROR; + }else{ + if( zArg[0] ){ + pConfig->eContent = FTS5_CONTENT_EXTERNAL; + pConfig->zContent = sqlite3Fts5Mprintf(&rc, "%Q.%Q", pConfig->zDb,zArg); + }else{ + pConfig->eContent = FTS5_CONTENT_NONE; + } + } + return rc; + } + + if( sqlite3_strnicmp("content_rowid", zCmd, nCmd)==0 ){ + if( pConfig->zContentRowid ){ + *pzErr = sqlite3_mprintf("multiple content_rowid=... directives"); + rc = SQLITE_ERROR; + }else{ + pConfig->zContentRowid = sqlite3Fts5Strndup(&rc, zArg, -1); + } + return rc; + } + + if( sqlite3_strnicmp("columnsize", zCmd, nCmd)==0 ){ + if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1]!='\0' ){ + *pzErr = sqlite3_mprintf("malformed columnsize=... directive"); + rc = SQLITE_ERROR; + }else{ + pConfig->bColumnsize = (zArg[0]=='1'); + } + return rc; + } + + *pzErr = sqlite3_mprintf("unrecognized option: \"%.*s\"", nCmd, zCmd); + return SQLITE_ERROR; +} + +/* +** Allocate an instance of the default tokenizer ("simple") at +** Fts5Config.pTokenizer. Return SQLITE_OK if successful, or an SQLite error +** code if an error occurs. +*/ +static int fts5ConfigDefaultTokenizer(Fts5Global *pGlobal, Fts5Config *pConfig){ + assert( pConfig->pTok==0 && pConfig->pTokApi==0 ); + return sqlite3Fts5GetTokenizer( + pGlobal, 0, 0, &pConfig->pTok, &pConfig->pTokApi, 0 + ); +} + +/* +** Gobble up the first bareword or quoted word from the input buffer zIn. +** Return a pointer to the character immediately following the last in +** the gobbled word if successful, or a NULL pointer otherwise (failed +** to find close-quote character). +** +** Before returning, set pzOut to point to a new buffer containing a +** nul-terminated, dequoted copy of the gobbled word. If the word was +** quoted, *pbQuoted is also set to 1 before returning. +** +** If *pRc is other than SQLITE_OK when this function is called, it is +** a no-op (NULL is returned). Otherwise, if an OOM occurs within this +** function, *pRc is set to SQLITE_NOMEM before returning. *pRc is *not* +** set if a parse error (failed to find close quote) occurs. +*/ +static const char *fts5ConfigGobbleWord( + int *pRc, /* IN/OUT: Error code */ + const char *zIn, /* Buffer to gobble string/bareword from */ + char **pzOut, /* OUT: malloc'd buffer containing str/bw */ + int *pbQuoted /* OUT: Set to true if dequoting required */ +){ + const char *zRet = 0; + + int nIn = strlen(zIn); + char *zOut = sqlite3_malloc(nIn+1); + + assert( *pRc==SQLITE_OK ); + *pbQuoted = 0; + *pzOut = 0; + + if( zOut==0 ){ + *pRc = SQLITE_NOMEM; + }else{ + memcpy(zOut, zIn, nIn+1); + if( fts5_isopenquote(zOut[0]) ){ + int ii = fts5Dequote(zOut); + zRet = &zIn[ii]; + *pbQuoted = 1; + }else{ + zRet = fts5ConfigSkipBareword(zIn); + zOut[zRet-zIn] = '\0'; + } + } + + if( zRet==0 ){ + sqlite3_free(zOut); + }else{ + *pzOut = zOut; + } + + return zRet; +} + +static int fts5ConfigParseColumn( + Fts5Config *p, + char *zCol, + char *zArg, + char **pzErr +){ + int rc = SQLITE_OK; + if( 0==sqlite3_stricmp(zCol, FTS5_RANK_NAME) + || 0==sqlite3_stricmp(zCol, FTS5_ROWID_NAME) + ){ + *pzErr = sqlite3_mprintf("reserved fts5 column name: %s", zCol); + rc = SQLITE_ERROR; + }else if( zArg ){ + if( 0==sqlite3_stricmp(zArg, "unindexed") ){ + p->abUnindexed[p->nCol] = 1; + }else{ + *pzErr = sqlite3_mprintf("unrecognized column option: %s", zArg); + rc = SQLITE_ERROR; + } + } + + p->azCol[p->nCol++] = zCol; + return rc; +} + +/* +** Populate the Fts5Config.zContentExprlist string. +*/ +static int fts5ConfigMakeExprlist(Fts5Config *p){ + int i; + int rc = SQLITE_OK; + Fts5Buffer buf = {0, 0, 0}; + + sqlite3Fts5BufferAppendPrintf(&rc, &buf, "T.%Q", p->zContentRowid); + if( p->eContent!=FTS5_CONTENT_NONE ){ + for(i=0; inCol; i++){ + if( p->eContent==FTS5_CONTENT_EXTERNAL ){ + sqlite3Fts5BufferAppendPrintf(&rc, &buf, ", T.%Q", p->azCol[i]); + }else{ + sqlite3Fts5BufferAppendPrintf(&rc, &buf, ", T.c%d", i); + } + } + } + + assert( p->zContentExprlist==0 ); + p->zContentExprlist = (char*)buf.p; + return rc; +} + +/* +** Arguments nArg/azArg contain the string arguments passed to the xCreate +** or xConnect method of the virtual table. This function attempts to +** allocate an instance of Fts5Config containing the results of parsing +** those arguments. +** +** If successful, SQLITE_OK is returned and *ppOut is set to point to the +** new Fts5Config object. If an error occurs, an SQLite error code is +** returned, *ppOut is set to NULL and an error message may be left in +** *pzErr. It is the responsibility of the caller to eventually free any +** such error message using sqlite3_free(). +*/ +static int sqlite3Fts5ConfigParse( + Fts5Global *pGlobal, + sqlite3 *db, + int nArg, /* Number of arguments */ + const char **azArg, /* Array of nArg CREATE VIRTUAL TABLE args */ + Fts5Config **ppOut, /* OUT: Results of parse */ + char **pzErr /* OUT: Error message */ +){ + int rc = SQLITE_OK; /* Return code */ + Fts5Config *pRet; /* New object to return */ + int i; + int nByte; + + *ppOut = pRet = (Fts5Config*)sqlite3_malloc(sizeof(Fts5Config)); + if( pRet==0 ) return SQLITE_NOMEM; + memset(pRet, 0, sizeof(Fts5Config)); + pRet->db = db; + pRet->iCookie = -1; + + nByte = nArg * (sizeof(char*) + sizeof(u8)); + pRet->azCol = (char**)sqlite3Fts5MallocZero(&rc, nByte); + pRet->abUnindexed = (u8*)&pRet->azCol[nArg]; + pRet->zDb = sqlite3Fts5Strndup(&rc, azArg[1], -1); + pRet->zName = sqlite3Fts5Strndup(&rc, azArg[2], -1); + pRet->bColumnsize = 1; +#ifdef SQLITE_DEBUG + pRet->bPrefixIndex = 1; +#endif + if( rc==SQLITE_OK && sqlite3_stricmp(pRet->zName, FTS5_RANK_NAME)==0 ){ + *pzErr = sqlite3_mprintf("reserved fts5 table name: %s", pRet->zName); + rc = SQLITE_ERROR; + } + + for(i=3; rc==SQLITE_OK && ipTok==0 ){ + rc = fts5ConfigDefaultTokenizer(pGlobal, pRet); + } + + /* If no zContent option was specified, fill in the default values. */ + if( rc==SQLITE_OK && pRet->zContent==0 ){ + const char *zTail = 0; + assert( pRet->eContent==FTS5_CONTENT_NORMAL + || pRet->eContent==FTS5_CONTENT_NONE + ); + if( pRet->eContent==FTS5_CONTENT_NORMAL ){ + zTail = "content"; + }else if( pRet->bColumnsize ){ + zTail = "docsize"; + } + + if( zTail ){ + pRet->zContent = sqlite3Fts5Mprintf( + &rc, "%Q.'%q_%s'", pRet->zDb, pRet->zName, zTail + ); + } + } + + if( rc==SQLITE_OK && pRet->zContentRowid==0 ){ + pRet->zContentRowid = sqlite3Fts5Strndup(&rc, "rowid", -1); + } + + /* Formulate the zContentExprlist text */ + if( rc==SQLITE_OK ){ + rc = fts5ConfigMakeExprlist(pRet); + } + + if( rc!=SQLITE_OK ){ + sqlite3Fts5ConfigFree(pRet); + *ppOut = 0; + } + return rc; +} + +/* +** Free the configuration object passed as the only argument. +*/ +static void sqlite3Fts5ConfigFree(Fts5Config *pConfig){ + if( pConfig ){ + int i; + if( pConfig->pTok ){ + pConfig->pTokApi->xDelete(pConfig->pTok); + } + sqlite3_free(pConfig->zDb); + sqlite3_free(pConfig->zName); + for(i=0; inCol; i++){ + sqlite3_free(pConfig->azCol[i]); + } + sqlite3_free(pConfig->azCol); + sqlite3_free(pConfig->aPrefix); + sqlite3_free(pConfig->zRank); + sqlite3_free(pConfig->zRankArgs); + sqlite3_free(pConfig->zContent); + sqlite3_free(pConfig->zContentRowid); + sqlite3_free(pConfig->zContentExprlist); + sqlite3_free(pConfig); + } +} + +/* +** Call sqlite3_declare_vtab() based on the contents of the configuration +** object passed as the only argument. Return SQLITE_OK if successful, or +** an SQLite error code if an error occurs. +*/ +static int sqlite3Fts5ConfigDeclareVtab(Fts5Config *pConfig){ + int i; + int rc = SQLITE_OK; + char *zSql; + + zSql = sqlite3Fts5Mprintf(&rc, "CREATE TABLE x("); + for(i=0; zSql && inCol; i++){ + const char *zSep = (i==0?"":", "); + zSql = sqlite3Fts5Mprintf(&rc, "%z%s%Q", zSql, zSep, pConfig->azCol[i]); + } + zSql = sqlite3Fts5Mprintf(&rc, "%z, %Q HIDDEN, %s HIDDEN)", + zSql, pConfig->zName, FTS5_RANK_NAME + ); + + assert( zSql || rc==SQLITE_NOMEM ); + if( zSql ){ + rc = sqlite3_declare_vtab(pConfig->db, zSql); + sqlite3_free(zSql); + } + + return rc; +} + +/* +** Tokenize the text passed via the second and third arguments. +** +** The callback is invoked once for each token in the input text. The +** arguments passed to it are, in order: +** +** void *pCtx // Copy of 4th argument to sqlite3Fts5Tokenize() +** const char *pToken // Pointer to buffer containing token +** int nToken // Size of token in bytes +** int iStart // Byte offset of start of token within input text +** int iEnd // Byte offset of end of token within input text +** int iPos // Position of token in input (first token is 0) +** +** If the callback returns a non-zero value the tokenization is abandoned +** and no further callbacks are issued. +** +** This function returns SQLITE_OK if successful or an SQLite error code +** if an error occurs. If the tokenization was abandoned early because +** the callback returned SQLITE_DONE, this is not an error and this function +** still returns SQLITE_OK. Or, if the tokenization was abandoned early +** because the callback returned another non-zero value, it is assumed +** to be an SQLite error code and returned to the caller. +*/ +static int sqlite3Fts5Tokenize( + Fts5Config *pConfig, /* FTS5 Configuration object */ + int flags, /* FTS5_TOKENIZE_* flags */ + const char *pText, int nText, /* Text to tokenize */ + void *pCtx, /* Context passed to xToken() */ + int (*xToken)(void*, int, const char*, int, int, int) /* Callback */ +){ + if( pText==0 ) return SQLITE_OK; + return pConfig->pTokApi->xTokenize( + pConfig->pTok, pCtx, flags, pText, nText, xToken + ); +} + +/* +** Argument pIn points to the first character in what is expected to be +** a comma-separated list of SQL literals followed by a ')' character. +** If it actually is this, return a pointer to the ')'. Otherwise, return +** NULL to indicate a parse error. +*/ +static const char *fts5ConfigSkipArgs(const char *pIn){ + const char *p = pIn; + + while( 1 ){ + p = fts5ConfigSkipWhitespace(p); + p = fts5ConfigSkipLiteral(p); + p = fts5ConfigSkipWhitespace(p); + if( p==0 || *p==')' ) break; + if( *p!=',' ){ + p = 0; + break; + } + p++; + } + + return p; +} + +/* +** Parameter zIn contains a rank() function specification. The format of +** this is: +** +** + Bareword (function name) +** + Open parenthesis - "(" +** + Zero or more SQL literals in a comma separated list +** + Close parenthesis - ")" +*/ +static int sqlite3Fts5ConfigParseRank( + const char *zIn, /* Input string */ + char **pzRank, /* OUT: Rank function name */ + char **pzRankArgs /* OUT: Rank function arguments */ +){ + const char *p = zIn; + const char *pRank; + char *zRank = 0; + char *zRankArgs = 0; + int rc = SQLITE_OK; + + *pzRank = 0; + *pzRankArgs = 0; + + p = fts5ConfigSkipWhitespace(p); + pRank = p; + p = fts5ConfigSkipBareword(p); + + if( p ){ + zRank = sqlite3Fts5MallocZero(&rc, 1 + p - pRank); + if( zRank ) memcpy(zRank, pRank, p-pRank); + }else{ + rc = SQLITE_ERROR; + } + + if( rc==SQLITE_OK ){ + p = fts5ConfigSkipWhitespace(p); + if( *p!='(' ) rc = SQLITE_ERROR; + p++; + } + if( rc==SQLITE_OK ){ + const char *pArgs; + p = fts5ConfigSkipWhitespace(p); + pArgs = p; + if( *p!=')' ){ + p = fts5ConfigSkipArgs(p); + if( p==0 ){ + rc = SQLITE_ERROR; + }else{ + zRankArgs = sqlite3Fts5MallocZero(&rc, 1 + p - pArgs); + if( zRankArgs ) memcpy(zRankArgs, pArgs, p-pArgs); + } + } + } + + if( rc!=SQLITE_OK ){ + sqlite3_free(zRank); + assert( zRankArgs==0 ); + }else{ + *pzRank = zRank; + *pzRankArgs = zRankArgs; + } + return rc; +} + +static int sqlite3Fts5ConfigSetValue( + Fts5Config *pConfig, + const char *zKey, + sqlite3_value *pVal, + int *pbBadkey +){ + int rc = SQLITE_OK; + + if( 0==sqlite3_stricmp(zKey, "pgsz") ){ + int pgsz = 0; + if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){ + pgsz = sqlite3_value_int(pVal); + } + if( pgsz<=0 || pgsz>FTS5_MAX_PAGE_SIZE ){ + *pbBadkey = 1; + }else{ + pConfig->pgsz = pgsz; + } + } + + else if( 0==sqlite3_stricmp(zKey, "automerge") ){ + int nAutomerge = -1; + if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){ + nAutomerge = sqlite3_value_int(pVal); + } + if( nAutomerge<0 || nAutomerge>64 ){ + *pbBadkey = 1; + }else{ + if( nAutomerge==1 ) nAutomerge = FTS5_DEFAULT_AUTOMERGE; + pConfig->nAutomerge = nAutomerge; + } + } + + else if( 0==sqlite3_stricmp(zKey, "crisismerge") ){ + int nCrisisMerge = -1; + if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){ + nCrisisMerge = sqlite3_value_int(pVal); + } + if( nCrisisMerge<0 ){ + *pbBadkey = 1; + }else{ + if( nCrisisMerge<=1 ) nCrisisMerge = FTS5_DEFAULT_CRISISMERGE; + pConfig->nCrisisMerge = nCrisisMerge; + } + } + + else if( 0==sqlite3_stricmp(zKey, "rank") ){ + const char *zIn = (const char*)sqlite3_value_text(pVal); + char *zRank; + char *zRankArgs; + rc = sqlite3Fts5ConfigParseRank(zIn, &zRank, &zRankArgs); + if( rc==SQLITE_OK ){ + sqlite3_free(pConfig->zRank); + sqlite3_free(pConfig->zRankArgs); + pConfig->zRank = zRank; + pConfig->zRankArgs = zRankArgs; + }else if( rc==SQLITE_ERROR ){ + rc = SQLITE_OK; + *pbBadkey = 1; + } + }else{ + *pbBadkey = 1; + } + return rc; +} + +/* +** Load the contents of the %_config table into memory. +*/ +static int sqlite3Fts5ConfigLoad(Fts5Config *pConfig, int iCookie){ + const char *zSelect = "SELECT k, v FROM %Q.'%q_config'"; + char *zSql; + sqlite3_stmt *p = 0; + int rc = SQLITE_OK; + int iVersion = 0; + + /* Set default values */ + pConfig->pgsz = FTS5_DEFAULT_PAGE_SIZE; + pConfig->nAutomerge = FTS5_DEFAULT_AUTOMERGE; + pConfig->nCrisisMerge = FTS5_DEFAULT_CRISISMERGE; + + zSql = sqlite3Fts5Mprintf(&rc, zSelect, pConfig->zDb, pConfig->zName); + if( zSql ){ + rc = sqlite3_prepare_v2(pConfig->db, zSql, -1, &p, 0); + sqlite3_free(zSql); + } + + assert( rc==SQLITE_OK || p==0 ); + if( rc==SQLITE_OK ){ + while( SQLITE_ROW==sqlite3_step(p) ){ + const char *zK = (const char*)sqlite3_column_text(p, 0); + sqlite3_value *pVal = sqlite3_column_value(p, 1); + if( 0==sqlite3_stricmp(zK, "version") ){ + iVersion = sqlite3_value_int(pVal); + }else{ + int bDummy = 0; + sqlite3Fts5ConfigSetValue(pConfig, zK, pVal, &bDummy); + } + } + rc = sqlite3_finalize(p); + } + + if( rc==SQLITE_OK && iVersion!=FTS5_CURRENT_VERSION ){ + rc = SQLITE_ERROR; + if( pConfig->pzErrmsg ){ + assert( 0==*pConfig->pzErrmsg ); + *pConfig->pzErrmsg = sqlite3_mprintf( + "invalid fts5 file format (found %d, expected %d) - run 'rebuild'", + iVersion, FTS5_CURRENT_VERSION + ); + } + } + + if( rc==SQLITE_OK ){ + pConfig->iCookie = iCookie; + } + return rc; +} + + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +*/ + + + + +/* +** All token types in the generated fts5parse.h file are greater than 0. +*/ +#define FTS5_EOF 0 + +#define FTS5_LARGEST_INT64 (0xffffffff|(((i64)0x7fffffff)<<32)) + +typedef struct Fts5ExprTerm Fts5ExprTerm; + +/* +** Functions generated by lemon from fts5parse.y. +*/ +static void *sqlite3Fts5ParserAlloc(void *(*mallocProc)(u64)); +static void sqlite3Fts5ParserFree(void*, void (*freeProc)(void*)); +static void sqlite3Fts5Parser(void*, int, Fts5Token, Fts5Parse*); +#ifndef NDEBUG +/* #include */ +static void sqlite3Fts5ParserTrace(FILE*, char*); +#endif + + +struct Fts5Expr { + Fts5Index *pIndex; + Fts5ExprNode *pRoot; + int bDesc; /* Iterate in descending rowid order */ + int nPhrase; /* Number of phrases in expression */ + Fts5ExprPhrase **apExprPhrase; /* Pointers to phrase objects */ +}; + +/* +** eType: +** Expression node type. Always one of: +** +** FTS5_AND (nChild, apChild valid) +** FTS5_OR (nChild, apChild valid) +** FTS5_NOT (nChild, apChild valid) +** FTS5_STRING (pNear valid) +** FTS5_TERM (pNear valid) +*/ +struct Fts5ExprNode { + int eType; /* Node type */ + int bEof; /* True at EOF */ + int bNomatch; /* True if entry is not a match */ + + i64 iRowid; /* Current rowid */ + Fts5ExprNearset *pNear; /* For FTS5_STRING - cluster of phrases */ + + /* Child nodes. For a NOT node, this array always contains 2 entries. For + ** AND or OR nodes, it contains 2 or more entries. */ + int nChild; /* Number of child nodes */ + Fts5ExprNode *apChild[1]; /* Array of child nodes */ +}; + +#define Fts5NodeIsString(p) ((p)->eType==FTS5_TERM || (p)->eType==FTS5_STRING) + +/* +** An instance of the following structure represents a single search term +** or term prefix. +*/ +struct Fts5ExprTerm { + int bPrefix; /* True for a prefix term */ + char *zTerm; /* nul-terminated term */ + Fts5IndexIter *pIter; /* Iterator for this term */ + Fts5ExprTerm *pSynonym; /* Pointer to first in list of synonyms */ +}; + +/* +** A phrase. One or more terms that must appear in a contiguous sequence +** within a document for it to match. +*/ +struct Fts5ExprPhrase { + Fts5ExprNode *pNode; /* FTS5_STRING node this phrase is part of */ + Fts5Buffer poslist; /* Current position list */ + int nTerm; /* Number of entries in aTerm[] */ + Fts5ExprTerm aTerm[1]; /* Terms that make up this phrase */ +}; + +/* +** One or more phrases that must appear within a certain token distance of +** each other within each matching document. +*/ +struct Fts5ExprNearset { + int nNear; /* NEAR parameter */ + Fts5Colset *pColset; /* Columns to search (NULL -> all columns) */ + int nPhrase; /* Number of entries in aPhrase[] array */ + Fts5ExprPhrase *apPhrase[1]; /* Array of phrase pointers */ +}; + + +/* +** Parse context. +*/ +struct Fts5Parse { + Fts5Config *pConfig; + char *zErr; + int rc; + int nPhrase; /* Size of apPhrase array */ + Fts5ExprPhrase **apPhrase; /* Array of all phrases */ + Fts5ExprNode *pExpr; /* Result of a successful parse */ +}; + +static void sqlite3Fts5ParseError(Fts5Parse *pParse, const char *zFmt, ...){ + va_list ap; + va_start(ap, zFmt); + if( pParse->rc==SQLITE_OK ){ + pParse->zErr = sqlite3_vmprintf(zFmt, ap); + pParse->rc = SQLITE_ERROR; + } + va_end(ap); +} + +static int fts5ExprIsspace(char t){ + return t==' ' || t=='\t' || t=='\n' || t=='\r'; +} + +/* +** Read the first token from the nul-terminated string at *pz. +*/ +static int fts5ExprGetToken( + Fts5Parse *pParse, + const char **pz, /* IN/OUT: Pointer into buffer */ + Fts5Token *pToken +){ + const char *z = *pz; + int tok; + + /* Skip past any whitespace */ + while( fts5ExprIsspace(*z) ) z++; + + pToken->p = z; + pToken->n = 1; + switch( *z ){ + case '(': tok = FTS5_LP; break; + case ')': tok = FTS5_RP; break; + case '{': tok = FTS5_LCP; break; + case '}': tok = FTS5_RCP; break; + case ':': tok = FTS5_COLON; break; + case ',': tok = FTS5_COMMA; break; + case '+': tok = FTS5_PLUS; break; + case '*': tok = FTS5_STAR; break; + case '\0': tok = FTS5_EOF; break; + + case '"': { + const char *z2; + tok = FTS5_STRING; + + for(z2=&z[1]; 1; z2++){ + if( z2[0]=='"' ){ + z2++; + if( z2[0]!='"' ) break; + } + if( z2[0]=='\0' ){ + sqlite3Fts5ParseError(pParse, "unterminated string"); + return FTS5_EOF; + } + } + pToken->n = (z2 - z); + break; + } + + default: { + const char *z2; + if( sqlite3Fts5IsBareword(z[0])==0 ){ + sqlite3Fts5ParseError(pParse, "fts5: syntax error near \"%.1s\"", z); + return FTS5_EOF; + } + tok = FTS5_STRING; + for(z2=&z[1]; sqlite3Fts5IsBareword(*z2); z2++); + pToken->n = (z2 - z); + if( pToken->n==2 && memcmp(pToken->p, "OR", 2)==0 ) tok = FTS5_OR; + if( pToken->n==3 && memcmp(pToken->p, "NOT", 3)==0 ) tok = FTS5_NOT; + if( pToken->n==3 && memcmp(pToken->p, "AND", 3)==0 ) tok = FTS5_AND; + break; + } + } + + *pz = &pToken->p[pToken->n]; + return tok; +} + +static void *fts5ParseAlloc(u64 t){ return sqlite3_malloc((int)t); } +static void fts5ParseFree(void *p){ sqlite3_free(p); } + +static int sqlite3Fts5ExprNew( + Fts5Config *pConfig, /* FTS5 Configuration */ + const char *zExpr, /* Expression text */ + Fts5Expr **ppNew, + char **pzErr +){ + Fts5Parse sParse; + Fts5Token token; + const char *z = zExpr; + int t; /* Next token type */ + void *pEngine; + Fts5Expr *pNew; + + *ppNew = 0; + *pzErr = 0; + memset(&sParse, 0, sizeof(sParse)); + pEngine = sqlite3Fts5ParserAlloc(fts5ParseAlloc); + if( pEngine==0 ){ return SQLITE_NOMEM; } + sParse.pConfig = pConfig; + + do { + t = fts5ExprGetToken(&sParse, &z, &token); + sqlite3Fts5Parser(pEngine, t, token, &sParse); + }while( sParse.rc==SQLITE_OK && t!=FTS5_EOF ); + sqlite3Fts5ParserFree(pEngine, fts5ParseFree); + + assert( sParse.rc!=SQLITE_OK || sParse.zErr==0 ); + if( sParse.rc==SQLITE_OK ){ + *ppNew = pNew = sqlite3_malloc(sizeof(Fts5Expr)); + if( pNew==0 ){ + sParse.rc = SQLITE_NOMEM; + sqlite3Fts5ParseNodeFree(sParse.pExpr); + }else{ + pNew->pRoot = sParse.pExpr; + pNew->pIndex = 0; + pNew->apExprPhrase = sParse.apPhrase; + pNew->nPhrase = sParse.nPhrase; + sParse.apPhrase = 0; + } + } + + sqlite3_free(sParse.apPhrase); + *pzErr = sParse.zErr; + return sParse.rc; +} + +/* +** Free the expression node object passed as the only argument. +*/ +static void sqlite3Fts5ParseNodeFree(Fts5ExprNode *p){ + if( p ){ + int i; + for(i=0; inChild; i++){ + sqlite3Fts5ParseNodeFree(p->apChild[i]); + } + sqlite3Fts5ParseNearsetFree(p->pNear); + sqlite3_free(p); + } +} + +/* +** Free the expression object passed as the only argument. +*/ +static void sqlite3Fts5ExprFree(Fts5Expr *p){ + if( p ){ + sqlite3Fts5ParseNodeFree(p->pRoot); + sqlite3_free(p->apExprPhrase); + sqlite3_free(p); + } +} + +/* +** Argument pTerm must be a synonym iterator. Return the current rowid +** that it points to. +*/ +static i64 fts5ExprSynonymRowid(Fts5ExprTerm *pTerm, int bDesc, int *pbEof){ + i64 iRet = 0; + int bRetValid = 0; + Fts5ExprTerm *p; + + assert( pTerm->pSynonym ); + assert( bDesc==0 || bDesc==1 ); + for(p=pTerm; p; p=p->pSynonym){ + if( 0==sqlite3Fts5IterEof(p->pIter) ){ + i64 iRowid = sqlite3Fts5IterRowid(p->pIter); + if( bRetValid==0 || (bDesc!=(iRowidpSynonym ); + for(p=pTerm; p; p=p->pSynonym){ + Fts5IndexIter *pIter = p->pIter; + if( sqlite3Fts5IterEof(pIter)==0 && sqlite3Fts5IterRowid(pIter)==iRowid ){ + const u8 *a; + int n; + i64 dummy; + rc = sqlite3Fts5IterPoslist(pIter, pColset, &a, &n, &dummy); + if( rc!=SQLITE_OK ) goto synonym_poslist_out; + if( nIter==nAlloc ){ + int nByte = sizeof(Fts5PoslistReader) * nAlloc * 2; + Fts5PoslistReader *aNew = (Fts5PoslistReader*)sqlite3_malloc(nByte); + if( aNew==0 ){ + rc = SQLITE_NOMEM; + goto synonym_poslist_out; + } + memcpy(aNew, aIter, sizeof(Fts5PoslistReader) * nIter); + nAlloc = nAlloc*2; + if( aIter!=aStatic ) sqlite3_free(aIter); + aIter = aNew; + } + sqlite3Fts5PoslistReaderInit(a, n, &aIter[nIter]); + assert( aIter[nIter].bEof==0 ); + nIter++; + } + } + + assert( *pbDel==0 ); + if( nIter==1 ){ + *pa = (u8*)aIter[0].a; + *pn = aIter[0].n; + }else{ + Fts5PoslistWriter writer = {0}; + Fts5Buffer buf = {0,0,0}; + i64 iPrev = -1; + while( 1 ){ + int i; + i64 iMin = FTS5_LARGEST_INT64; + for(i=0; iposlist buffer accordingly. Output parameter *pbMatch +** is set to true if this is really a match, or false otherwise. +** +** SQLITE_OK is returned if an error occurs, or an SQLite error code +** otherwise. It is not considered an error code if the current rowid is +** not a match. +*/ +static int fts5ExprPhraseIsMatch( + Fts5ExprNode *pNode, /* Node pPhrase belongs to */ + Fts5Colset *pColset, /* Restrict matches to these columns */ + Fts5ExprPhrase *pPhrase, /* Phrase object to initialize */ + int *pbMatch /* OUT: Set to true if really a match */ +){ + Fts5PoslistWriter writer = {0}; + Fts5PoslistReader aStatic[4]; + Fts5PoslistReader *aIter = aStatic; + int i; + int rc = SQLITE_OK; + + fts5BufferZero(&pPhrase->poslist); + + /* If the aStatic[] array is not large enough, allocate a large array + ** using sqlite3_malloc(). This approach could be improved upon. */ + if( pPhrase->nTerm>(sizeof(aStatic) / sizeof(aStatic[0])) ){ + int nByte = sizeof(Fts5PoslistReader) * pPhrase->nTerm; + aIter = (Fts5PoslistReader*)sqlite3_malloc(nByte); + if( !aIter ) return SQLITE_NOMEM; + } + memset(aIter, 0, sizeof(Fts5PoslistReader) * pPhrase->nTerm); + + /* Initialize a term iterator for each term in the phrase */ + for(i=0; inTerm; i++){ + Fts5ExprTerm *pTerm = &pPhrase->aTerm[i]; + i64 dummy; + int n = 0; + int bFlag = 0; + const u8 *a = 0; + if( pTerm->pSynonym ){ + rc = fts5ExprSynonymPoslist( + pTerm, pColset, pNode->iRowid, &bFlag, (u8**)&a, &n + ); + }else{ + rc = sqlite3Fts5IterPoslist(pTerm->pIter, pColset, &a, &n, &dummy); + } + if( rc!=SQLITE_OK ) goto ismatch_out; + sqlite3Fts5PoslistReaderInit(a, n, &aIter[i]); + aIter[i].bFlag = bFlag; + if( aIter[i].bEof ) goto ismatch_out; + } + + while( 1 ){ + int bMatch; + i64 iPos = aIter[0].iPos; + do { + bMatch = 1; + for(i=0; inTerm; i++){ + Fts5PoslistReader *pPos = &aIter[i]; + i64 iAdj = iPos + i; + if( pPos->iPos!=iAdj ){ + bMatch = 0; + while( pPos->iPosiPos>iAdj ) iPos = pPos->iPos-i; + } + } + }while( bMatch==0 ); + + /* Append position iPos to the output */ + rc = sqlite3Fts5PoslistWriterAppend(&pPhrase->poslist, &writer, iPos); + if( rc!=SQLITE_OK ) goto ismatch_out; + + for(i=0; inTerm; i++){ + if( sqlite3Fts5PoslistReaderNext(&aIter[i]) ) goto ismatch_out; + } + } + + ismatch_out: + *pbMatch = (pPhrase->poslist.n>0); + for(i=0; inTerm; i++){ + if( aIter[i].bFlag ) sqlite3_free((u8*)aIter[i].a); + } + if( aIter!=aStatic ) sqlite3_free(aIter); + return rc; +} + +typedef struct Fts5LookaheadReader Fts5LookaheadReader; +struct Fts5LookaheadReader { + const u8 *a; /* Buffer containing position list */ + int n; /* Size of buffer a[] in bytes */ + int i; /* Current offset in position list */ + i64 iPos; /* Current position */ + i64 iLookahead; /* Next position */ +}; + +#define FTS5_LOOKAHEAD_EOF (((i64)1) << 62) + +static int fts5LookaheadReaderNext(Fts5LookaheadReader *p){ + p->iPos = p->iLookahead; + if( sqlite3Fts5PoslistNext64(p->a, p->n, &p->i, &p->iLookahead) ){ + p->iLookahead = FTS5_LOOKAHEAD_EOF; + } + return (p->iPos==FTS5_LOOKAHEAD_EOF); +} + +static int fts5LookaheadReaderInit( + const u8 *a, int n, /* Buffer to read position list from */ + Fts5LookaheadReader *p /* Iterator object to initialize */ +){ + memset(p, 0, sizeof(Fts5LookaheadReader)); + p->a = a; + p->n = n; + fts5LookaheadReaderNext(p); + return fts5LookaheadReaderNext(p); +} + +#if 0 +static int fts5LookaheadReaderEof(Fts5LookaheadReader *p){ + return (p->iPos==FTS5_LOOKAHEAD_EOF); +} +#endif + +typedef struct Fts5NearTrimmer Fts5NearTrimmer; +struct Fts5NearTrimmer { + Fts5LookaheadReader reader; /* Input iterator */ + Fts5PoslistWriter writer; /* Writer context */ + Fts5Buffer *pOut; /* Output poslist */ +}; + +/* +** The near-set object passed as the first argument contains more than +** one phrase. All phrases currently point to the same row. The +** Fts5ExprPhrase.poslist buffers are populated accordingly. This function +** tests if the current row contains instances of each phrase sufficiently +** close together to meet the NEAR constraint. Non-zero is returned if it +** does, or zero otherwise. +** +** If in/out parameter (*pRc) is set to other than SQLITE_OK when this +** function is called, it is a no-op. Or, if an error (e.g. SQLITE_NOMEM) +** occurs within this function (*pRc) is set accordingly before returning. +** The return value is undefined in both these cases. +** +** If no error occurs and non-zero (a match) is returned, the position-list +** of each phrase object is edited to contain only those entries that +** meet the constraint before returning. +*/ +static int fts5ExprNearIsMatch(int *pRc, Fts5ExprNearset *pNear){ + Fts5NearTrimmer aStatic[4]; + Fts5NearTrimmer *a = aStatic; + Fts5ExprPhrase **apPhrase = pNear->apPhrase; + + int i; + int rc = *pRc; + int bMatch; + + assert( pNear->nPhrase>1 ); + + /* If the aStatic[] array is not large enough, allocate a large array + ** using sqlite3_malloc(). This approach could be improved upon. */ + if( pNear->nPhrase>(sizeof(aStatic) / sizeof(aStatic[0])) ){ + int nByte = sizeof(Fts5NearTrimmer) * pNear->nPhrase; + a = (Fts5NearTrimmer*)sqlite3Fts5MallocZero(&rc, nByte); + }else{ + memset(aStatic, 0, sizeof(aStatic)); + } + if( rc!=SQLITE_OK ){ + *pRc = rc; + return 0; + } + + /* Initialize a lookahead iterator for each phrase. After passing the + ** buffer and buffer size to the lookaside-reader init function, zero + ** the phrase poslist buffer. The new poslist for the phrase (containing + ** the same entries as the original with some entries removed on account + ** of the NEAR constraint) is written over the original even as it is + ** being read. This is safe as the entries for the new poslist are a + ** subset of the old, so it is not possible for data yet to be read to + ** be overwritten. */ + for(i=0; inPhrase; i++){ + Fts5Buffer *pPoslist = &apPhrase[i]->poslist; + fts5LookaheadReaderInit(pPoslist->p, pPoslist->n, &a[i].reader); + pPoslist->n = 0; + a[i].pOut = pPoslist; + } + + while( 1 ){ + int iAdv; + i64 iMin; + i64 iMax; + + /* This block advances the phrase iterators until they point to a set of + ** entries that together comprise a match. */ + iMax = a[0].reader.iPos; + do { + bMatch = 1; + for(i=0; inPhrase; i++){ + Fts5LookaheadReader *pPos = &a[i].reader; + iMin = iMax - pNear->apPhrase[i]->nTerm - pNear->nNear; + if( pPos->iPosiPos>iMax ){ + bMatch = 0; + while( pPos->iPosiPos>iMax ) iMax = pPos->iPos; + } + } + }while( bMatch==0 ); + + /* Add an entry to each output position list */ + for(i=0; inPhrase; i++){ + i64 iPos = a[i].reader.iPos; + Fts5PoslistWriter *pWriter = &a[i].writer; + if( a[i].pOut->n==0 || iPos!=pWriter->iPrev ){ + sqlite3Fts5PoslistWriterAppend(a[i].pOut, pWriter, iPos); + } + } + + iAdv = 0; + iMin = a[0].reader.iLookahead; + for(i=0; inPhrase; i++){ + if( a[i].reader.iLookahead < iMin ){ + iMin = a[i].reader.iLookahead; + iAdv = i; + } + } + if( fts5LookaheadReaderNext(&a[iAdv].reader) ) goto ismatch_out; + } + + ismatch_out: { + int bRet = a[0].pOut->n>0; + *pRc = rc; + if( a!=aStatic ) sqlite3_free(a); + return bRet; + } +} + +/* +** Advance the first term iterator in the first phrase of pNear. Set output +** variable *pbEof to true if it reaches EOF or if an error occurs. +** +** Return SQLITE_OK if successful, or an SQLite error code if an error +** occurs. +*/ +static int fts5ExprNearAdvanceFirst( + Fts5Expr *pExpr, /* Expression pPhrase belongs to */ + Fts5ExprNode *pNode, /* FTS5_STRING or FTS5_TERM node */ + int bFromValid, + i64 iFrom +){ + Fts5ExprTerm *pTerm = &pNode->pNear->apPhrase[0]->aTerm[0]; + int rc = SQLITE_OK; + + if( pTerm->pSynonym ){ + int bEof = 1; + Fts5ExprTerm *p; + + /* Find the firstest rowid any synonym points to. */ + i64 iRowid = fts5ExprSynonymRowid(pTerm, pExpr->bDesc, 0); + + /* Advance each iterator that currently points to iRowid. Or, if iFrom + ** is valid - each iterator that points to a rowid before iFrom. */ + for(p=pTerm; p; p=p->pSynonym){ + if( sqlite3Fts5IterEof(p->pIter)==0 ){ + i64 ii = sqlite3Fts5IterRowid(p->pIter); + if( ii==iRowid + || (bFromValid && ii!=iFrom && (ii>iFrom)==pExpr->bDesc) + ){ + if( bFromValid ){ + rc = sqlite3Fts5IterNextFrom(p->pIter, iFrom); + }else{ + rc = sqlite3Fts5IterNext(p->pIter); + } + if( rc!=SQLITE_OK ) break; + if( sqlite3Fts5IterEof(p->pIter)==0 ){ + bEof = 0; + } + }else{ + bEof = 0; + } + } + } + + /* Set the EOF flag if either all synonym iterators are at EOF or an + ** error has occurred. */ + pNode->bEof = (rc || bEof); + }else{ + Fts5IndexIter *pIter = pTerm->pIter; + + assert( Fts5NodeIsString(pNode) ); + if( bFromValid ){ + rc = sqlite3Fts5IterNextFrom(pIter, iFrom); + }else{ + rc = sqlite3Fts5IterNext(pIter); + } + + pNode->bEof = (rc || sqlite3Fts5IterEof(pIter)); + } + + return rc; +} + +/* +** Advance iterator pIter until it points to a value equal to or laster +** than the initial value of *piLast. If this means the iterator points +** to a value laster than *piLast, update *piLast to the new lastest value. +** +** If the iterator reaches EOF, set *pbEof to true before returning. If +** an error occurs, set *pRc to an error code. If either *pbEof or *pRc +** are set, return a non-zero value. Otherwise, return zero. +*/ +static int fts5ExprAdvanceto( + Fts5IndexIter *pIter, /* Iterator to advance */ + int bDesc, /* True if iterator is "rowid DESC" */ + i64 *piLast, /* IN/OUT: Lastest rowid seen so far */ + int *pRc, /* OUT: Error code */ + int *pbEof /* OUT: Set to true if EOF */ +){ + i64 iLast = *piLast; + i64 iRowid; + + iRowid = sqlite3Fts5IterRowid(pIter); + if( (bDesc==0 && iLast>iRowid) || (bDesc && iLast=iLast) || (bDesc==1 && iRowid<=iLast) ); + } + *piLast = iRowid; + + return 0; +} + +static int fts5ExprSynonymAdvanceto( + Fts5ExprTerm *pTerm, /* Term iterator to advance */ + int bDesc, /* True if iterator is "rowid DESC" */ + i64 *piLast, /* IN/OUT: Lastest rowid seen so far */ + int *pRc /* OUT: Error code */ +){ + int rc = SQLITE_OK; + i64 iLast = *piLast; + Fts5ExprTerm *p; + int bEof = 0; + + for(p=pTerm; rc==SQLITE_OK && p; p=p->pSynonym){ + if( sqlite3Fts5IterEof(p->pIter)==0 ){ + i64 iRowid = sqlite3Fts5IterRowid(p->pIter); + if( (bDesc==0 && iLast>iRowid) || (bDesc && iLastpIter, iLast); + } + } + } + + if( rc!=SQLITE_OK ){ + *pRc = rc; + bEof = 1; + }else{ + *piLast = fts5ExprSynonymRowid(pTerm, bDesc, &bEof); + } + return bEof; +} + + +static int fts5ExprNearTest( + int *pRc, + Fts5Expr *pExpr, /* Expression that pNear is a part of */ + Fts5ExprNode *pNode /* The "NEAR" node (FTS5_STRING) */ +){ + Fts5ExprNearset *pNear = pNode->pNear; + int rc = *pRc; + int i; + + /* Check that each phrase in the nearset matches the current row. + ** Populate the pPhrase->poslist buffers at the same time. If any + ** phrase is not a match, break out of the loop early. */ + for(i=0; rc==SQLITE_OK && inPhrase; i++){ + Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; + if( pPhrase->nTerm>1 || pPhrase->aTerm[0].pSynonym || pNear->pColset ){ + int bMatch = 0; + rc = fts5ExprPhraseIsMatch(pNode, pNear->pColset, pPhrase, &bMatch); + if( bMatch==0 ) break; + }else{ + rc = sqlite3Fts5IterPoslistBuffer( + pPhrase->aTerm[0].pIter, &pPhrase->poslist + ); + } + } + + *pRc = rc; + if( i==pNear->nPhrase && (i==1 || fts5ExprNearIsMatch(pRc, pNear)) ){ + return 1; + } + + return 0; +} + +static int fts5ExprTokenTest( + Fts5Expr *pExpr, /* Expression that pNear is a part of */ + Fts5ExprNode *pNode /* The "NEAR" node (FTS5_TERM) */ +){ + /* As this "NEAR" object is actually a single phrase that consists + ** of a single term only, grab pointers into the poslist managed by the + ** fts5_index.c iterator object. This is much faster than synthesizing + ** a new poslist the way we have to for more complicated phrase or NEAR + ** expressions. */ + Fts5ExprNearset *pNear = pNode->pNear; + Fts5ExprPhrase *pPhrase = pNear->apPhrase[0]; + Fts5IndexIter *pIter = pPhrase->aTerm[0].pIter; + Fts5Colset *pColset = pNear->pColset; + int rc; + + assert( pNode->eType==FTS5_TERM ); + assert( pNear->nPhrase==1 && pPhrase->nTerm==1 ); + assert( pPhrase->aTerm[0].pSynonym==0 ); + + rc = sqlite3Fts5IterPoslist(pIter, pColset, + (const u8**)&pPhrase->poslist.p, &pPhrase->poslist.n, &pNode->iRowid + ); + pNode->bNomatch = (pPhrase->poslist.n==0); + return rc; +} + +/* +** All individual term iterators in pNear are guaranteed to be valid when +** this function is called. This function checks if all term iterators +** point to the same rowid, and if not, advances them until they do. +** If an EOF is reached before this happens, *pbEof is set to true before +** returning. +** +** SQLITE_OK is returned if an error occurs, or an SQLite error code +** otherwise. It is not considered an error code if an iterator reaches +** EOF. +*/ +static int fts5ExprNearNextMatch( + Fts5Expr *pExpr, /* Expression pPhrase belongs to */ + Fts5ExprNode *pNode +){ + Fts5ExprNearset *pNear = pNode->pNear; + Fts5ExprPhrase *pLeft = pNear->apPhrase[0]; + int rc = SQLITE_OK; + i64 iLast; /* Lastest rowid any iterator points to */ + int i, j; /* Phrase and token index, respectively */ + int bMatch; /* True if all terms are at the same rowid */ + const int bDesc = pExpr->bDesc; + + /* Check that this node should not be FTS5_TERM */ + assert( pNear->nPhrase>1 + || pNear->apPhrase[0]->nTerm>1 + || pNear->apPhrase[0]->aTerm[0].pSynonym + ); + + /* Initialize iLast, the "lastest" rowid any iterator points to. If the + ** iterator skips through rowids in the default ascending order, this means + ** the maximum rowid. Or, if the iterator is "ORDER BY rowid DESC", then it + ** means the minimum rowid. */ + if( pLeft->aTerm[0].pSynonym ){ + iLast = fts5ExprSynonymRowid(&pLeft->aTerm[0], bDesc, 0); + }else{ + iLast = sqlite3Fts5IterRowid(pLeft->aTerm[0].pIter); + } + + do { + bMatch = 1; + for(i=0; inPhrase; i++){ + Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; + for(j=0; jnTerm; j++){ + Fts5ExprTerm *pTerm = &pPhrase->aTerm[j]; + if( pTerm->pSynonym ){ + i64 iRowid = fts5ExprSynonymRowid(pTerm, bDesc, 0); + if( iRowid==iLast ) continue; + bMatch = 0; + if( fts5ExprSynonymAdvanceto(pTerm, bDesc, &iLast, &rc) ){ + pNode->bEof = 1; + return rc; + } + }else{ + Fts5IndexIter *pIter = pPhrase->aTerm[j].pIter; + i64 iRowid = sqlite3Fts5IterRowid(pIter); + if( iRowid==iLast ) continue; + bMatch = 0; + if( fts5ExprAdvanceto(pIter, bDesc, &iLast, &rc, &pNode->bEof) ){ + return rc; + } + } + } + } + }while( bMatch==0 ); + + pNode->iRowid = iLast; + pNode->bNomatch = (0==fts5ExprNearTest(&rc, pExpr, pNode)); + + return rc; +} + +/* +** Initialize all term iterators in the pNear object. If any term is found +** to match no documents at all, return immediately without initializing any +** further iterators. +*/ +static int fts5ExprNearInitAll( + Fts5Expr *pExpr, + Fts5ExprNode *pNode +){ + Fts5ExprNearset *pNear = pNode->pNear; + int i, j; + int rc = SQLITE_OK; + + for(i=0; rc==SQLITE_OK && inPhrase; i++){ + Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; + for(j=0; jnTerm; j++){ + Fts5ExprTerm *pTerm = &pPhrase->aTerm[j]; + Fts5ExprTerm *p; + int bEof = 1; + + for(p=pTerm; p && rc==SQLITE_OK; p=p->pSynonym){ + if( p->pIter ){ + sqlite3Fts5IterClose(p->pIter); + p->pIter = 0; + } + rc = sqlite3Fts5IndexQuery( + pExpr->pIndex, p->zTerm, strlen(p->zTerm), + (pTerm->bPrefix ? FTS5INDEX_QUERY_PREFIX : 0) | + (pExpr->bDesc ? FTS5INDEX_QUERY_DESC : 0), + pNear->pColset, + &p->pIter + ); + assert( rc==SQLITE_OK || p->pIter==0 ); + if( p->pIter && 0==sqlite3Fts5IterEof(p->pIter) ){ + bEof = 0; + } + } + + if( bEof ){ + pNode->bEof = 1; + return rc; + } + } + } + + return rc; +} + +/* fts5ExprNodeNext() calls fts5ExprNodeNextMatch(). And vice-versa. */ +static int fts5ExprNodeNextMatch(Fts5Expr*, Fts5ExprNode*); + + +/* +** If pExpr is an ASC iterator, this function returns a value with the +** same sign as: +** +** (iLhs - iRhs) +** +** Otherwise, if this is a DESC iterator, the opposite is returned: +** +** (iRhs - iLhs) +*/ +static int fts5RowidCmp( + Fts5Expr *pExpr, + i64 iLhs, + i64 iRhs +){ + assert( pExpr->bDesc==0 || pExpr->bDesc==1 ); + if( pExpr->bDesc==0 ){ + if( iLhs iRhs); + }else{ + if( iLhs>iRhs ) return -1; + return (iLhs < iRhs); + } +} + +static void fts5ExprSetEof(Fts5ExprNode *pNode){ + int i; + pNode->bEof = 1; + for(i=0; inChild; i++){ + fts5ExprSetEof(pNode->apChild[i]); + } +} + +static void fts5ExprNodeZeroPoslist(Fts5ExprNode *pNode){ + if( pNode->eType==FTS5_STRING || pNode->eType==FTS5_TERM ){ + Fts5ExprNearset *pNear = pNode->pNear; + int i; + for(i=0; inPhrase; i++){ + Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; + pPhrase->poslist.n = 0; + } + }else{ + int i; + for(i=0; inChild; i++){ + fts5ExprNodeZeroPoslist(pNode->apChild[i]); + } + } +} + + +static int fts5ExprNodeNext(Fts5Expr*, Fts5ExprNode*, int, i64); + +/* +** Argument pNode is an FTS5_AND node. +*/ +static int fts5ExprAndNextRowid( + Fts5Expr *pExpr, /* Expression pPhrase belongs to */ + Fts5ExprNode *pAnd /* FTS5_AND node to advance */ +){ + int iChild; + i64 iLast = pAnd->iRowid; + int rc = SQLITE_OK; + int bMatch; + + assert( pAnd->bEof==0 ); + do { + pAnd->bNomatch = 0; + bMatch = 1; + for(iChild=0; iChildnChild; iChild++){ + Fts5ExprNode *pChild = pAnd->apChild[iChild]; + if( 0 && pChild->eType==FTS5_STRING ){ + /* TODO */ + }else{ + int cmp = fts5RowidCmp(pExpr, iLast, pChild->iRowid); + if( cmp>0 ){ + /* Advance pChild until it points to iLast or laster */ + rc = fts5ExprNodeNext(pExpr, pChild, 1, iLast); + if( rc!=SQLITE_OK ) return rc; + } + } + + /* If the child node is now at EOF, so is the parent AND node. Otherwise, + ** the child node is guaranteed to have advanced at least as far as + ** rowid iLast. So if it is not at exactly iLast, pChild->iRowid is the + ** new lastest rowid seen so far. */ + assert( pChild->bEof || fts5RowidCmp(pExpr, iLast, pChild->iRowid)<=0 ); + if( pChild->bEof ){ + fts5ExprSetEof(pAnd); + bMatch = 1; + break; + }else if( iLast!=pChild->iRowid ){ + bMatch = 0; + iLast = pChild->iRowid; + } + + if( pChild->bNomatch ){ + pAnd->bNomatch = 1; + } + } + }while( bMatch==0 ); + + if( pAnd->bNomatch && pAnd!=pExpr->pRoot ){ + fts5ExprNodeZeroPoslist(pAnd); + } + pAnd->iRowid = iLast; + return SQLITE_OK; +} + + +/* +** Compare the values currently indicated by the two nodes as follows: +** +** res = (*p1) - (*p2) +** +** Nodes that point to values that come later in the iteration order are +** considered to be larger. Nodes at EOF are the largest of all. +** +** This means that if the iteration order is ASC, then numerically larger +** rowids are considered larger. Or if it is the default DESC, numerically +** smaller rowids are larger. +*/ +static int fts5NodeCompare( + Fts5Expr *pExpr, + Fts5ExprNode *p1, + Fts5ExprNode *p2 +){ + if( p2->bEof ) return -1; + if( p1->bEof ) return +1; + return fts5RowidCmp(pExpr, p1->iRowid, p2->iRowid); +} + +/* +** Advance node iterator pNode, part of expression pExpr. If argument +** bFromValid is zero, then pNode is advanced exactly once. Or, if argument +** bFromValid is non-zero, then pNode is advanced until it is at or past +** rowid value iFrom. Whether "past" means "less than" or "greater than" +** depends on whether this is an ASC or DESC iterator. +*/ +static int fts5ExprNodeNext( + Fts5Expr *pExpr, + Fts5ExprNode *pNode, + int bFromValid, + i64 iFrom +){ + int rc = SQLITE_OK; + + if( pNode->bEof==0 ){ + switch( pNode->eType ){ + case FTS5_STRING: { + rc = fts5ExprNearAdvanceFirst(pExpr, pNode, bFromValid, iFrom); + break; + }; + + case FTS5_TERM: { + Fts5IndexIter *pIter = pNode->pNear->apPhrase[0]->aTerm[0].pIter; + if( bFromValid ){ + rc = sqlite3Fts5IterNextFrom(pIter, iFrom); + }else{ + rc = sqlite3Fts5IterNext(pIter); + } + if( rc==SQLITE_OK && sqlite3Fts5IterEof(pIter)==0 ){ + assert( rc==SQLITE_OK ); + rc = fts5ExprTokenTest(pExpr, pNode); + }else{ + pNode->bEof = 1; + } + return rc; + }; + + case FTS5_AND: { + Fts5ExprNode *pLeft = pNode->apChild[0]; + rc = fts5ExprNodeNext(pExpr, pLeft, bFromValid, iFrom); + break; + } + + case FTS5_OR: { + int i; + i64 iLast = pNode->iRowid; + + for(i=0; rc==SQLITE_OK && inChild; i++){ + Fts5ExprNode *p1 = pNode->apChild[i]; + assert( p1->bEof || fts5RowidCmp(pExpr, p1->iRowid, iLast)>=0 ); + if( p1->bEof==0 ){ + if( (p1->iRowid==iLast) + || (bFromValid && fts5RowidCmp(pExpr, p1->iRowid, iFrom)<0) + ){ + rc = fts5ExprNodeNext(pExpr, p1, bFromValid, iFrom); + } + } + } + + break; + } + + default: assert( pNode->eType==FTS5_NOT ); { + assert( pNode->nChild==2 ); + rc = fts5ExprNodeNext(pExpr, pNode->apChild[0], bFromValid, iFrom); + break; + } + } + + if( rc==SQLITE_OK ){ + rc = fts5ExprNodeNextMatch(pExpr, pNode); + } + } + + /* Assert that if bFromValid was true, either: + ** + ** a) an error occurred, or + ** b) the node is now at EOF, or + ** c) the node is now at or past rowid iFrom. + */ + assert( bFromValid==0 + || rc!=SQLITE_OK /* a */ + || pNode->bEof /* b */ + || pNode->iRowid==iFrom || pExpr->bDesc==(pNode->iRowidbEof==0 ){ + switch( pNode->eType ){ + + case FTS5_STRING: { + /* Advance the iterators until they all point to the same rowid */ + rc = fts5ExprNearNextMatch(pExpr, pNode); + break; + } + + case FTS5_TERM: { + rc = fts5ExprTokenTest(pExpr, pNode); + break; + } + + case FTS5_AND: { + rc = fts5ExprAndNextRowid(pExpr, pNode); + break; + } + + case FTS5_OR: { + Fts5ExprNode *pNext = pNode->apChild[0]; + int i; + + for(i=1; inChild; i++){ + Fts5ExprNode *pChild = pNode->apChild[i]; + int cmp = fts5NodeCompare(pExpr, pNext, pChild); + if( cmp>0 || (cmp==0 && pChild->bNomatch==0) ){ + pNext = pChild; + } + } + pNode->iRowid = pNext->iRowid; + pNode->bEof = pNext->bEof; + pNode->bNomatch = pNext->bNomatch; + break; + } + + default: assert( pNode->eType==FTS5_NOT ); { + Fts5ExprNode *p1 = pNode->apChild[0]; + Fts5ExprNode *p2 = pNode->apChild[1]; + assert( pNode->nChild==2 ); + + while( rc==SQLITE_OK && p1->bEof==0 ){ + int cmp = fts5NodeCompare(pExpr, p1, p2); + if( cmp>0 ){ + rc = fts5ExprNodeNext(pExpr, p2, 1, p1->iRowid); + cmp = fts5NodeCompare(pExpr, p1, p2); + } + assert( rc!=SQLITE_OK || cmp<=0 ); + if( cmp || p2->bNomatch ) break; + rc = fts5ExprNodeNext(pExpr, p1, 0, 0); + } + pNode->bEof = p1->bEof; + pNode->iRowid = p1->iRowid; + break; + } + } + } + return rc; +} + + +/* +** Set node pNode, which is part of expression pExpr, to point to the first +** match. If there are no matches, set the Node.bEof flag to indicate EOF. +** +** Return an SQLite error code if an error occurs, or SQLITE_OK otherwise. +** It is not an error if there are no matches. +*/ +static int fts5ExprNodeFirst(Fts5Expr *pExpr, Fts5ExprNode *pNode){ + int rc = SQLITE_OK; + pNode->bEof = 0; + + if( Fts5NodeIsString(pNode) ){ + /* Initialize all term iterators in the NEAR object. */ + rc = fts5ExprNearInitAll(pExpr, pNode); + }else{ + int i; + for(i=0; inChild && rc==SQLITE_OK; i++){ + rc = fts5ExprNodeFirst(pExpr, pNode->apChild[i]); + } + pNode->iRowid = pNode->apChild[0]->iRowid; + } + + if( rc==SQLITE_OK ){ + rc = fts5ExprNodeNextMatch(pExpr, pNode); + } + return rc; +} + + +/* +** Begin iterating through the set of documents in index pIdx matched by +** the MATCH expression passed as the first argument. If the "bDesc" +** parameter is passed a non-zero value, iteration is in descending rowid +** order. Or, if it is zero, in ascending order. +** +** If iterating in ascending rowid order (bDesc==0), the first document +** visited is that with the smallest rowid that is larger than or equal +** to parameter iFirst. Or, if iterating in ascending order (bDesc==1), +** then the first document visited must have a rowid smaller than or +** equal to iFirst. +** +** Return SQLITE_OK if successful, or an SQLite error code otherwise. It +** is not considered an error if the query does not match any documents. +*/ +static int sqlite3Fts5ExprFirst(Fts5Expr *p, Fts5Index *pIdx, i64 iFirst, int bDesc){ + Fts5ExprNode *pRoot = p->pRoot; + int rc = SQLITE_OK; + if( pRoot ){ + p->pIndex = pIdx; + p->bDesc = bDesc; + rc = fts5ExprNodeFirst(p, pRoot); + + /* If not at EOF but the current rowid occurs earlier than iFirst in + ** the iteration order, move to document iFirst or later. */ + if( pRoot->bEof==0 && fts5RowidCmp(p, pRoot->iRowid, iFirst)<0 ){ + rc = fts5ExprNodeNext(p, pRoot, 1, iFirst); + } + + /* If the iterator is not at a real match, skip forward until it is. */ + while( pRoot->bNomatch && rc==SQLITE_OK && pRoot->bEof==0 ){ + rc = fts5ExprNodeNext(p, pRoot, 0, 0); + } + } + return rc; +} + +/* +** Move to the next document +** +** Return SQLITE_OK if successful, or an SQLite error code otherwise. It +** is not considered an error if the query does not match any documents. +*/ +static int sqlite3Fts5ExprNext(Fts5Expr *p, i64 iLast){ + int rc; + Fts5ExprNode *pRoot = p->pRoot; + do { + rc = fts5ExprNodeNext(p, pRoot, 0, 0); + }while( pRoot->bNomatch && pRoot->bEof==0 && rc==SQLITE_OK ); + if( fts5RowidCmp(p, pRoot->iRowid, iLast)>0 ){ + pRoot->bEof = 1; + } + return rc; +} + +static int sqlite3Fts5ExprEof(Fts5Expr *p){ + return (p->pRoot==0 || p->pRoot->bEof); +} + +static i64 sqlite3Fts5ExprRowid(Fts5Expr *p){ + return p->pRoot->iRowid; +} + +static int fts5ParseStringFromToken(Fts5Token *pToken, char **pz){ + int rc = SQLITE_OK; + *pz = sqlite3Fts5Strndup(&rc, pToken->p, pToken->n); + return rc; +} + +/* +** Free the phrase object passed as the only argument. +*/ +static void fts5ExprPhraseFree(Fts5ExprPhrase *pPhrase){ + if( pPhrase ){ + int i; + for(i=0; inTerm; i++){ + Fts5ExprTerm *pSyn; + Fts5ExprTerm *pNext; + Fts5ExprTerm *pTerm = &pPhrase->aTerm[i]; + sqlite3_free(pTerm->zTerm); + sqlite3Fts5IterClose(pTerm->pIter); + + for(pSyn=pTerm->pSynonym; pSyn; pSyn=pNext){ + pNext = pSyn->pSynonym; + sqlite3Fts5IterClose(pSyn->pIter); + sqlite3_free(pSyn); + } + } + if( pPhrase->poslist.nSpace>0 ) fts5BufferFree(&pPhrase->poslist); + sqlite3_free(pPhrase); + } +} + +/* +** If argument pNear is NULL, then a new Fts5ExprNearset object is allocated +** and populated with pPhrase. Or, if pNear is not NULL, phrase pPhrase is +** appended to it and the results returned. +** +** If an OOM error occurs, both the pNear and pPhrase objects are freed and +** NULL returned. +*/ +static Fts5ExprNearset *sqlite3Fts5ParseNearset( + Fts5Parse *pParse, /* Parse context */ + Fts5ExprNearset *pNear, /* Existing nearset, or NULL */ + Fts5ExprPhrase *pPhrase /* Recently parsed phrase */ +){ + const int SZALLOC = 8; + Fts5ExprNearset *pRet = 0; + + if( pParse->rc==SQLITE_OK ){ + if( pPhrase==0 ){ + return pNear; + } + if( pNear==0 ){ + int nByte = sizeof(Fts5ExprNearset) + SZALLOC * sizeof(Fts5ExprPhrase*); + pRet = sqlite3_malloc(nByte); + if( pRet==0 ){ + pParse->rc = SQLITE_NOMEM; + }else{ + memset(pRet, 0, nByte); + } + }else if( (pNear->nPhrase % SZALLOC)==0 ){ + int nNew = pNear->nPhrase + SZALLOC; + int nByte = sizeof(Fts5ExprNearset) + nNew * sizeof(Fts5ExprPhrase*); + + pRet = (Fts5ExprNearset*)sqlite3_realloc(pNear, nByte); + if( pRet==0 ){ + pParse->rc = SQLITE_NOMEM; + } + }else{ + pRet = pNear; + } + } + + if( pRet==0 ){ + assert( pParse->rc!=SQLITE_OK ); + sqlite3Fts5ParseNearsetFree(pNear); + sqlite3Fts5ParsePhraseFree(pPhrase); + }else{ + pRet->apPhrase[pRet->nPhrase++] = pPhrase; + } + return pRet; +} + +typedef struct TokenCtx TokenCtx; +struct TokenCtx { + Fts5ExprPhrase *pPhrase; + int rc; +}; + +/* +** Callback for tokenizing terms used by ParseTerm(). +*/ +static int fts5ParseTokenize( + void *pContext, /* Pointer to Fts5InsertCtx object */ + int tflags, /* Mask of FTS5_TOKEN_* flags */ + const char *pToken, /* Buffer containing token */ + int nToken, /* Size of token in bytes */ + int iUnused1, /* Start offset of token */ + int iUnused2 /* End offset of token */ +){ + int rc = SQLITE_OK; + const int SZALLOC = 8; + TokenCtx *pCtx = (TokenCtx*)pContext; + Fts5ExprPhrase *pPhrase = pCtx->pPhrase; + + /* If an error has already occurred, this is a no-op */ + if( pCtx->rc!=SQLITE_OK ) return pCtx->rc; + + assert( pPhrase==0 || pPhrase->nTerm>0 ); + if( pPhrase && (tflags & FTS5_TOKEN_COLOCATED) ){ + Fts5ExprTerm *pSyn; + int nByte = sizeof(Fts5ExprTerm) + nToken+1; + pSyn = (Fts5ExprTerm*)sqlite3_malloc(nByte); + if( pSyn==0 ){ + rc = SQLITE_NOMEM; + }else{ + memset(pSyn, 0, nByte); + pSyn->zTerm = (char*)&pSyn[1]; + memcpy(pSyn->zTerm, pToken, nToken); + pSyn->pSynonym = pPhrase->aTerm[pPhrase->nTerm-1].pSynonym; + pPhrase->aTerm[pPhrase->nTerm-1].pSynonym = pSyn; + } + }else{ + Fts5ExprTerm *pTerm; + if( pPhrase==0 || (pPhrase->nTerm % SZALLOC)==0 ){ + Fts5ExprPhrase *pNew; + int nNew = SZALLOC + (pPhrase ? pPhrase->nTerm : 0); + + pNew = (Fts5ExprPhrase*)sqlite3_realloc(pPhrase, + sizeof(Fts5ExprPhrase) + sizeof(Fts5ExprTerm) * nNew + ); + if( pNew==0 ){ + rc = SQLITE_NOMEM; + }else{ + if( pPhrase==0 ) memset(pNew, 0, sizeof(Fts5ExprPhrase)); + pCtx->pPhrase = pPhrase = pNew; + pNew->nTerm = nNew - SZALLOC; + } + } + + if( rc==SQLITE_OK ){ + pTerm = &pPhrase->aTerm[pPhrase->nTerm++]; + memset(pTerm, 0, sizeof(Fts5ExprTerm)); + pTerm->zTerm = sqlite3Fts5Strndup(&rc, pToken, nToken); + } + } + + pCtx->rc = rc; + return rc; +} + + +/* +** Free the phrase object passed as the only argument. +*/ +static void sqlite3Fts5ParsePhraseFree(Fts5ExprPhrase *pPhrase){ + fts5ExprPhraseFree(pPhrase); +} + +/* +** Free the phrase object passed as the second argument. +*/ +static void sqlite3Fts5ParseNearsetFree(Fts5ExprNearset *pNear){ + if( pNear ){ + int i; + for(i=0; inPhrase; i++){ + fts5ExprPhraseFree(pNear->apPhrase[i]); + } + sqlite3_free(pNear->pColset); + sqlite3_free(pNear); + } +} + +static void sqlite3Fts5ParseFinished(Fts5Parse *pParse, Fts5ExprNode *p){ + assert( pParse->pExpr==0 ); + pParse->pExpr = p; +} + +/* +** This function is called by the parser to process a string token. The +** string may or may not be quoted. In any case it is tokenized and a +** phrase object consisting of all tokens returned. +*/ +static Fts5ExprPhrase *sqlite3Fts5ParseTerm( + Fts5Parse *pParse, /* Parse context */ + Fts5ExprPhrase *pAppend, /* Phrase to append to */ + Fts5Token *pToken, /* String to tokenize */ + int bPrefix /* True if there is a trailing "*" */ +){ + Fts5Config *pConfig = pParse->pConfig; + TokenCtx sCtx; /* Context object passed to callback */ + int rc; /* Tokenize return code */ + char *z = 0; + + memset(&sCtx, 0, sizeof(TokenCtx)); + sCtx.pPhrase = pAppend; + + rc = fts5ParseStringFromToken(pToken, &z); + if( rc==SQLITE_OK ){ + int flags = FTS5_TOKENIZE_QUERY | (bPrefix ? FTS5_TOKENIZE_QUERY : 0); + int n; + sqlite3Fts5Dequote(z); + n = strlen(z); + rc = sqlite3Fts5Tokenize(pConfig, flags, z, n, &sCtx, fts5ParseTokenize); + } + sqlite3_free(z); + if( rc || (rc = sCtx.rc) ){ + pParse->rc = rc; + fts5ExprPhraseFree(sCtx.pPhrase); + sCtx.pPhrase = 0; + }else if( sCtx.pPhrase ){ + + if( pAppend==0 ){ + if( (pParse->nPhrase % 8)==0 ){ + int nByte = sizeof(Fts5ExprPhrase*) * (pParse->nPhrase + 8); + Fts5ExprPhrase **apNew; + apNew = (Fts5ExprPhrase**)sqlite3_realloc(pParse->apPhrase, nByte); + if( apNew==0 ){ + pParse->rc = SQLITE_NOMEM; + fts5ExprPhraseFree(sCtx.pPhrase); + return 0; + } + pParse->apPhrase = apNew; + } + pParse->nPhrase++; + } + + pParse->apPhrase[pParse->nPhrase-1] = sCtx.pPhrase; + assert( sCtx.pPhrase->nTerm>0 ); + sCtx.pPhrase->aTerm[sCtx.pPhrase->nTerm-1].bPrefix = bPrefix; + } + + return sCtx.pPhrase; +} + +/* +** Create a new FTS5 expression by cloning phrase iPhrase of the +** expression passed as the second argument. +*/ +static int sqlite3Fts5ExprClonePhrase( + Fts5Config *pConfig, + Fts5Expr *pExpr, + int iPhrase, + Fts5Expr **ppNew +){ + int rc = SQLITE_OK; /* Return code */ + Fts5ExprPhrase *pOrig; /* The phrase extracted from pExpr */ + int i; /* Used to iterate through phrase terms */ + + Fts5Expr *pNew = 0; /* Expression to return via *ppNew */ + + TokenCtx sCtx = {0,0}; /* Context object for fts5ParseTokenize */ + + + pOrig = pExpr->apExprPhrase[iPhrase]; + + pNew = (Fts5Expr*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5Expr)); + if( rc==SQLITE_OK ){ + pNew->apExprPhrase = (Fts5ExprPhrase**)sqlite3Fts5MallocZero(&rc, + sizeof(Fts5ExprPhrase*)); + } + if( rc==SQLITE_OK ){ + pNew->pRoot = (Fts5ExprNode*)sqlite3Fts5MallocZero(&rc, + sizeof(Fts5ExprNode)); + } + if( rc==SQLITE_OK ){ + pNew->pRoot->pNear = (Fts5ExprNearset*)sqlite3Fts5MallocZero(&rc, + sizeof(Fts5ExprNearset) + sizeof(Fts5ExprPhrase*)); + } + + for(i=0; rc==SQLITE_OK && inTerm; i++){ + int tflags = 0; + Fts5ExprTerm *p; + for(p=&pOrig->aTerm[i]; p && rc==SQLITE_OK; p=p->pSynonym){ + const char *zTerm = p->zTerm; + rc = fts5ParseTokenize((void*)&sCtx, tflags, zTerm, strlen(zTerm), 0, 0); + tflags = FTS5_TOKEN_COLOCATED; + } + if( rc==SQLITE_OK ){ + sCtx.pPhrase->aTerm[i].bPrefix = pOrig->aTerm[i].bPrefix; + } + } + + if( rc==SQLITE_OK ){ + /* All the allocations succeeded. Put the expression object together. */ + pNew->pIndex = pExpr->pIndex; + pNew->nPhrase = 1; + pNew->apExprPhrase[0] = sCtx.pPhrase; + pNew->pRoot->pNear->apPhrase[0] = sCtx.pPhrase; + pNew->pRoot->pNear->nPhrase = 1; + sCtx.pPhrase->pNode = pNew->pRoot; + + if( pOrig->nTerm==1 && pOrig->aTerm[0].pSynonym==0 ){ + pNew->pRoot->eType = FTS5_TERM; + }else{ + pNew->pRoot->eType = FTS5_STRING; + } + }else{ + sqlite3Fts5ExprFree(pNew); + fts5ExprPhraseFree(sCtx.pPhrase); + pNew = 0; + } + + *ppNew = pNew; + return rc; +} + + +/* +** Token pTok has appeared in a MATCH expression where the NEAR operator +** is expected. If token pTok does not contain "NEAR", store an error +** in the pParse object. +*/ +static void sqlite3Fts5ParseNear(Fts5Parse *pParse, Fts5Token *pTok){ + if( pTok->n!=4 || memcmp("NEAR", pTok->p, 4) ){ + sqlite3Fts5ParseError( + pParse, "fts5: syntax error near \"%.*s\"", pTok->n, pTok->p + ); + } +} + +static void sqlite3Fts5ParseSetDistance( + Fts5Parse *pParse, + Fts5ExprNearset *pNear, + Fts5Token *p +){ + int nNear = 0; + int i; + if( p->n ){ + for(i=0; in; i++){ + char c = (char)p->p[i]; + if( c<'0' || c>'9' ){ + sqlite3Fts5ParseError( + pParse, "expected integer, got \"%.*s\"", p->n, p->p + ); + return; + } + nNear = nNear * 10 + (p->p[i] - '0'); + } + }else{ + nNear = FTS5_DEFAULT_NEARDIST; + } + pNear->nNear = nNear; +} + +/* +** The second argument passed to this function may be NULL, or it may be +** an existing Fts5Colset object. This function returns a pointer to +** a new colset object containing the contents of (p) with new value column +** number iCol appended. +** +** If an OOM error occurs, store an error code in pParse and return NULL. +** The old colset object (if any) is not freed in this case. +*/ +static Fts5Colset *fts5ParseColset( + Fts5Parse *pParse, /* Store SQLITE_NOMEM here if required */ + Fts5Colset *p, /* Existing colset object */ + int iCol /* New column to add to colset object */ +){ + int nCol = p ? p->nCol : 0; /* Num. columns already in colset object */ + Fts5Colset *pNew; /* New colset object to return */ + + assert( pParse->rc==SQLITE_OK ); + assert( iCol>=0 && iColpConfig->nCol ); + + pNew = sqlite3_realloc(p, sizeof(Fts5Colset) + sizeof(int)*nCol); + if( pNew==0 ){ + pParse->rc = SQLITE_NOMEM; + }else{ + int *aiCol = pNew->aiCol; + int i, j; + for(i=0; iiCol ) break; + } + for(j=nCol; j>i; j--){ + aiCol[j] = aiCol[j-1]; + } + aiCol[i] = iCol; + pNew->nCol = nCol+1; + +#ifndef NDEBUG + /* Check that the array is in order and contains no duplicate entries. */ + for(i=1; inCol; i++) assert( pNew->aiCol[i]>pNew->aiCol[i-1] ); +#endif + } + + return pNew; +} + +static Fts5Colset *sqlite3Fts5ParseColset( + Fts5Parse *pParse, /* Store SQLITE_NOMEM here if required */ + Fts5Colset *pColset, /* Existing colset object */ + Fts5Token *p +){ + Fts5Colset *pRet = 0; + int iCol; + char *z; /* Dequoted copy of token p */ + + z = sqlite3Fts5Strndup(&pParse->rc, p->p, p->n); + if( pParse->rc==SQLITE_OK ){ + Fts5Config *pConfig = pParse->pConfig; + sqlite3Fts5Dequote(z); + for(iCol=0; iColnCol; iCol++){ + if( 0==sqlite3_stricmp(pConfig->azCol[iCol], z) ) break; + } + if( iCol==pConfig->nCol ){ + sqlite3Fts5ParseError(pParse, "no such column: %s", z); + }else{ + pRet = fts5ParseColset(pParse, pColset, iCol); + } + sqlite3_free(z); + } + + if( pRet==0 ){ + assert( pParse->rc!=SQLITE_OK ); + sqlite3_free(pColset); + } + + return pRet; +} + +static void sqlite3Fts5ParseSetColset( + Fts5Parse *pParse, + Fts5ExprNearset *pNear, + Fts5Colset *pColset +){ + if( pNear ){ + pNear->pColset = pColset; + }else{ + sqlite3_free(pColset); + } +} + +static void fts5ExprAddChildren(Fts5ExprNode *p, Fts5ExprNode *pSub){ + if( p->eType!=FTS5_NOT && pSub->eType==p->eType ){ + int nByte = sizeof(Fts5ExprNode*) * pSub->nChild; + memcpy(&p->apChild[p->nChild], pSub->apChild, nByte); + p->nChild += pSub->nChild; + sqlite3_free(pSub); + }else{ + p->apChild[p->nChild++] = pSub; + } +} + +/* +** Allocate and return a new expression object. If anything goes wrong (i.e. +** OOM error), leave an error code in pParse and return NULL. +*/ +static Fts5ExprNode *sqlite3Fts5ParseNode( + Fts5Parse *pParse, /* Parse context */ + int eType, /* FTS5_STRING, AND, OR or NOT */ + Fts5ExprNode *pLeft, /* Left hand child expression */ + Fts5ExprNode *pRight, /* Right hand child expression */ + Fts5ExprNearset *pNear /* For STRING expressions, the near cluster */ +){ + Fts5ExprNode *pRet = 0; + + if( pParse->rc==SQLITE_OK ){ + int nChild = 0; /* Number of children of returned node */ + int nByte; /* Bytes of space to allocate for this node */ + + assert( (eType!=FTS5_STRING && !pNear) + || (eType==FTS5_STRING && !pLeft && !pRight) + ); + if( eType==FTS5_STRING && pNear==0 ) return 0; + if( eType!=FTS5_STRING && pLeft==0 ) return pRight; + if( eType!=FTS5_STRING && pRight==0 ) return pLeft; + + if( eType==FTS5_NOT ){ + nChild = 2; + }else if( eType==FTS5_AND || eType==FTS5_OR ){ + nChild = 2; + if( pLeft->eType==eType ) nChild += pLeft->nChild-1; + if( pRight->eType==eType ) nChild += pRight->nChild-1; + } + + nByte = sizeof(Fts5ExprNode) + sizeof(Fts5ExprNode*)*(nChild-1); + pRet = (Fts5ExprNode*)sqlite3Fts5MallocZero(&pParse->rc, nByte); + + if( pRet ){ + pRet->eType = eType; + pRet->pNear = pNear; + if( eType==FTS5_STRING ){ + int iPhrase; + for(iPhrase=0; iPhrasenPhrase; iPhrase++){ + pNear->apPhrase[iPhrase]->pNode = pRet; + } + if( pNear->nPhrase==1 + && pNear->apPhrase[0]->nTerm==1 + && pNear->apPhrase[0]->aTerm[0].pSynonym==0 + ){ + pRet->eType = FTS5_TERM; + } + }else{ + fts5ExprAddChildren(pRet, pLeft); + fts5ExprAddChildren(pRet, pRight); + } + } + } + + if( pRet==0 ){ + assert( pParse->rc!=SQLITE_OK ); + sqlite3Fts5ParseNodeFree(pLeft); + sqlite3Fts5ParseNodeFree(pRight); + sqlite3Fts5ParseNearsetFree(pNear); + } + return pRet; +} + +static char *fts5ExprTermPrint(Fts5ExprTerm *pTerm){ + int nByte = 0; + Fts5ExprTerm *p; + char *zQuoted; + + /* Determine the maximum amount of space required. */ + for(p=pTerm; p; p=p->pSynonym){ + nByte += strlen(pTerm->zTerm) * 2 + 3 + 2; + } + zQuoted = sqlite3_malloc(nByte); + + if( zQuoted ){ + int i = 0; + for(p=pTerm; p; p=p->pSynonym){ + char *zIn = p->zTerm; + zQuoted[i++] = '"'; + while( *zIn ){ + if( *zIn=='"' ) zQuoted[i++] = '"'; + zQuoted[i++] = *zIn++; + } + zQuoted[i++] = '"'; + if( p->pSynonym ) zQuoted[i++] = '|'; + } + if( pTerm->bPrefix ){ + zQuoted[i++] = ' '; + zQuoted[i++] = '*'; + } + zQuoted[i++] = '\0'; + } + return zQuoted; +} + +static char *fts5PrintfAppend(char *zApp, const char *zFmt, ...){ + char *zNew; + va_list ap; + va_start(ap, zFmt); + zNew = sqlite3_vmprintf(zFmt, ap); + va_end(ap); + if( zApp && zNew ){ + char *zNew2 = sqlite3_mprintf("%s%s", zApp, zNew); + sqlite3_free(zNew); + zNew = zNew2; + } + sqlite3_free(zApp); + return zNew; +} + +/* +** Compose a tcl-readable representation of expression pExpr. Return a +** pointer to a buffer containing that representation. It is the +** responsibility of the caller to at some point free the buffer using +** sqlite3_free(). +*/ +static char *fts5ExprPrintTcl( + Fts5Config *pConfig, + const char *zNearsetCmd, + Fts5ExprNode *pExpr +){ + char *zRet = 0; + if( pExpr->eType==FTS5_STRING || pExpr->eType==FTS5_TERM ){ + Fts5ExprNearset *pNear = pExpr->pNear; + int i; + int iTerm; + + zRet = fts5PrintfAppend(zRet, "%s ", zNearsetCmd); + if( zRet==0 ) return 0; + if( pNear->pColset ){ + int *aiCol = pNear->pColset->aiCol; + int nCol = pNear->pColset->nCol; + if( nCol==1 ){ + zRet = fts5PrintfAppend(zRet, "-col %d ", aiCol[0]); + }else{ + zRet = fts5PrintfAppend(zRet, "-col {%d", aiCol[0]); + for(i=1; ipColset->nCol; i++){ + zRet = fts5PrintfAppend(zRet, " %d", aiCol[i]); + } + zRet = fts5PrintfAppend(zRet, "} "); + } + if( zRet==0 ) return 0; + } + + if( pNear->nPhrase>1 ){ + zRet = fts5PrintfAppend(zRet, "-near %d ", pNear->nNear); + if( zRet==0 ) return 0; + } + + zRet = fts5PrintfAppend(zRet, "--"); + if( zRet==0 ) return 0; + + for(i=0; inPhrase; i++){ + Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; + + zRet = fts5PrintfAppend(zRet, " {"); + for(iTerm=0; zRet && iTermnTerm; iTerm++){ + char *zTerm = pPhrase->aTerm[iTerm].zTerm; + zRet = fts5PrintfAppend(zRet, "%s%s", iTerm==0?"":" ", zTerm); + } + + if( zRet ) zRet = fts5PrintfAppend(zRet, "}"); + if( zRet==0 ) return 0; + } + + }else{ + char const *zOp = 0; + int i; + switch( pExpr->eType ){ + case FTS5_AND: zOp = "AND"; break; + case FTS5_NOT: zOp = "NOT"; break; + default: + assert( pExpr->eType==FTS5_OR ); + zOp = "OR"; + break; + } + + zRet = sqlite3_mprintf("%s", zOp); + for(i=0; zRet && inChild; i++){ + char *z = fts5ExprPrintTcl(pConfig, zNearsetCmd, pExpr->apChild[i]); + if( !z ){ + sqlite3_free(zRet); + zRet = 0; + }else{ + zRet = fts5PrintfAppend(zRet, " [%z]", z); + } + } + } + + return zRet; +} + +static char *fts5ExprPrint(Fts5Config *pConfig, Fts5ExprNode *pExpr){ + char *zRet = 0; + if( pExpr->eType==FTS5_STRING || pExpr->eType==FTS5_TERM ){ + Fts5ExprNearset *pNear = pExpr->pNear; + int i; + int iTerm; + + if( pNear->pColset ){ + int iCol = pNear->pColset->aiCol[0]; + zRet = fts5PrintfAppend(zRet, "%s : ", pConfig->azCol[iCol]); + if( zRet==0 ) return 0; + } + + if( pNear->nPhrase>1 ){ + zRet = fts5PrintfAppend(zRet, "NEAR("); + if( zRet==0 ) return 0; + } + + for(i=0; inPhrase; i++){ + Fts5ExprPhrase *pPhrase = pNear->apPhrase[i]; + if( i!=0 ){ + zRet = fts5PrintfAppend(zRet, " "); + if( zRet==0 ) return 0; + } + for(iTerm=0; iTermnTerm; iTerm++){ + char *zTerm = fts5ExprTermPrint(&pPhrase->aTerm[iTerm]); + if( zTerm ){ + zRet = fts5PrintfAppend(zRet, "%s%s", iTerm==0?"":" + ", zTerm); + sqlite3_free(zTerm); + } + if( zTerm==0 || zRet==0 ){ + sqlite3_free(zRet); + return 0; + } + } + } + + if( pNear->nPhrase>1 ){ + zRet = fts5PrintfAppend(zRet, ", %d)", pNear->nNear); + if( zRet==0 ) return 0; + } + + }else{ + char const *zOp = 0; + int i; + + switch( pExpr->eType ){ + case FTS5_AND: zOp = " AND "; break; + case FTS5_NOT: zOp = " NOT "; break; + default: + assert( pExpr->eType==FTS5_OR ); + zOp = " OR "; + break; + } + + for(i=0; inChild; i++){ + char *z = fts5ExprPrint(pConfig, pExpr->apChild[i]); + if( z==0 ){ + sqlite3_free(zRet); + zRet = 0; + }else{ + int e = pExpr->apChild[i]->eType; + int b = (e!=FTS5_STRING && e!=FTS5_TERM); + zRet = fts5PrintfAppend(zRet, "%s%s%z%s", + (i==0 ? "" : zOp), + (b?"(":""), z, (b?")":"") + ); + } + if( zRet==0 ) break; + } + } + + return zRet; +} + +/* +** The implementation of user-defined scalar functions fts5_expr() (bTcl==0) +** and fts5_expr_tcl() (bTcl!=0). +*/ +static void fts5ExprFunction( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal, /* Function arguments */ + int bTcl +){ + Fts5Global *pGlobal = (Fts5Global*)sqlite3_user_data(pCtx); + sqlite3 *db = sqlite3_context_db_handle(pCtx); + const char *zExpr = 0; + char *zErr = 0; + Fts5Expr *pExpr = 0; + int rc; + int i; + + const char **azConfig; /* Array of arguments for Fts5Config */ + const char *zNearsetCmd = "nearset"; + int nConfig; /* Size of azConfig[] */ + Fts5Config *pConfig = 0; + int iArg = 1; + + if( nArg<1 ){ + zErr = sqlite3_mprintf("wrong number of arguments to function %s", + bTcl ? "fts5_expr_tcl" : "fts5_expr" + ); + sqlite3_result_error(pCtx, zErr, -1); + sqlite3_free(zErr); + return; + } + + if( bTcl && nArg>1 ){ + zNearsetCmd = (const char*)sqlite3_value_text(apVal[1]); + iArg = 2; + } + + nConfig = 3 + (nArg-iArg); + azConfig = (const char**)sqlite3_malloc(sizeof(char*) * nConfig); + if( azConfig==0 ){ + sqlite3_result_error_nomem(pCtx); + return; + } + azConfig[0] = 0; + azConfig[1] = "main"; + azConfig[2] = "tbl"; + for(i=3; iArgpRoot==0 ){ + zText = sqlite3_mprintf(""); + }else if( bTcl ){ + zText = fts5ExprPrintTcl(pConfig, zNearsetCmd, pExpr->pRoot); + }else{ + zText = fts5ExprPrint(pConfig, pExpr->pRoot); + } + if( zText==0 ){ + rc = SQLITE_NOMEM; + }else{ + sqlite3_result_text(pCtx, zText, -1, SQLITE_TRANSIENT); + sqlite3_free(zText); + } + } + + if( rc!=SQLITE_OK ){ + if( zErr ){ + sqlite3_result_error(pCtx, zErr, -1); + sqlite3_free(zErr); + }else{ + sqlite3_result_error_code(pCtx, rc); + } + } + sqlite3_free((void *)azConfig); + sqlite3Fts5ConfigFree(pConfig); + sqlite3Fts5ExprFree(pExpr); +} + +static void fts5ExprFunctionHr( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal /* Function arguments */ +){ + fts5ExprFunction(pCtx, nArg, apVal, 0); +} +static void fts5ExprFunctionTcl( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal /* Function arguments */ +){ + fts5ExprFunction(pCtx, nArg, apVal, 1); +} + +/* +** The implementation of an SQLite user-defined-function that accepts a +** single integer as an argument. If the integer is an alpha-numeric +** unicode code point, 1 is returned. Otherwise 0. +*/ +static void fts5ExprIsAlnum( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal /* Function arguments */ +){ + int iCode; + if( nArg!=1 ){ + sqlite3_result_error(pCtx, + "wrong number of arguments to function fts5_isalnum", -1 + ); + return; + } + iCode = sqlite3_value_int(apVal[0]); + sqlite3_result_int(pCtx, sqlite3Fts5UnicodeIsalnum(iCode)); +} + +static void fts5ExprFold( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal /* Function arguments */ +){ + if( nArg!=1 && nArg!=2 ){ + sqlite3_result_error(pCtx, + "wrong number of arguments to function fts5_fold", -1 + ); + }else{ + int iCode; + int bRemoveDiacritics = 0; + iCode = sqlite3_value_int(apVal[0]); + if( nArg==2 ) bRemoveDiacritics = sqlite3_value_int(apVal[1]); + sqlite3_result_int(pCtx, sqlite3Fts5UnicodeFold(iCode, bRemoveDiacritics)); + } +} + +/* +** This is called during initialization to register the fts5_expr() scalar +** UDF with the SQLite handle passed as the only argument. +*/ +static int sqlite3Fts5ExprInit(Fts5Global *pGlobal, sqlite3 *db){ + struct Fts5ExprFunc { + const char *z; + void (*x)(sqlite3_context*,int,sqlite3_value**); + } aFunc[] = { + { "fts5_expr", fts5ExprFunctionHr }, + { "fts5_expr_tcl", fts5ExprFunctionTcl }, + { "fts5_isalnum", fts5ExprIsAlnum }, + { "fts5_fold", fts5ExprFold }, + }; + int i; + int rc = SQLITE_OK; + void *pCtx = (void*)pGlobal; + + for(i=0; rc==SQLITE_OK && i<(sizeof(aFunc) / sizeof(aFunc[0])); i++){ + struct Fts5ExprFunc *p = &aFunc[i]; + rc = sqlite3_create_function(db, p->z, -1, SQLITE_UTF8, pCtx, p->x, 0, 0); + } + + /* Avoid a warning indicating that sqlite3Fts5ParserTrace() is unused */ +#ifndef NDEBUG + (void)sqlite3Fts5ParserTrace; +#endif + + return rc; +} + +/* +** Return the number of phrases in expression pExpr. +*/ +static int sqlite3Fts5ExprPhraseCount(Fts5Expr *pExpr){ + return (pExpr ? pExpr->nPhrase : 0); +} + +/* +** Return the number of terms in the iPhrase'th phrase in pExpr. +*/ +static int sqlite3Fts5ExprPhraseSize(Fts5Expr *pExpr, int iPhrase){ + if( iPhrase<0 || iPhrase>=pExpr->nPhrase ) return 0; + return pExpr->apExprPhrase[iPhrase]->nTerm; +} + +/* +** This function is used to access the current position list for phrase +** iPhrase. +*/ +static int sqlite3Fts5ExprPoslist(Fts5Expr *pExpr, int iPhrase, const u8 **pa){ + int nRet; + Fts5ExprPhrase *pPhrase = pExpr->apExprPhrase[iPhrase]; + Fts5ExprNode *pNode = pPhrase->pNode; + if( pNode->bEof==0 && pNode->iRowid==pExpr->pRoot->iRowid ){ + *pa = pPhrase->poslist.p; + nRet = pPhrase->poslist.n; + }else{ + *pa = 0; + nRet = 0; + } + return nRet; +} + +/* +** 2014 August 11 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +*/ + + + + +typedef struct Fts5HashEntry Fts5HashEntry; + +/* +** This file contains the implementation of an in-memory hash table used +** to accumuluate "term -> doclist" content before it is flused to a level-0 +** segment. +*/ + + +struct Fts5Hash { + int *pnByte; /* Pointer to bytes counter */ + int nEntry; /* Number of entries currently in hash */ + int nSlot; /* Size of aSlot[] array */ + Fts5HashEntry *pScan; /* Current ordered scan item */ + Fts5HashEntry **aSlot; /* Array of hash slots */ +}; + +/* +** Each entry in the hash table is represented by an object of the +** following type. Each object, its key (zKey[]) and its current data +** are stored in a single memory allocation. The position list data +** immediately follows the key data in memory. +** +** The data that follows the key is in a similar, but not identical format +** to the doclist data stored in the database. It is: +** +** * Rowid, as a varint +** * Position list, without 0x00 terminator. +** * Size of previous position list and rowid, as a 4 byte +** big-endian integer. +** +** iRowidOff: +** Offset of last rowid written to data area. Relative to first byte of +** structure. +** +** nData: +** Bytes of data written since iRowidOff. +*/ +struct Fts5HashEntry { + Fts5HashEntry *pHashNext; /* Next hash entry with same hash-key */ + Fts5HashEntry *pScanNext; /* Next entry in sorted order */ + + int nAlloc; /* Total size of allocation */ + int iSzPoslist; /* Offset of space for 4-byte poslist size */ + int nData; /* Total bytes of data (incl. structure) */ + u8 bDel; /* Set delete-flag @ iSzPoslist */ + + int iCol; /* Column of last value written */ + int iPos; /* Position of last value written */ + i64 iRowid; /* Rowid of last value written */ + char zKey[8]; /* Nul-terminated entry key */ +}; + +/* +** Size of Fts5HashEntry without the zKey[] array. +*/ +#define FTS5_HASHENTRYSIZE (sizeof(Fts5HashEntry)-8) + + + +/* +** Allocate a new hash table. +*/ +static int sqlite3Fts5HashNew(Fts5Hash **ppNew, int *pnByte){ + int rc = SQLITE_OK; + Fts5Hash *pNew; + + *ppNew = pNew = (Fts5Hash*)sqlite3_malloc(sizeof(Fts5Hash)); + if( pNew==0 ){ + rc = SQLITE_NOMEM; + }else{ + int nByte; + memset(pNew, 0, sizeof(Fts5Hash)); + pNew->pnByte = pnByte; + + pNew->nSlot = 1024; + nByte = sizeof(Fts5HashEntry*) * pNew->nSlot; + pNew->aSlot = (Fts5HashEntry**)sqlite3_malloc(nByte); + if( pNew->aSlot==0 ){ + sqlite3_free(pNew); + *ppNew = 0; + rc = SQLITE_NOMEM; + }else{ + memset(pNew->aSlot, 0, nByte); + } + } + return rc; +} + +/* +** Free a hash table object. +*/ +static void sqlite3Fts5HashFree(Fts5Hash *pHash){ + if( pHash ){ + sqlite3Fts5HashClear(pHash); + sqlite3_free(pHash->aSlot); + sqlite3_free(pHash); + } +} + +/* +** Empty (but do not delete) a hash table. +*/ +static void sqlite3Fts5HashClear(Fts5Hash *pHash){ + int i; + for(i=0; inSlot; i++){ + Fts5HashEntry *pNext; + Fts5HashEntry *pSlot; + for(pSlot=pHash->aSlot[i]; pSlot; pSlot=pNext){ + pNext = pSlot->pHashNext; + sqlite3_free(pSlot); + } + } + memset(pHash->aSlot, 0, pHash->nSlot * sizeof(Fts5HashEntry*)); + pHash->nEntry = 0; +} + +static unsigned int fts5HashKey(int nSlot, const u8 *p, int n){ + int i; + unsigned int h = 13; + for(i=n-1; i>=0; i--){ + h = (h << 3) ^ h ^ p[i]; + } + return (h % nSlot); +} + +static unsigned int fts5HashKey2(int nSlot, u8 b, const u8 *p, int n){ + int i; + unsigned int h = 13; + for(i=n-1; i>=0; i--){ + h = (h << 3) ^ h ^ p[i]; + } + h = (h << 3) ^ h ^ b; + return (h % nSlot); +} + +/* +** Resize the hash table by doubling the number of slots. +*/ +static int fts5HashResize(Fts5Hash *pHash){ + int nNew = pHash->nSlot*2; + int i; + Fts5HashEntry **apNew; + Fts5HashEntry **apOld = pHash->aSlot; + + apNew = (Fts5HashEntry**)sqlite3_malloc(nNew*sizeof(Fts5HashEntry*)); + if( !apNew ) return SQLITE_NOMEM; + memset(apNew, 0, nNew*sizeof(Fts5HashEntry*)); + + for(i=0; inSlot; i++){ + while( apOld[i] ){ + int iHash; + Fts5HashEntry *p = apOld[i]; + apOld[i] = p->pHashNext; + iHash = fts5HashKey(nNew, (u8*)p->zKey, strlen(p->zKey)); + p->pHashNext = apNew[iHash]; + apNew[iHash] = p; + } + } + + sqlite3_free(apOld); + pHash->nSlot = nNew; + pHash->aSlot = apNew; + return SQLITE_OK; +} + +static void fts5HashAddPoslistSize(Fts5HashEntry *p){ + if( p->iSzPoslist ){ + u8 *pPtr = (u8*)p; + int nSz = (p->nData - p->iSzPoslist - 1); /* Size in bytes */ + int nPos = nSz*2 + p->bDel; /* Value of nPos field */ + + assert( p->bDel==0 || p->bDel==1 ); + if( nPos<=127 ){ + pPtr[p->iSzPoslist] = nPos; + }else{ + int nByte = sqlite3Fts5GetVarintLen((u32)nPos); + memmove(&pPtr[p->iSzPoslist + nByte], &pPtr[p->iSzPoslist + 1], nSz); + sqlite3Fts5PutVarint(&pPtr[p->iSzPoslist], nPos); + p->nData += (nByte-1); + } + p->bDel = 0; + p->iSzPoslist = 0; + } +} + +static int sqlite3Fts5HashWrite( + Fts5Hash *pHash, + i64 iRowid, /* Rowid for this entry */ + int iCol, /* Column token appears in (-ve -> delete) */ + int iPos, /* Position of token within column */ + char bByte, /* First byte of token */ + const char *pToken, int nToken /* Token to add or remove to or from index */ +){ + unsigned int iHash; + Fts5HashEntry *p; + u8 *pPtr; + int nIncr = 0; /* Amount to increment (*pHash->pnByte) by */ + + /* Attempt to locate an existing hash entry */ + iHash = fts5HashKey2(pHash->nSlot, (u8)bByte, (const u8*)pToken, nToken); + for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){ + if( p->zKey[0]==bByte + && memcmp(&p->zKey[1], pToken, nToken)==0 + && p->zKey[nToken+1]==0 + ){ + break; + } + } + + /* If an existing hash entry cannot be found, create a new one. */ + if( p==0 ){ + int nByte = FTS5_HASHENTRYSIZE + (nToken+1) + 1 + 64; + if( nByte<128 ) nByte = 128; + + if( (pHash->nEntry*2)>=pHash->nSlot ){ + int rc = fts5HashResize(pHash); + if( rc!=SQLITE_OK ) return rc; + iHash = fts5HashKey2(pHash->nSlot, (u8)bByte, (const u8*)pToken, nToken); + } + + p = (Fts5HashEntry*)sqlite3_malloc(nByte); + if( !p ) return SQLITE_NOMEM; + memset(p, 0, FTS5_HASHENTRYSIZE); + p->nAlloc = nByte; + p->zKey[0] = bByte; + memcpy(&p->zKey[1], pToken, nToken); + assert( iHash==fts5HashKey(pHash->nSlot, (u8*)p->zKey, nToken+1) ); + p->zKey[nToken+1] = '\0'; + p->nData = nToken+1 + 1 + FTS5_HASHENTRYSIZE; + p->nData += sqlite3Fts5PutVarint(&((u8*)p)[p->nData], iRowid); + p->iSzPoslist = p->nData; + p->nData += 1; + p->iRowid = iRowid; + p->pHashNext = pHash->aSlot[iHash]; + pHash->aSlot[iHash] = p; + pHash->nEntry++; + nIncr += p->nData; + } + + /* Check there is enough space to append a new entry. Worst case scenario + ** is: + ** + ** + 9 bytes for a new rowid, + ** + 4 byte reserved for the "poslist size" varint. + ** + 1 byte for a "new column" byte, + ** + 3 bytes for a new column number (16-bit max) as a varint, + ** + 5 bytes for the new position offset (32-bit max). + */ + if( (p->nAlloc - p->nData) < (9 + 4 + 1 + 3 + 5) ){ + int nNew = p->nAlloc * 2; + Fts5HashEntry *pNew; + Fts5HashEntry **pp; + pNew = (Fts5HashEntry*)sqlite3_realloc(p, nNew); + if( pNew==0 ) return SQLITE_NOMEM; + pNew->nAlloc = nNew; + for(pp=&pHash->aSlot[iHash]; *pp!=p; pp=&(*pp)->pHashNext); + *pp = pNew; + p = pNew; + } + pPtr = (u8*)p; + nIncr -= p->nData; + + /* If this is a new rowid, append the 4-byte size field for the previous + ** entry, and the new rowid for this entry. */ + if( iRowid!=p->iRowid ){ + fts5HashAddPoslistSize(p); + p->nData += sqlite3Fts5PutVarint(&pPtr[p->nData], iRowid - p->iRowid); + p->iSzPoslist = p->nData; + p->nData += 1; + p->iCol = 0; + p->iPos = 0; + p->iRowid = iRowid; + } + + if( iCol>=0 ){ + /* Append a new column value, if necessary */ + assert( iCol>=p->iCol ); + if( iCol!=p->iCol ){ + pPtr[p->nData++] = 0x01; + p->nData += sqlite3Fts5PutVarint(&pPtr[p->nData], iCol); + p->iCol = iCol; + p->iPos = 0; + } + + /* Append the new position offset */ + p->nData += sqlite3Fts5PutVarint(&pPtr[p->nData], iPos - p->iPos + 2); + p->iPos = iPos; + }else{ + /* This is a delete. Set the delete flag. */ + p->bDel = 1; + } + nIncr += p->nData; + + *pHash->pnByte += nIncr; + return SQLITE_OK; +} + + +/* +** Arguments pLeft and pRight point to linked-lists of hash-entry objects, +** each sorted in key order. This function merges the two lists into a +** single list and returns a pointer to its first element. +*/ +static Fts5HashEntry *fts5HashEntryMerge( + Fts5HashEntry *pLeft, + Fts5HashEntry *pRight +){ + Fts5HashEntry *p1 = pLeft; + Fts5HashEntry *p2 = pRight; + Fts5HashEntry *pRet = 0; + Fts5HashEntry **ppOut = &pRet; + + while( p1 || p2 ){ + if( p1==0 ){ + *ppOut = p2; + p2 = 0; + }else if( p2==0 ){ + *ppOut = p1; + p1 = 0; + }else{ + int i = 0; + while( p1->zKey[i]==p2->zKey[i] ) i++; + + if( ((u8)p1->zKey[i])>((u8)p2->zKey[i]) ){ + /* p2 is smaller */ + *ppOut = p2; + ppOut = &p2->pScanNext; + p2 = p2->pScanNext; + }else{ + /* p1 is smaller */ + *ppOut = p1; + ppOut = &p1->pScanNext; + p1 = p1->pScanNext; + } + *ppOut = 0; + } + } + + return pRet; +} + +/* +** Extract all tokens from hash table iHash and link them into a list +** in sorted order. The hash table is cleared before returning. It is +** the responsibility of the caller to free the elements of the returned +** list. +*/ +static int fts5HashEntrySort( + Fts5Hash *pHash, + const char *pTerm, int nTerm, /* Query prefix, if any */ + Fts5HashEntry **ppSorted +){ + const int nMergeSlot = 32; + Fts5HashEntry **ap; + Fts5HashEntry *pList; + int iSlot; + int i; + + *ppSorted = 0; + ap = sqlite3_malloc(sizeof(Fts5HashEntry*) * nMergeSlot); + if( !ap ) return SQLITE_NOMEM; + memset(ap, 0, sizeof(Fts5HashEntry*) * nMergeSlot); + + for(iSlot=0; iSlotnSlot; iSlot++){ + Fts5HashEntry *pIter; + for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){ + if( pTerm==0 || 0==memcmp(pIter->zKey, pTerm, nTerm) ){ + Fts5HashEntry *pEntry = pIter; + pEntry->pScanNext = 0; + for(i=0; ap[i]; i++){ + pEntry = fts5HashEntryMerge(pEntry, ap[i]); + ap[i] = 0; + } + ap[i] = pEntry; + } + } + } + + pList = 0; + for(i=0; inEntry = 0; + sqlite3_free(ap); + *ppSorted = pList; + return SQLITE_OK; +} + +/* +** Query the hash table for a doclist associated with term pTerm/nTerm. +*/ +static int sqlite3Fts5HashQuery( + Fts5Hash *pHash, /* Hash table to query */ + const char *pTerm, int nTerm, /* Query term */ + const u8 **ppDoclist, /* OUT: Pointer to doclist for pTerm */ + int *pnDoclist /* OUT: Size of doclist in bytes */ +){ + unsigned int iHash = fts5HashKey(pHash->nSlot, (const u8*)pTerm, nTerm); + Fts5HashEntry *p; + + for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){ + if( memcmp(p->zKey, pTerm, nTerm)==0 && p->zKey[nTerm]==0 ) break; + } + + if( p ){ + fts5HashAddPoslistSize(p); + *ppDoclist = (const u8*)&p->zKey[nTerm+1]; + *pnDoclist = p->nData - (FTS5_HASHENTRYSIZE + nTerm + 1); + }else{ + *ppDoclist = 0; + *pnDoclist = 0; + } + + return SQLITE_OK; +} + +static int sqlite3Fts5HashScanInit( + Fts5Hash *p, /* Hash table to query */ + const char *pTerm, int nTerm /* Query prefix */ +){ + return fts5HashEntrySort(p, pTerm, nTerm, &p->pScan); +} + +static void sqlite3Fts5HashScanNext(Fts5Hash *p){ + assert( !sqlite3Fts5HashScanEof(p) ); + p->pScan = p->pScan->pScanNext; +} + +static int sqlite3Fts5HashScanEof(Fts5Hash *p){ + return (p->pScan==0); +} + +static void sqlite3Fts5HashScanEntry( + Fts5Hash *pHash, + const char **pzTerm, /* OUT: term (nul-terminated) */ + const u8 **ppDoclist, /* OUT: pointer to doclist */ + int *pnDoclist /* OUT: size of doclist in bytes */ +){ + Fts5HashEntry *p; + if( (p = pHash->pScan) ){ + int nTerm = strlen(p->zKey); + fts5HashAddPoslistSize(p); + *pzTerm = p->zKey; + *ppDoclist = (const u8*)&p->zKey[nTerm+1]; + *pnDoclist = p->nData - (FTS5_HASHENTRYSIZE + nTerm + 1); + }else{ + *pzTerm = 0; + *ppDoclist = 0; + *pnDoclist = 0; + } +} + + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** Low level access to the FTS index stored in the database file. The +** routines in this file file implement all read and write access to the +** %_data table. Other parts of the system access this functionality via +** the interface defined in fts5Int.h. +*/ + + + +/* +** Overview: +** +** The %_data table contains all the FTS indexes for an FTS5 virtual table. +** As well as the main term index, there may be up to 31 prefix indexes. +** The format is similar to FTS3/4, except that: +** +** * all segment b-tree leaf data is stored in fixed size page records +** (e.g. 1000 bytes). A single doclist may span multiple pages. Care is +** taken to ensure it is possible to iterate in either direction through +** the entries in a doclist, or to seek to a specific entry within a +** doclist, without loading it into memory. +** +** * large doclists that span many pages have associated "doclist index" +** records that contain a copy of the first rowid on each page spanned by +** the doclist. This is used to speed up seek operations, and merges of +** large doclists with very small doclists. +** +** * extra fields in the "structure record" record the state of ongoing +** incremental merge operations. +** +*/ + + +#define FTS5_OPT_WORK_UNIT 1000 /* Number of leaf pages per optimize step */ +#define FTS5_WORK_UNIT 64 /* Number of leaf pages in unit of work */ + +#define FTS5_MIN_DLIDX_SIZE 4 /* Add dlidx if this many empty pages */ + +#define FTS5_MAIN_PREFIX '0' + +#if FTS5_MAX_PREFIX_INDEXES > 31 +# error "FTS5_MAX_PREFIX_INDEXES is too large" +#endif + +/* +** Details: +** +** The %_data table managed by this module, +** +** CREATE TABLE %_data(id INTEGER PRIMARY KEY, block BLOB); +** +** , contains the following 5 types of records. See the comments surrounding +** the FTS5_*_ROWID macros below for a description of how %_data rowids are +** assigned to each fo them. +** +** 1. Structure Records: +** +** The set of segments that make up an index - the index structure - are +** recorded in a single record within the %_data table. The record consists +** of a single 32-bit configuration cookie value followed by a list of +** SQLite varints. If the FTS table features more than one index (because +** there are one or more prefix indexes), it is guaranteed that all share +** the same cookie value. +** +** Immediately following the configuration cookie, the record begins with +** three varints: +** +** + number of levels, +** + total number of segments on all levels, +** + value of write counter. +** +** Then, for each level from 0 to nMax: +** +** + number of input segments in ongoing merge. +** + total number of segments in level. +** + for each segment from oldest to newest: +** + segment id (always > 0) +** + first leaf page number (often 1, always greater than 0) +** + final leaf page number +** +** 2. The Averages Record: +** +** A single record within the %_data table. The data is a list of varints. +** The first value is the number of rows in the index. Then, for each column +** from left to right, the total number of tokens in the column for all +** rows of the table. +** +** 3. Segment leaves: +** +** TERM/DOCLIST FORMAT: +** +** Most of each segment leaf is taken up by term/doclist data. The +** general format of term/doclist, starting with the first term +** on the leaf page, is: +** +** varint : size of first term +** blob: first term data +** doclist: first doclist +** zero-or-more { +** varint: number of bytes in common with previous term +** varint: number of bytes of new term data (nNew) +** blob: nNew bytes of new term data +** doclist: next doclist +** } +** +** doclist format: +** +** varint: first rowid +** poslist: first poslist +** zero-or-more { +** varint: rowid delta (always > 0) +** poslist: next poslist +** } +** +** poslist format: +** +** varint: size of poslist in bytes multiplied by 2, not including +** this field. Plus 1 if this entry carries the "delete" flag. +** collist: collist for column 0 +** zero-or-more { +** 0x01 byte +** varint: column number (I) +** collist: collist for column I +** } +** +** collist format: +** +** varint: first offset + 2 +** zero-or-more { +** varint: offset delta + 2 +** } +** +** PAGE FORMAT +** +** Each leaf page begins with a 4-byte header containing 2 16-bit +** unsigned integer fields in big-endian format. They are: +** +** * The byte offset of the first rowid on the page, if it exists +** and occurs before the first term (otherwise 0). +** +** * The byte offset of the start of the page footer. If the page +** footer is 0 bytes in size, then this field is the same as the +** size of the leaf page in bytes. +** +** The page footer consists of a single varint for each term located +** on the page. Each varint is the byte offset of the current term +** within the page, delta-compressed against the previous value. In +** other words, the first varint in the footer is the byte offset of +** the first term, the second is the byte offset of the second less that +** of the first, and so on. +** +** The term/doclist format described above is accurate if the entire +** term/doclist data fits on a single leaf page. If this is not the case, +** the format is changed in two ways: +** +** + if the first rowid on a page occurs before the first term, it +** is stored as a literal value: +** +** varint: first rowid +** +** + the first term on each page is stored in the same way as the +** very first term of the segment: +** +** varint : size of first term +** blob: first term data +** +** 5. Segment doclist indexes: +** +** Doclist indexes are themselves b-trees, however they usually consist of +** a single leaf record only. The format of each doclist index leaf page +** is: +** +** * Flags byte. Bits are: +** 0x01: Clear if leaf is also the root page, otherwise set. +** +** * Page number of fts index leaf page. As a varint. +** +** * First rowid on page indicated by previous field. As a varint. +** +** * A list of varints, one for each subsequent termless page. A +** positive delta if the termless page contains at least one rowid, +** or an 0x00 byte otherwise. +** +** Internal doclist index nodes are: +** +** * Flags byte. Bits are: +** 0x01: Clear for root page, otherwise set. +** +** * Page number of first child page. As a varint. +** +** * Copy of first rowid on page indicated by previous field. As a varint. +** +** * A list of delta-encoded varints - the first rowid on each subsequent +** child page. +** +*/ + +/* +** Rowids for the averages and structure records in the %_data table. +*/ +#define FTS5_AVERAGES_ROWID 1 /* Rowid used for the averages record */ +#define FTS5_STRUCTURE_ROWID 10 /* The structure record */ + +/* +** Macros determining the rowids used by segment leaves and dlidx leaves +** and nodes. All nodes and leaves are stored in the %_data table with large +** positive rowids. +** +** Each segment has a unique non-zero 16-bit id. +** +** The rowid for each segment leaf is found by passing the segment id and +** the leaf page number to the FTS5_SEGMENT_ROWID macro. Leaves are numbered +** sequentially starting from 1. +*/ +#define FTS5_DATA_ID_B 16 /* Max seg id number 65535 */ +#define FTS5_DATA_DLI_B 1 /* Doclist-index flag (1 bit) */ +#define FTS5_DATA_HEIGHT_B 5 /* Max dlidx tree height of 32 */ +#define FTS5_DATA_PAGE_B 31 /* Max page number of 2147483648 */ + +#define fts5_dri(segid, dlidx, height, pgno) ( \ + ((i64)(segid) << (FTS5_DATA_PAGE_B+FTS5_DATA_HEIGHT_B+FTS5_DATA_DLI_B)) + \ + ((i64)(dlidx) << (FTS5_DATA_PAGE_B + FTS5_DATA_HEIGHT_B)) + \ + ((i64)(height) << (FTS5_DATA_PAGE_B)) + \ + ((i64)(pgno)) \ +) + +#define FTS5_SEGMENT_ROWID(segid, pgno) fts5_dri(segid, 0, 0, pgno) +#define FTS5_DLIDX_ROWID(segid, height, pgno) fts5_dri(segid, 1, height, pgno) + +/* +** Maximum segments permitted in a single index +*/ +#define FTS5_MAX_SEGMENT 2000 + +#ifdef SQLITE_DEBUG +static int sqlite3Fts5Corrupt() { return SQLITE_CORRUPT_VTAB; } +#endif + + +/* +** Each time a blob is read from the %_data table, it is padded with this +** many zero bytes. This makes it easier to decode the various record formats +** without overreading if the records are corrupt. +*/ +#define FTS5_DATA_ZERO_PADDING 8 +#define FTS5_DATA_PADDING 20 + +typedef struct Fts5Data Fts5Data; +typedef struct Fts5DlidxIter Fts5DlidxIter; +typedef struct Fts5DlidxLvl Fts5DlidxLvl; +typedef struct Fts5DlidxWriter Fts5DlidxWriter; +typedef struct Fts5PageWriter Fts5PageWriter; +typedef struct Fts5SegIter Fts5SegIter; +typedef struct Fts5DoclistIter Fts5DoclistIter; +typedef struct Fts5SegWriter Fts5SegWriter; +typedef struct Fts5Structure Fts5Structure; +typedef struct Fts5StructureLevel Fts5StructureLevel; +typedef struct Fts5StructureSegment Fts5StructureSegment; + +struct Fts5Data { + u8 *p; /* Pointer to buffer containing record */ + int nn; /* Size of record in bytes */ + int szLeaf; /* Size of leaf without page-index */ +}; + +/* +** One object per %_data table. +*/ +struct Fts5Index { + Fts5Config *pConfig; /* Virtual table configuration */ + char *zDataTbl; /* Name of %_data table */ + int nWorkUnit; /* Leaf pages in a "unit" of work */ + + /* + ** Variables related to the accumulation of tokens and doclists within the + ** in-memory hash tables before they are flushed to disk. + */ + Fts5Hash *pHash; /* Hash table for in-memory data */ + int nMaxPendingData; /* Max pending data before flush to disk */ + int nPendingData; /* Current bytes of pending data */ + i64 iWriteRowid; /* Rowid for current doc being written */ + int bDelete; /* Current write is a delete */ + + /* Error state. */ + int rc; /* Current error code */ + + /* State used by the fts5DataXXX() functions. */ + sqlite3_blob *pReader; /* RO incr-blob open on %_data table */ + sqlite3_stmt *pWriter; /* "INSERT ... %_data VALUES(?,?)" */ + sqlite3_stmt *pDeleter; /* "DELETE FROM %_data ... id>=? AND id<=?" */ + sqlite3_stmt *pIdxWriter; /* "INSERT ... %_idx VALUES(?,?,?,?)" */ + sqlite3_stmt *pIdxDeleter; /* "DELETE FROM %_idx WHERE segid=? */ + sqlite3_stmt *pIdxSelect; + int nRead; /* Total number of blocks read */ +}; + +struct Fts5DoclistIter { + u8 *aEof; /* Pointer to 1 byte past end of doclist */ + + /* Output variables. aPoslist==0 at EOF */ + i64 iRowid; + u8 *aPoslist; + int nPoslist; + int nSize; +}; + +/* +** The contents of the "structure" record for each index are represented +** using an Fts5Structure record in memory. Which uses instances of the +** other Fts5StructureXXX types as components. +*/ +struct Fts5StructureSegment { + int iSegid; /* Segment id */ + int pgnoFirst; /* First leaf page number in segment */ + int pgnoLast; /* Last leaf page number in segment */ +}; +struct Fts5StructureLevel { + int nMerge; /* Number of segments in incr-merge */ + int nSeg; /* Total number of segments on level */ + Fts5StructureSegment *aSeg; /* Array of segments. aSeg[0] is oldest. */ +}; +struct Fts5Structure { + int nRef; /* Object reference count */ + u64 nWriteCounter; /* Total leaves written to level 0 */ + int nSegment; /* Total segments in this structure */ + int nLevel; /* Number of levels in this index */ + Fts5StructureLevel aLevel[1]; /* Array of nLevel level objects */ +}; + +/* +** An object of type Fts5SegWriter is used to write to segments. +*/ +struct Fts5PageWriter { + int pgno; /* Page number for this page */ + int iPrevPgidx; /* Previous value written into pgidx */ + Fts5Buffer buf; /* Buffer containing leaf data */ + Fts5Buffer pgidx; /* Buffer containing page-index */ + Fts5Buffer term; /* Buffer containing previous term on page */ +}; +struct Fts5DlidxWriter { + int pgno; /* Page number for this page */ + int bPrevValid; /* True if iPrev is valid */ + i64 iPrev; /* Previous rowid value written to page */ + Fts5Buffer buf; /* Buffer containing page data */ +}; +struct Fts5SegWriter { + int iSegid; /* Segid to write to */ + Fts5PageWriter writer; /* PageWriter object */ + i64 iPrevRowid; /* Previous rowid written to current leaf */ + u8 bFirstRowidInDoclist; /* True if next rowid is first in doclist */ + u8 bFirstRowidInPage; /* True if next rowid is first in page */ + /* TODO1: Can use (writer.pgidx.n==0) instead of bFirstTermInPage */ + u8 bFirstTermInPage; /* True if next term will be first in leaf */ + int nLeafWritten; /* Number of leaf pages written */ + int nEmpty; /* Number of contiguous term-less nodes */ + + int nDlidx; /* Allocated size of aDlidx[] array */ + Fts5DlidxWriter *aDlidx; /* Array of Fts5DlidxWriter objects */ + + /* Values to insert into the %_idx table */ + Fts5Buffer btterm; /* Next term to insert into %_idx table */ + int iBtPage; /* Page number corresponding to btterm */ +}; + +/* +** Object for iterating through the merged results of one or more segments, +** visiting each term/rowid pair in the merged data. +** +** nSeg is always a power of two greater than or equal to the number of +** segments that this object is merging data from. Both the aSeg[] and +** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded +** with zeroed objects - these are handled as if they were iterators opened +** on empty segments. +** +** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an +** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the +** comparison in this context is the index of the iterator that currently +** points to the smaller term/rowid combination. Iterators at EOF are +** considered to be greater than all other iterators. +** +** aFirst[1] contains the index in aSeg[] of the iterator that points to +** the smallest key overall. aFirst[0] is unused. +*/ + +typedef struct Fts5CResult Fts5CResult; +struct Fts5CResult { + u16 iFirst; /* aSeg[] index of firstest iterator */ + u8 bTermEq; /* True if the terms are equal */ +}; + +/* +** Object for iterating through a single segment, visiting each term/rowid +** pair in the segment. +** +** pSeg: +** The segment to iterate through. +** +** iLeafPgno: +** Current leaf page number within segment. +** +** iLeafOffset: +** Byte offset within the current leaf that is the first byte of the +** position list data (one byte passed the position-list size field). +** rowid field of the current entry. Usually this is the size field of the +** position list data. The exception is if the rowid for the current entry +** is the last thing on the leaf page. +** +** pLeaf: +** Buffer containing current leaf page data. Set to NULL at EOF. +** +** iTermLeafPgno, iTermLeafOffset: +** Leaf page number containing the last term read from the segment. And +** the offset immediately following the term data. +** +** flags: +** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: +** +** FTS5_SEGITER_ONETERM: +** If set, set the iterator to point to EOF after the current doclist +** has been exhausted. Do not proceed to the next term in the segment. +** +** FTS5_SEGITER_REVERSE: +** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If +** it is set, iterate through rowid in descending order instead of the +** default ascending order. +** +** iRowidOffset/nRowidOffset/aRowidOffset: +** These are used if the FTS5_SEGITER_REVERSE flag is set. +** +** For each rowid on the page corresponding to the current term, the +** corresponding aRowidOffset[] entry is set to the byte offset of the +** start of the "position-list-size" field within the page. +** +** iTermIdx: +** Index of current term on iTermLeafPgno. +*/ +struct Fts5SegIter { + Fts5StructureSegment *pSeg; /* Segment to iterate through */ + int flags; /* Mask of configuration flags */ + int iLeafPgno; /* Current leaf page number */ + Fts5Data *pLeaf; /* Current leaf data */ + Fts5Data *pNextLeaf; /* Leaf page (iLeafPgno+1) */ + int iLeafOffset; /* Byte offset within current leaf */ + + /* The page and offset from which the current term was read. The offset + ** is the offset of the first rowid in the current doclist. */ + int iTermLeafPgno; + int iTermLeafOffset; + + int iPgidxOff; /* Next offset in pgidx */ + int iEndofDoclist; + + /* The following are only used if the FTS5_SEGITER_REVERSE flag is set. */ + int iRowidOffset; /* Current entry in aRowidOffset[] */ + int nRowidOffset; /* Allocated size of aRowidOffset[] array */ + int *aRowidOffset; /* Array of offset to rowid fields */ + + Fts5DlidxIter *pDlidx; /* If there is a doclist-index */ + + /* Variables populated based on current entry. */ + Fts5Buffer term; /* Current term */ + i64 iRowid; /* Current rowid */ + int nPos; /* Number of bytes in current position list */ + int bDel; /* True if the delete flag is set */ +}; + +/* +** Argument is a pointer to an Fts5Data structure that contains a +** leaf page. +*/ +#define ASSERT_SZLEAF_OK(x) assert( \ + (x)->szLeaf==(x)->nn || (x)->szLeaf==fts5GetU16(&(x)->p[2]) \ +) + +#define FTS5_SEGITER_ONETERM 0x01 +#define FTS5_SEGITER_REVERSE 0x02 + + +/* +** Argument is a pointer to an Fts5Data structure that contains a leaf +** page. This macro evaluates to true if the leaf contains no terms, or +** false if it contains at least one term. +*/ +#define fts5LeafIsTermless(x) ((x)->szLeaf >= (x)->nn) + +#define fts5LeafTermOff(x, i) (fts5GetU16(&(x)->p[(x)->szLeaf + (i)*2])) + +#define fts5LeafFirstRowidOff(x) (fts5GetU16((x)->p)) + +/* +** poslist: +** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. +** There is no way to tell if this is populated or not. +*/ +struct Fts5IndexIter { + Fts5Index *pIndex; /* Index that owns this iterator */ + Fts5Structure *pStruct; /* Database structure for this iterator */ + Fts5Buffer poslist; /* Buffer containing current poslist */ + + int nSeg; /* Size of aSeg[] array */ + int bRev; /* True to iterate in reverse order */ + u8 bSkipEmpty; /* True to skip deleted entries */ + u8 bEof; /* True at EOF */ + u8 bFiltered; /* True if column-filter already applied */ + + i64 iSwitchRowid; /* Firstest rowid of other than aFirst[1] */ + Fts5CResult *aFirst; /* Current merge state (see above) */ + Fts5SegIter aSeg[1]; /* Array of segment iterators */ +}; + + +/* +** An instance of the following type is used to iterate through the contents +** of a doclist-index record. +** +** pData: +** Record containing the doclist-index data. +** +** bEof: +** Set to true once iterator has reached EOF. +** +** iOff: +** Set to the current offset within record pData. +*/ +struct Fts5DlidxLvl { + Fts5Data *pData; /* Data for current page of this level */ + int iOff; /* Current offset into pData */ + int bEof; /* At EOF already */ + int iFirstOff; /* Used by reverse iterators */ + + /* Output variables */ + int iLeafPgno; /* Page number of current leaf page */ + i64 iRowid; /* First rowid on leaf iLeafPgno */ +}; +struct Fts5DlidxIter { + int nLvl; + int iSegid; + Fts5DlidxLvl aLvl[1]; +}; + +static void fts5PutU16(u8 *aOut, u16 iVal){ + aOut[0] = (iVal>>8); + aOut[1] = (iVal&0xFF); +} + +static u16 fts5GetU16(const u8 *aIn){ + return ((u16)aIn[0] << 8) + aIn[1]; +} + +/* +** Allocate and return a buffer at least nByte bytes in size. +** +** If an OOM error is encountered, return NULL and set the error code in +** the Fts5Index handle passed as the first argument. +*/ +static void *fts5IdxMalloc(Fts5Index *p, int nByte){ + return sqlite3Fts5MallocZero(&p->rc, nByte); +} + +/* +** Compare the contents of the pLeft buffer with the pRight/nRight blob. +** +** Return -ve if pLeft is smaller than pRight, 0 if they are equal or +** +ve if pRight is smaller than pLeft. In other words: +** +** res = *pLeft - *pRight +*/ +#ifdef SQLITE_DEBUG +static int fts5BufferCompareBlob( + Fts5Buffer *pLeft, /* Left hand side of comparison */ + const u8 *pRight, int nRight /* Right hand side of comparison */ +){ + int nCmp = MIN(pLeft->n, nRight); + int res = memcmp(pLeft->p, pRight, nCmp); + return (res==0 ? (pLeft->n - nRight) : res); +} +#endif + +/* +** Compare the contents of the two buffers using memcmp(). If one buffer +** is a prefix of the other, it is considered the lesser. +** +** Return -ve if pLeft is smaller than pRight, 0 if they are equal or +** +ve if pRight is smaller than pLeft. In other words: +** +** res = *pLeft - *pRight +*/ +static int fts5BufferCompare(Fts5Buffer *pLeft, Fts5Buffer *pRight){ + int nCmp = MIN(pLeft->n, pRight->n); + int res = memcmp(pLeft->p, pRight->p, nCmp); + return (res==0 ? (pLeft->n - pRight->n) : res); +} + +#ifdef SQLITE_DEBUG +static int fts5BlobCompare( + const u8 *pLeft, int nLeft, + const u8 *pRight, int nRight +){ + int nCmp = MIN(nLeft, nRight); + int res = memcmp(pLeft, pRight, nCmp); + return (res==0 ? (nLeft - nRight) : res); +} +#endif + +static int fts5LeafFirstTermOff(Fts5Data *pLeaf){ + int ret; + fts5GetVarint32(&pLeaf->p[pLeaf->szLeaf], ret); + return ret; +} + +/* +** Close the read-only blob handle, if it is open. +*/ +static void fts5CloseReader(Fts5Index *p){ + if( p->pReader ){ + sqlite3_blob *pReader = p->pReader; + p->pReader = 0; + sqlite3_blob_close(pReader); + } +} + + +/* +** Retrieve a record from the %_data table. +** +** If an error occurs, NULL is returned and an error left in the +** Fts5Index object. +*/ +static Fts5Data *fts5DataRead(Fts5Index *p, i64 iRowid){ + Fts5Data *pRet = 0; + if( p->rc==SQLITE_OK ){ + int rc = SQLITE_OK; + + if( p->pReader ){ + /* This call may return SQLITE_ABORT if there has been a savepoint + ** rollback since it was last used. In this case a new blob handle + ** is required. */ + sqlite3_blob *pBlob = p->pReader; + p->pReader = 0; + rc = sqlite3_blob_reopen(pBlob, iRowid); + assert( p->pReader==0 ); + p->pReader = pBlob; + if( rc!=SQLITE_OK ){ + fts5CloseReader(p); + } + if( rc==SQLITE_ABORT ) rc = SQLITE_OK; + } + + /* If the blob handle is not open at this point, open it and seek + ** to the requested entry. */ + if( p->pReader==0 && rc==SQLITE_OK ){ + Fts5Config *pConfig = p->pConfig; + rc = sqlite3_blob_open(pConfig->db, + pConfig->zDb, p->zDataTbl, "block", iRowid, 0, &p->pReader + ); + } + + /* If either of the sqlite3_blob_open() or sqlite3_blob_reopen() calls + ** above returned SQLITE_ERROR, return SQLITE_CORRUPT_VTAB instead. + ** All the reasons those functions might return SQLITE_ERROR - missing + ** table, missing row, non-blob/text in block column - indicate + ** backing store corruption. */ + if( rc==SQLITE_ERROR ) rc = FTS5_CORRUPT; + + if( rc==SQLITE_OK ){ + u8 *aOut = 0; /* Read blob data into this buffer */ + int nByte = sqlite3_blob_bytes(p->pReader); + int nAlloc = sizeof(Fts5Data) + nByte + FTS5_DATA_PADDING; + pRet = (Fts5Data*)sqlite3_malloc(nAlloc); + if( pRet ){ + pRet->nn = nByte; + aOut = pRet->p = (u8*)&pRet[1]; + }else{ + rc = SQLITE_NOMEM; + } + + if( rc==SQLITE_OK ){ + rc = sqlite3_blob_read(p->pReader, aOut, nByte, 0); + } + if( rc!=SQLITE_OK ){ + sqlite3_free(pRet); + pRet = 0; + }else{ + /* TODO1: Fix this */ + pRet->szLeaf = fts5GetU16(&pRet->p[2]); + } + } + p->rc = rc; + p->nRead++; + } + + assert( (pRet==0)==(p->rc!=SQLITE_OK) ); + return pRet; +} + +/* +** Release a reference to data record returned by an earlier call to +** fts5DataRead(). +*/ +static void fts5DataRelease(Fts5Data *pData){ + sqlite3_free(pData); +} + +static int fts5IndexPrepareStmt( + Fts5Index *p, + sqlite3_stmt **ppStmt, + char *zSql +){ + if( p->rc==SQLITE_OK ){ + if( zSql ){ + p->rc = sqlite3_prepare_v2(p->pConfig->db, zSql, -1, ppStmt, 0); + }else{ + p->rc = SQLITE_NOMEM; + } + } + sqlite3_free(zSql); + return p->rc; +} + + +/* +** INSERT OR REPLACE a record into the %_data table. +*/ +static void fts5DataWrite(Fts5Index *p, i64 iRowid, const u8 *pData, int nData){ + if( p->rc!=SQLITE_OK ) return; + + if( p->pWriter==0 ){ + Fts5Config *pConfig = p->pConfig; + fts5IndexPrepareStmt(p, &p->pWriter, sqlite3_mprintf( + "REPLACE INTO '%q'.'%q_data'(id, block) VALUES(?,?)", + pConfig->zDb, pConfig->zName + )); + if( p->rc ) return; + } + + sqlite3_bind_int64(p->pWriter, 1, iRowid); + sqlite3_bind_blob(p->pWriter, 2, pData, nData, SQLITE_STATIC); + sqlite3_step(p->pWriter); + p->rc = sqlite3_reset(p->pWriter); +} + +/* +** Execute the following SQL: +** +** DELETE FROM %_data WHERE id BETWEEN $iFirst AND $iLast +*/ +static void fts5DataDelete(Fts5Index *p, i64 iFirst, i64 iLast){ + if( p->rc!=SQLITE_OK ) return; + + if( p->pDeleter==0 ){ + int rc; + Fts5Config *pConfig = p->pConfig; + char *zSql = sqlite3_mprintf( + "DELETE FROM '%q'.'%q_data' WHERE id>=? AND id<=?", + pConfig->zDb, pConfig->zName + ); + if( zSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + rc = sqlite3_prepare_v2(pConfig->db, zSql, -1, &p->pDeleter, 0); + sqlite3_free(zSql); + } + if( rc!=SQLITE_OK ){ + p->rc = rc; + return; + } + } + + sqlite3_bind_int64(p->pDeleter, 1, iFirst); + sqlite3_bind_int64(p->pDeleter, 2, iLast); + sqlite3_step(p->pDeleter); + p->rc = sqlite3_reset(p->pDeleter); +} + +/* +** Remove all records associated with segment iSegid. +*/ +static void fts5DataRemoveSegment(Fts5Index *p, int iSegid){ + i64 iFirst = FTS5_SEGMENT_ROWID(iSegid, 0); + i64 iLast = FTS5_SEGMENT_ROWID(iSegid+1, 0)-1; + fts5DataDelete(p, iFirst, iLast); + if( p->pIdxDeleter==0 ){ + Fts5Config *pConfig = p->pConfig; + fts5IndexPrepareStmt(p, &p->pIdxDeleter, sqlite3_mprintf( + "DELETE FROM '%q'.'%q_idx' WHERE segid=?", + pConfig->zDb, pConfig->zName + )); + } + if( p->rc==SQLITE_OK ){ + sqlite3_bind_int(p->pIdxDeleter, 1, iSegid); + sqlite3_step(p->pIdxDeleter); + p->rc = sqlite3_reset(p->pIdxDeleter); + } +} + +/* +** Release a reference to an Fts5Structure object returned by an earlier +** call to fts5StructureRead() or fts5StructureDecode(). +*/ +static void fts5StructureRelease(Fts5Structure *pStruct){ + if( pStruct && 0>=(--pStruct->nRef) ){ + int i; + assert( pStruct->nRef==0 ); + for(i=0; inLevel; i++){ + sqlite3_free(pStruct->aLevel[i].aSeg); + } + sqlite3_free(pStruct); + } +} + +static void fts5StructureRef(Fts5Structure *pStruct){ + pStruct->nRef++; +} + +/* +** Deserialize and return the structure record currently stored in serialized +** form within buffer pData/nData. +** +** The Fts5Structure.aLevel[] and each Fts5StructureLevel.aSeg[] array +** are over-allocated by one slot. This allows the structure contents +** to be more easily edited. +** +** If an error occurs, *ppOut is set to NULL and an SQLite error code +** returned. Otherwise, *ppOut is set to point to the new object and +** SQLITE_OK returned. +*/ +static int fts5StructureDecode( + const u8 *pData, /* Buffer containing serialized structure */ + int nData, /* Size of buffer pData in bytes */ + int *piCookie, /* Configuration cookie value */ + Fts5Structure **ppOut /* OUT: Deserialized object */ +){ + int rc = SQLITE_OK; + int i = 0; + int iLvl; + int nLevel = 0; + int nSegment = 0; + int nByte; /* Bytes of space to allocate at pRet */ + Fts5Structure *pRet = 0; /* Structure object to return */ + + /* Grab the cookie value */ + if( piCookie ) *piCookie = sqlite3Fts5Get32(pData); + i = 4; + + /* Read the total number of levels and segments from the start of the + ** structure record. */ + i += fts5GetVarint32(&pData[i], nLevel); + i += fts5GetVarint32(&pData[i], nSegment); + nByte = ( + sizeof(Fts5Structure) + /* Main structure */ + sizeof(Fts5StructureLevel) * (nLevel-1) /* aLevel[] array */ + ); + pRet = (Fts5Structure*)sqlite3Fts5MallocZero(&rc, nByte); + + if( pRet ){ + pRet->nRef = 1; + pRet->nLevel = nLevel; + pRet->nSegment = nSegment; + i += sqlite3Fts5GetVarint(&pData[i], &pRet->nWriteCounter); + + for(iLvl=0; rc==SQLITE_OK && iLvlaLevel[iLvl]; + int nTotal; + int iSeg; + + i += fts5GetVarint32(&pData[i], pLvl->nMerge); + i += fts5GetVarint32(&pData[i], nTotal); + assert( nTotal>=pLvl->nMerge ); + pLvl->aSeg = (Fts5StructureSegment*)sqlite3Fts5MallocZero(&rc, + nTotal * sizeof(Fts5StructureSegment) + ); + + if( rc==SQLITE_OK ){ + pLvl->nSeg = nTotal; + for(iSeg=0; iSegaSeg[iSeg].iSegid); + i += fts5GetVarint32(&pData[i], pLvl->aSeg[iSeg].pgnoFirst); + i += fts5GetVarint32(&pData[i], pLvl->aSeg[iSeg].pgnoLast); + } + }else{ + fts5StructureRelease(pRet); + pRet = 0; + } + } + } + + *ppOut = pRet; + return rc; +} + +/* +** +*/ +static void fts5StructureAddLevel(int *pRc, Fts5Structure **ppStruct){ + if( *pRc==SQLITE_OK ){ + Fts5Structure *pStruct = *ppStruct; + int nLevel = pStruct->nLevel; + int nByte = ( + sizeof(Fts5Structure) + /* Main structure */ + sizeof(Fts5StructureLevel) * (nLevel+1) /* aLevel[] array */ + ); + + pStruct = sqlite3_realloc(pStruct, nByte); + if( pStruct ){ + memset(&pStruct->aLevel[nLevel], 0, sizeof(Fts5StructureLevel)); + pStruct->nLevel++; + *ppStruct = pStruct; + }else{ + *pRc = SQLITE_NOMEM; + } + } +} + +/* +** Extend level iLvl so that there is room for at least nExtra more +** segments. +*/ +static void fts5StructureExtendLevel( + int *pRc, + Fts5Structure *pStruct, + int iLvl, + int nExtra, + int bInsert +){ + if( *pRc==SQLITE_OK ){ + Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl]; + Fts5StructureSegment *aNew; + int nByte; + + nByte = (pLvl->nSeg + nExtra) * sizeof(Fts5StructureSegment); + aNew = sqlite3_realloc(pLvl->aSeg, nByte); + if( aNew ){ + if( bInsert==0 ){ + memset(&aNew[pLvl->nSeg], 0, sizeof(Fts5StructureSegment) * nExtra); + }else{ + int nMove = pLvl->nSeg * sizeof(Fts5StructureSegment); + memmove(&aNew[nExtra], aNew, nMove); + memset(aNew, 0, sizeof(Fts5StructureSegment) * nExtra); + } + pLvl->aSeg = aNew; + }else{ + *pRc = SQLITE_NOMEM; + } + } +} + +/* +** Read, deserialize and return the structure record. +** +** The Fts5Structure.aLevel[] and each Fts5StructureLevel.aSeg[] array +** are over-allocated as described for function fts5StructureDecode() +** above. +** +** If an error occurs, NULL is returned and an error code left in the +** Fts5Index handle. If an error has already occurred when this function +** is called, it is a no-op. +*/ +static Fts5Structure *fts5StructureRead(Fts5Index *p){ + Fts5Config *pConfig = p->pConfig; + Fts5Structure *pRet = 0; /* Object to return */ + int iCookie; /* Configuration cookie */ + Fts5Data *pData; + + pData = fts5DataRead(p, FTS5_STRUCTURE_ROWID); + if( p->rc ) return 0; + /* TODO: Do we need this if the leaf-index is appended? Probably... */ + memset(&pData->p[pData->nn], 0, FTS5_DATA_PADDING); + p->rc = fts5StructureDecode(pData->p, pData->nn, &iCookie, &pRet); + if( p->rc==SQLITE_OK && pConfig->iCookie!=iCookie ){ + p->rc = sqlite3Fts5ConfigLoad(pConfig, iCookie); + } + + fts5DataRelease(pData); + if( p->rc!=SQLITE_OK ){ + fts5StructureRelease(pRet); + pRet = 0; + } + return pRet; +} + +/* +** Return the total number of segments in index structure pStruct. This +** function is only ever used as part of assert() conditions. +*/ +#ifdef SQLITE_DEBUG +static int fts5StructureCountSegments(Fts5Structure *pStruct){ + int nSegment = 0; /* Total number of segments */ + if( pStruct ){ + int iLvl; /* Used to iterate through levels */ + for(iLvl=0; iLvlnLevel; iLvl++){ + nSegment += pStruct->aLevel[iLvl].nSeg; + } + } + + return nSegment; +} +#endif + +/* +** Serialize and store the "structure" record. +** +** If an error occurs, leave an error code in the Fts5Index object. If an +** error has already occurred, this function is a no-op. +*/ +static void fts5StructureWrite(Fts5Index *p, Fts5Structure *pStruct){ + if( p->rc==SQLITE_OK ){ + Fts5Buffer buf; /* Buffer to serialize record into */ + int iLvl; /* Used to iterate through levels */ + int iCookie; /* Cookie value to store */ + + assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) ); + memset(&buf, 0, sizeof(Fts5Buffer)); + + /* Append the current configuration cookie */ + iCookie = p->pConfig->iCookie; + if( iCookie<0 ) iCookie = 0; + fts5BufferAppend32(&p->rc, &buf, iCookie); + + fts5BufferAppendVarint(&p->rc, &buf, pStruct->nLevel); + fts5BufferAppendVarint(&p->rc, &buf, pStruct->nSegment); + fts5BufferAppendVarint(&p->rc, &buf, (i64)pStruct->nWriteCounter); + + for(iLvl=0; iLvlnLevel; iLvl++){ + int iSeg; /* Used to iterate through segments */ + Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl]; + fts5BufferAppendVarint(&p->rc, &buf, pLvl->nMerge); + fts5BufferAppendVarint(&p->rc, &buf, pLvl->nSeg); + assert( pLvl->nMerge<=pLvl->nSeg ); + + for(iSeg=0; iSegnSeg; iSeg++){ + fts5BufferAppendVarint(&p->rc, &buf, pLvl->aSeg[iSeg].iSegid); + fts5BufferAppendVarint(&p->rc, &buf, pLvl->aSeg[iSeg].pgnoFirst); + fts5BufferAppendVarint(&p->rc, &buf, pLvl->aSeg[iSeg].pgnoLast); + } + } + + fts5DataWrite(p, FTS5_STRUCTURE_ROWID, buf.p, buf.n); + fts5BufferFree(&buf); + } +} + +#if 0 +static void fts5DebugStructure(int*,Fts5Buffer*,Fts5Structure*); +static void fts5PrintStructure(const char *zCaption, Fts5Structure *pStruct){ + int rc = SQLITE_OK; + Fts5Buffer buf; + memset(&buf, 0, sizeof(buf)); + fts5DebugStructure(&rc, &buf, pStruct); + fprintf(stdout, "%s: %s\n", zCaption, buf.p); + fflush(stdout); + fts5BufferFree(&buf); +} +#else +# define fts5PrintStructure(x,y) +#endif + +static int fts5SegmentSize(Fts5StructureSegment *pSeg){ + return 1 + pSeg->pgnoLast - pSeg->pgnoFirst; +} + +/* +** Return a copy of index structure pStruct. Except, promote as many +** segments as possible to level iPromote. If an OOM occurs, NULL is +** returned. +*/ +static void fts5StructurePromoteTo( + Fts5Index *p, + int iPromote, + int szPromote, + Fts5Structure *pStruct +){ + int il, is; + Fts5StructureLevel *pOut = &pStruct->aLevel[iPromote]; + + if( pOut->nMerge==0 ){ + for(il=iPromote+1; ilnLevel; il++){ + Fts5StructureLevel *pLvl = &pStruct->aLevel[il]; + if( pLvl->nMerge ) return; + for(is=pLvl->nSeg-1; is>=0; is--){ + int sz = fts5SegmentSize(&pLvl->aSeg[is]); + if( sz>szPromote ) return; + fts5StructureExtendLevel(&p->rc, pStruct, iPromote, 1, 1); + if( p->rc ) return; + memcpy(pOut->aSeg, &pLvl->aSeg[is], sizeof(Fts5StructureSegment)); + pOut->nSeg++; + pLvl->nSeg--; + } + } + } +} + +/* +** A new segment has just been written to level iLvl of index structure +** pStruct. This function determines if any segments should be promoted +** as a result. Segments are promoted in two scenarios: +** +** a) If the segment just written is smaller than one or more segments +** within the previous populated level, it is promoted to the previous +** populated level. +** +** b) If the segment just written is larger than the newest segment on +** the next populated level, then that segment, and any other adjacent +** segments that are also smaller than the one just written, are +** promoted. +** +** If one or more segments are promoted, the structure object is updated +** to reflect this. +*/ +static void fts5StructurePromote( + Fts5Index *p, /* FTS5 backend object */ + int iLvl, /* Index level just updated */ + Fts5Structure *pStruct /* Index structure */ +){ + if( p->rc==SQLITE_OK ){ + int iTst; + int iPromote = -1; + int szPromote = 0; /* Promote anything this size or smaller */ + Fts5StructureSegment *pSeg; /* Segment just written */ + int szSeg; /* Size of segment just written */ + int nSeg = pStruct->aLevel[iLvl].nSeg; + + if( nSeg==0 ) return; + pSeg = &pStruct->aLevel[iLvl].aSeg[pStruct->aLevel[iLvl].nSeg-1]; + szSeg = (1 + pSeg->pgnoLast - pSeg->pgnoFirst); + + /* Check for condition (a) */ + for(iTst=iLvl-1; iTst>=0 && pStruct->aLevel[iTst].nSeg==0; iTst--); + if( iTst>=0 ){ + int i; + int szMax = 0; + Fts5StructureLevel *pTst = &pStruct->aLevel[iTst]; + assert( pTst->nMerge==0 ); + for(i=0; inSeg; i++){ + int sz = pTst->aSeg[i].pgnoLast - pTst->aSeg[i].pgnoFirst + 1; + if( sz>szMax ) szMax = sz; + } + if( szMax>=szSeg ){ + /* Condition (a) is true. Promote the newest segment on level + ** iLvl to level iTst. */ + iPromote = iTst; + szPromote = szMax; + } + } + + /* If condition (a) is not met, assume (b) is true. StructurePromoteTo() + ** is a no-op if it is not. */ + if( iPromote<0 ){ + iPromote = iLvl; + szPromote = szSeg; + } + fts5StructurePromoteTo(p, iPromote, szPromote, pStruct); + } +} + + +/* +** Advance the iterator passed as the only argument. If the end of the +** doclist-index page is reached, return non-zero. +*/ +static int fts5DlidxLvlNext(Fts5DlidxLvl *pLvl){ + Fts5Data *pData = pLvl->pData; + + if( pLvl->iOff==0 ){ + assert( pLvl->bEof==0 ); + pLvl->iOff = 1; + pLvl->iOff += fts5GetVarint32(&pData->p[1], pLvl->iLeafPgno); + pLvl->iOff += fts5GetVarint(&pData->p[pLvl->iOff], (u64*)&pLvl->iRowid); + pLvl->iFirstOff = pLvl->iOff; + }else{ + int iOff; + for(iOff=pLvl->iOff; iOffnn; iOff++){ + if( pData->p[iOff] ) break; + } + + if( iOffnn ){ + i64 iVal; + pLvl->iLeafPgno += (iOff - pLvl->iOff) + 1; + iOff += fts5GetVarint(&pData->p[iOff], (u64*)&iVal); + pLvl->iRowid += iVal; + pLvl->iOff = iOff; + }else{ + pLvl->bEof = 1; + } + } + + return pLvl->bEof; +} + +/* +** Advance the iterator passed as the only argument. +*/ +static int fts5DlidxIterNextR(Fts5Index *p, Fts5DlidxIter *pIter, int iLvl){ + Fts5DlidxLvl *pLvl = &pIter->aLvl[iLvl]; + + assert( iLvlnLvl ); + if( fts5DlidxLvlNext(pLvl) ){ + if( (iLvl+1) < pIter->nLvl ){ + fts5DlidxIterNextR(p, pIter, iLvl+1); + if( pLvl[1].bEof==0 ){ + fts5DataRelease(pLvl->pData); + memset(pLvl, 0, sizeof(Fts5DlidxLvl)); + pLvl->pData = fts5DataRead(p, + FTS5_DLIDX_ROWID(pIter->iSegid, iLvl, pLvl[1].iLeafPgno) + ); + if( pLvl->pData ) fts5DlidxLvlNext(pLvl); + } + } + } + + return pIter->aLvl[0].bEof; +} +static int fts5DlidxIterNext(Fts5Index *p, Fts5DlidxIter *pIter){ + return fts5DlidxIterNextR(p, pIter, 0); +} + +/* +** The iterator passed as the first argument has the following fields set +** as follows. This function sets up the rest of the iterator so that it +** points to the first rowid in the doclist-index. +** +** pData: +** pointer to doclist-index record, +** +** When this function is called pIter->iLeafPgno is the page number the +** doclist is associated with (the one featuring the term). +*/ +static int fts5DlidxIterFirst(Fts5DlidxIter *pIter){ + int i; + for(i=0; inLvl; i++){ + fts5DlidxLvlNext(&pIter->aLvl[i]); + } + return pIter->aLvl[0].bEof; +} + + +static int fts5DlidxIterEof(Fts5Index *p, Fts5DlidxIter *pIter){ + return p->rc!=SQLITE_OK || pIter->aLvl[0].bEof; +} + +static void fts5DlidxIterLast(Fts5Index *p, Fts5DlidxIter *pIter){ + int i; + + /* Advance each level to the last entry on the last page */ + for(i=pIter->nLvl-1; p->rc==SQLITE_OK && i>=0; i--){ + Fts5DlidxLvl *pLvl = &pIter->aLvl[i]; + while( fts5DlidxLvlNext(pLvl)==0 ); + pLvl->bEof = 0; + + if( i>0 ){ + Fts5DlidxLvl *pChild = &pLvl[-1]; + fts5DataRelease(pChild->pData); + memset(pChild, 0, sizeof(Fts5DlidxLvl)); + pChild->pData = fts5DataRead(p, + FTS5_DLIDX_ROWID(pIter->iSegid, i-1, pLvl->iLeafPgno) + ); + } + } +} + +/* +** Move the iterator passed as the only argument to the previous entry. +*/ +static int fts5DlidxLvlPrev(Fts5DlidxLvl *pLvl){ + int iOff = pLvl->iOff; + + assert( pLvl->bEof==0 ); + if( iOff<=pLvl->iFirstOff ){ + pLvl->bEof = 1; + }else{ + u8 *a = pLvl->pData->p; + i64 iVal; + int iLimit; + int ii; + int nZero = 0; + + /* Currently iOff points to the first byte of a varint. This block + ** decrements iOff until it points to the first byte of the previous + ** varint. Taking care not to read any memory locations that occur + ** before the buffer in memory. */ + iLimit = (iOff>9 ? iOff-9 : 0); + for(iOff--; iOff>iLimit; iOff--){ + if( (a[iOff-1] & 0x80)==0 ) break; + } + + fts5GetVarint(&a[iOff], (u64*)&iVal); + pLvl->iRowid -= iVal; + pLvl->iLeafPgno--; + + /* Skip backwards past any 0x00 varints. */ + for(ii=iOff-1; ii>=pLvl->iFirstOff && a[ii]==0x00; ii--){ + nZero++; + } + if( ii>=pLvl->iFirstOff && (a[ii] & 0x80) ){ + /* The byte immediately before the last 0x00 byte has the 0x80 bit + ** set. So the last 0x00 is only a varint 0 if there are 8 more 0x80 + ** bytes before a[ii]. */ + int bZero = 0; /* True if last 0x00 counts */ + if( (ii-8)>=pLvl->iFirstOff ){ + int j; + for(j=1; j<=8 && (a[ii-j] & 0x80); j++); + bZero = (j>8); + } + if( bZero==0 ) nZero--; + } + pLvl->iLeafPgno -= nZero; + pLvl->iOff = iOff - nZero; + } + + return pLvl->bEof; +} + +static int fts5DlidxIterPrevR(Fts5Index *p, Fts5DlidxIter *pIter, int iLvl){ + Fts5DlidxLvl *pLvl = &pIter->aLvl[iLvl]; + + assert( iLvlnLvl ); + if( fts5DlidxLvlPrev(pLvl) ){ + if( (iLvl+1) < pIter->nLvl ){ + fts5DlidxIterPrevR(p, pIter, iLvl+1); + if( pLvl[1].bEof==0 ){ + fts5DataRelease(pLvl->pData); + memset(pLvl, 0, sizeof(Fts5DlidxLvl)); + pLvl->pData = fts5DataRead(p, + FTS5_DLIDX_ROWID(pIter->iSegid, iLvl, pLvl[1].iLeafPgno) + ); + if( pLvl->pData ){ + while( fts5DlidxLvlNext(pLvl)==0 ); + pLvl->bEof = 0; + } + } + } + } + + return pIter->aLvl[0].bEof; +} +static int fts5DlidxIterPrev(Fts5Index *p, Fts5DlidxIter *pIter){ + return fts5DlidxIterPrevR(p, pIter, 0); +} + +/* +** Free a doclist-index iterator object allocated by fts5DlidxIterInit(). +*/ +static void fts5DlidxIterFree(Fts5DlidxIter *pIter){ + if( pIter ){ + int i; + for(i=0; inLvl; i++){ + fts5DataRelease(pIter->aLvl[i].pData); + } + sqlite3_free(pIter); + } +} + +static Fts5DlidxIter *fts5DlidxIterInit( + Fts5Index *p, /* Fts5 Backend to iterate within */ + int bRev, /* True for ORDER BY ASC */ + int iSegid, /* Segment id */ + int iLeafPg /* Leaf page number to load dlidx for */ +){ + Fts5DlidxIter *pIter = 0; + int i; + int bDone = 0; + + for(i=0; p->rc==SQLITE_OK && bDone==0; i++){ + int nByte = sizeof(Fts5DlidxIter) + i * sizeof(Fts5DlidxLvl); + Fts5DlidxIter *pNew; + + pNew = (Fts5DlidxIter*)sqlite3_realloc(pIter, nByte); + if( pNew==0 ){ + p->rc = SQLITE_NOMEM; + }else{ + i64 iRowid = FTS5_DLIDX_ROWID(iSegid, i, iLeafPg); + Fts5DlidxLvl *pLvl = &pNew->aLvl[i]; + pIter = pNew; + memset(pLvl, 0, sizeof(Fts5DlidxLvl)); + pLvl->pData = fts5DataRead(p, iRowid); + if( pLvl->pData && (pLvl->pData->p[0] & 0x0001)==0 ){ + bDone = 1; + } + pIter->nLvl = i+1; + } + } + + if( p->rc==SQLITE_OK ){ + pIter->iSegid = iSegid; + if( bRev==0 ){ + fts5DlidxIterFirst(pIter); + }else{ + fts5DlidxIterLast(p, pIter); + } + } + + if( p->rc!=SQLITE_OK ){ + fts5DlidxIterFree(pIter); + pIter = 0; + } + + return pIter; +} + +static i64 fts5DlidxIterRowid(Fts5DlidxIter *pIter){ + return pIter->aLvl[0].iRowid; +} +static int fts5DlidxIterPgno(Fts5DlidxIter *pIter){ + return pIter->aLvl[0].iLeafPgno; +} + +/* +** Load the next leaf page into the segment iterator. +*/ +static void fts5SegIterNextPage( + Fts5Index *p, /* FTS5 backend object */ + Fts5SegIter *pIter /* Iterator to advance to next page */ +){ + Fts5Data *pLeaf; + Fts5StructureSegment *pSeg = pIter->pSeg; + fts5DataRelease(pIter->pLeaf); + pIter->iLeafPgno++; + if( pIter->pNextLeaf ){ + pIter->pLeaf = pIter->pNextLeaf; + pIter->pNextLeaf = 0; + }else if( pIter->iLeafPgno<=pSeg->pgnoLast ){ + pIter->pLeaf = fts5DataRead(p, + FTS5_SEGMENT_ROWID(pSeg->iSegid, pIter->iLeafPgno) + ); + }else{ + pIter->pLeaf = 0; + } + pLeaf = pIter->pLeaf; + + if( pLeaf ){ + pIter->iPgidxOff = pLeaf->szLeaf; + if( fts5LeafIsTermless(pLeaf) ){ + pIter->iEndofDoclist = pLeaf->nn+1; + }else{ + pIter->iPgidxOff += fts5GetVarint32(&pLeaf->p[pIter->iPgidxOff], + pIter->iEndofDoclist + ); + } + } +} + +/* +** Argument p points to a buffer containing a varint to be interpreted as a +** position list size field. Read the varint and return the number of bytes +** read. Before returning, set *pnSz to the number of bytes in the position +** list, and *pbDel to true if the delete flag is set, or false otherwise. +*/ +static int fts5GetPoslistSize(const u8 *p, int *pnSz, int *pbDel){ + int nSz; + int n = 0; + fts5FastGetVarint32(p, n, nSz); + assert_nc( nSz>=0 ); + *pnSz = nSz/2; + *pbDel = nSz & 0x0001; + return n; +} + +/* +** Fts5SegIter.iLeafOffset currently points to the first byte of a +** position-list size field. Read the value of the field and store it +** in the following variables: +** +** Fts5SegIter.nPos +** Fts5SegIter.bDel +** +** Leave Fts5SegIter.iLeafOffset pointing to the first byte of the +** position list content (if any). +*/ +static void fts5SegIterLoadNPos(Fts5Index *p, Fts5SegIter *pIter){ + if( p->rc==SQLITE_OK ){ + int iOff = pIter->iLeafOffset; /* Offset to read at */ + int nSz; + ASSERT_SZLEAF_OK(pIter->pLeaf); + fts5FastGetVarint32(pIter->pLeaf->p, iOff, nSz); + pIter->bDel = (nSz & 0x0001); + pIter->nPos = nSz>>1; + pIter->iLeafOffset = iOff; + } +} + +static void fts5SegIterLoadRowid(Fts5Index *p, Fts5SegIter *pIter){ + u8 *a = pIter->pLeaf->p; /* Buffer to read data from */ + int iOff = pIter->iLeafOffset; + + ASSERT_SZLEAF_OK(pIter->pLeaf); + if( iOff>=pIter->pLeaf->szLeaf ){ + fts5SegIterNextPage(p, pIter); + if( pIter->pLeaf==0 ){ + if( p->rc==SQLITE_OK ) p->rc = FTS5_CORRUPT; + return; + } + iOff = 4; + a = pIter->pLeaf->p; + } + iOff += sqlite3Fts5GetVarint(&a[iOff], (u64*)&pIter->iRowid); + pIter->iLeafOffset = iOff; +} + +/* +** Fts5SegIter.iLeafOffset currently points to the first byte of the +** "nSuffix" field of a term. Function parameter nKeep contains the value +** of the "nPrefix" field (if there was one - it is passed 0 if this is +** the first term in the segment). +** +** This function populates: +** +** Fts5SegIter.term +** Fts5SegIter.rowid +** +** accordingly and leaves (Fts5SegIter.iLeafOffset) set to the content of +** the first position list. The position list belonging to document +** (Fts5SegIter.iRowid). +*/ +static void fts5SegIterLoadTerm(Fts5Index *p, Fts5SegIter *pIter, int nKeep){ + u8 *a = pIter->pLeaf->p; /* Buffer to read data from */ + int iOff = pIter->iLeafOffset; /* Offset to read at */ + int nNew; /* Bytes of new data */ + + iOff += fts5GetVarint32(&a[iOff], nNew); + pIter->term.n = nKeep; + fts5BufferAppendBlob(&p->rc, &pIter->term, nNew, &a[iOff]); + iOff += nNew; + pIter->iTermLeafOffset = iOff; + pIter->iTermLeafPgno = pIter->iLeafPgno; + pIter->iLeafOffset = iOff; + + if( pIter->iPgidxOff>=pIter->pLeaf->nn ){ + pIter->iEndofDoclist = pIter->pLeaf->nn+1; + }else{ + int nExtra; + pIter->iPgidxOff += fts5GetVarint32(&a[pIter->iPgidxOff], nExtra); + pIter->iEndofDoclist += nExtra; + } + + fts5SegIterLoadRowid(p, pIter); +} + +/* +** Initialize the iterator object pIter to iterate through the entries in +** segment pSeg. The iterator is left pointing to the first entry when +** this function returns. +** +** If an error occurs, Fts5Index.rc is set to an appropriate error code. If +** an error has already occurred when this function is called, it is a no-op. +*/ +static void fts5SegIterInit( + Fts5Index *p, /* FTS index object */ + Fts5StructureSegment *pSeg, /* Description of segment */ + Fts5SegIter *pIter /* Object to populate */ +){ + if( pSeg->pgnoFirst==0 ){ + /* This happens if the segment is being used as an input to an incremental + ** merge and all data has already been "trimmed". See function + ** fts5TrimSegments() for details. In this case leave the iterator empty. + ** The caller will see the (pIter->pLeaf==0) and assume the iterator is + ** at EOF already. */ + assert( pIter->pLeaf==0 ); + return; + } + + if( p->rc==SQLITE_OK ){ + memset(pIter, 0, sizeof(*pIter)); + pIter->pSeg = pSeg; + pIter->iLeafPgno = pSeg->pgnoFirst-1; + fts5SegIterNextPage(p, pIter); + } + + if( p->rc==SQLITE_OK ){ + pIter->iLeafOffset = 4; + assert_nc( pIter->pLeaf->nn>4 ); + assert( fts5LeafFirstTermOff(pIter->pLeaf)==4 ); + pIter->iPgidxOff = pIter->pLeaf->szLeaf+1; + fts5SegIterLoadTerm(p, pIter, 0); + fts5SegIterLoadNPos(p, pIter); + } +} + +/* +** This function is only ever called on iterators created by calls to +** Fts5IndexQuery() with the FTS5INDEX_QUERY_DESC flag set. +** +** The iterator is in an unusual state when this function is called: the +** Fts5SegIter.iLeafOffset variable is set to the offset of the start of +** the position-list size field for the first relevant rowid on the page. +** Fts5SegIter.rowid is set, but nPos and bDel are not. +** +** This function advances the iterator so that it points to the last +** relevant rowid on the page and, if necessary, initializes the +** aRowidOffset[] and iRowidOffset variables. At this point the iterator +** is in its regular state - Fts5SegIter.iLeafOffset points to the first +** byte of the position list content associated with said rowid. +*/ +static void fts5SegIterReverseInitPage(Fts5Index *p, Fts5SegIter *pIter){ + int n = pIter->pLeaf->szLeaf; + int i = pIter->iLeafOffset; + u8 *a = pIter->pLeaf->p; + int iRowidOffset = 0; + + if( n>pIter->iEndofDoclist ){ + n = pIter->iEndofDoclist; + } + + ASSERT_SZLEAF_OK(pIter->pLeaf); + while( 1 ){ + i64 iDelta = 0; + int nPos; + int bDummy; + + i += fts5GetPoslistSize(&a[i], &nPos, &bDummy); + i += nPos; + if( i>=n ) break; + i += fts5GetVarint(&a[i], (u64*)&iDelta); + pIter->iRowid += iDelta; + + if( iRowidOffset>=pIter->nRowidOffset ){ + int nNew = pIter->nRowidOffset + 8; + int *aNew = (int*)sqlite3_realloc(pIter->aRowidOffset, nNew*sizeof(int)); + if( aNew==0 ){ + p->rc = SQLITE_NOMEM; + break; + } + pIter->aRowidOffset = aNew; + pIter->nRowidOffset = nNew; + } + + pIter->aRowidOffset[iRowidOffset++] = pIter->iLeafOffset; + pIter->iLeafOffset = i; + } + pIter->iRowidOffset = iRowidOffset; + fts5SegIterLoadNPos(p, pIter); +} + +/* +** +*/ +static void fts5SegIterReverseNewPage(Fts5Index *p, Fts5SegIter *pIter){ + assert( pIter->flags & FTS5_SEGITER_REVERSE ); + assert( pIter->flags & FTS5_SEGITER_ONETERM ); + + fts5DataRelease(pIter->pLeaf); + pIter->pLeaf = 0; + while( p->rc==SQLITE_OK && pIter->iLeafPgno>pIter->iTermLeafPgno ){ + Fts5Data *pNew; + pIter->iLeafPgno--; + pNew = fts5DataRead(p, FTS5_SEGMENT_ROWID( + pIter->pSeg->iSegid, pIter->iLeafPgno + )); + if( pNew ){ + /* iTermLeafOffset may be equal to szLeaf if the term is the last + ** thing on the page - i.e. the first rowid is on the following page. + ** In this case leaf pIter->pLeaf==0, this iterator is at EOF. */ + if( pIter->iLeafPgno==pIter->iTermLeafPgno + && pIter->iTermLeafOffsetszLeaf + ){ + pIter->pLeaf = pNew; + pIter->iLeafOffset = pIter->iTermLeafOffset; + }else{ + int iRowidOff; + iRowidOff = fts5LeafFirstRowidOff(pNew); + if( iRowidOff ){ + pIter->pLeaf = pNew; + pIter->iLeafOffset = iRowidOff; + } + } + + if( pIter->pLeaf ){ + u8 *a = &pIter->pLeaf->p[pIter->iLeafOffset]; + pIter->iLeafOffset += fts5GetVarint(a, (u64*)&pIter->iRowid); + break; + }else{ + fts5DataRelease(pNew); + } + } + } + + if( pIter->pLeaf ){ + pIter->iEndofDoclist = pIter->pLeaf->nn+1; + fts5SegIterReverseInitPage(p, pIter); + } +} + +/* +** Return true if the iterator passed as the second argument currently +** points to a delete marker. A delete marker is an entry with a 0 byte +** position-list. +*/ +static int fts5MultiIterIsEmpty(Fts5Index *p, Fts5IndexIter *pIter){ + Fts5SegIter *pSeg = &pIter->aSeg[pIter->aFirst[1].iFirst]; + return (p->rc==SQLITE_OK && pSeg->pLeaf && pSeg->nPos==0); +} + +/* +** Advance iterator pIter to the next entry. +** +** If an error occurs, Fts5Index.rc is set to an appropriate error code. It +** is not considered an error if the iterator reaches EOF. If an error has +** already occurred when this function is called, it is a no-op. +*/ +static void fts5SegIterNext( + Fts5Index *p, /* FTS5 backend object */ + Fts5SegIter *pIter, /* Iterator to advance */ + int *pbNewTerm /* OUT: Set for new term */ +){ + assert( pbNewTerm==0 || *pbNewTerm==0 ); + if( p->rc==SQLITE_OK ){ + if( pIter->flags & FTS5_SEGITER_REVERSE ){ + assert( pIter->pNextLeaf==0 ); + if( pIter->iRowidOffset>0 ){ + u8 *a = pIter->pLeaf->p; + int iOff; + int nPos; + int bDummy; + i64 iDelta; + + pIter->iRowidOffset--; + pIter->iLeafOffset = iOff = pIter->aRowidOffset[pIter->iRowidOffset]; + iOff += fts5GetPoslistSize(&a[iOff], &nPos, &bDummy); + iOff += nPos; + fts5GetVarint(&a[iOff], (u64*)&iDelta); + pIter->iRowid -= iDelta; + fts5SegIterLoadNPos(p, pIter); + }else{ + fts5SegIterReverseNewPage(p, pIter); + } + }else{ + Fts5Data *pLeaf = pIter->pLeaf; + int iOff; + int bNewTerm = 0; + int nKeep = 0; + + /* Search for the end of the position list within the current page. */ + u8 *a = pLeaf->p; + int n = pLeaf->szLeaf; + + ASSERT_SZLEAF_OK(pLeaf); + iOff = pIter->iLeafOffset + pIter->nPos; + + if( iOffiEndofDoclist ); + if( iOff>=pIter->iEndofDoclist ){ + bNewTerm = 1; + if( iOff!=fts5LeafFirstTermOff(pLeaf) ){ + iOff += fts5GetVarint32(&a[iOff], nKeep); + } + }else{ + u64 iDelta; + iOff += sqlite3Fts5GetVarint(&a[iOff], &iDelta); + pIter->iRowid += iDelta; + assert_nc( iDelta>0 ); + } + pIter->iLeafOffset = iOff; + + }else if( pIter->pSeg==0 ){ + const u8 *pList = 0; + const char *zTerm = 0; + int nList = 0; + if( 0==(pIter->flags & FTS5_SEGITER_ONETERM) ){ + sqlite3Fts5HashScanNext(p->pHash); + sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &pList, &nList); + } + if( pList==0 ){ + fts5DataRelease(pIter->pLeaf); + pIter->pLeaf = 0; + }else{ + pIter->pLeaf->p = (u8*)pList; + pIter->pLeaf->nn = nList; + pIter->pLeaf->szLeaf = nList; + pIter->iEndofDoclist = nList+1; + sqlite3Fts5BufferSet(&p->rc, &pIter->term, strlen(zTerm), (u8*)zTerm); + pIter->iLeafOffset = fts5GetVarint(pList, (u64*)&pIter->iRowid); + if( pbNewTerm ) *pbNewTerm = 1; + } + }else{ + iOff = 0; + /* Next entry is not on the current page */ + while( iOff==0 ){ + fts5SegIterNextPage(p, pIter); + pLeaf = pIter->pLeaf; + if( pLeaf==0 ) break; + ASSERT_SZLEAF_OK(pLeaf); + if( (iOff = fts5LeafFirstRowidOff(pLeaf)) && iOffszLeaf ){ + iOff += sqlite3Fts5GetVarint(&pLeaf->p[iOff], (u64*)&pIter->iRowid); + pIter->iLeafOffset = iOff; + + if( pLeaf->nn>pLeaf->szLeaf ){ + pIter->iPgidxOff = pLeaf->szLeaf + fts5GetVarint32( + &pLeaf->p[pLeaf->szLeaf], pIter->iEndofDoclist + ); + } + + } + else if( pLeaf->nn>pLeaf->szLeaf ){ + pIter->iPgidxOff = pLeaf->szLeaf + fts5GetVarint32( + &pLeaf->p[pLeaf->szLeaf], iOff + ); + pIter->iLeafOffset = iOff; + pIter->iEndofDoclist = iOff; + bNewTerm = 1; + } + if( iOff>=pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + return; + } + } + } + + /* Check if the iterator is now at EOF. If so, return early. */ + if( pIter->pLeaf ){ + if( bNewTerm ){ + if( pIter->flags & FTS5_SEGITER_ONETERM ){ + fts5DataRelease(pIter->pLeaf); + pIter->pLeaf = 0; + }else{ + fts5SegIterLoadTerm(p, pIter, nKeep); + fts5SegIterLoadNPos(p, pIter); + if( pbNewTerm ) *pbNewTerm = 1; + } + }else{ + fts5SegIterLoadNPos(p, pIter); + } + } + } + } +} + +#define SWAPVAL(T, a, b) { T tmp; tmp=a; a=b; b=tmp; } + +/* +** Iterator pIter currently points to the first rowid in a doclist. This +** function sets the iterator up so that iterates in reverse order through +** the doclist. +*/ +static void fts5SegIterReverse(Fts5Index *p, Fts5SegIter *pIter){ + Fts5DlidxIter *pDlidx = pIter->pDlidx; + Fts5Data *pLast = 0; + int pgnoLast = 0; + + if( pDlidx ){ + int iSegid = pIter->pSeg->iSegid; + pgnoLast = fts5DlidxIterPgno(pDlidx); + pLast = fts5DataRead(p, FTS5_SEGMENT_ROWID(iSegid, pgnoLast)); + }else{ + Fts5Data *pLeaf = pIter->pLeaf; /* Current leaf data */ + + /* Currently, Fts5SegIter.iLeafOffset points to the first byte of + ** position-list content for the current rowid. Back it up so that it + ** points to the start of the position-list size field. */ + pIter->iLeafOffset -= sqlite3Fts5GetVarintLen(pIter->nPos*2+pIter->bDel); + + /* If this condition is true then the largest rowid for the current + ** term may not be stored on the current page. So search forward to + ** see where said rowid really is. */ + if( pIter->iEndofDoclist>=pLeaf->szLeaf ){ + int pgno; + Fts5StructureSegment *pSeg = pIter->pSeg; + + /* The last rowid in the doclist may not be on the current page. Search + ** forward to find the page containing the last rowid. */ + for(pgno=pIter->iLeafPgno+1; !p->rc && pgno<=pSeg->pgnoLast; pgno++){ + i64 iAbs = FTS5_SEGMENT_ROWID(pSeg->iSegid, pgno); + Fts5Data *pNew = fts5DataRead(p, iAbs); + if( pNew ){ + int iRowid, bTermless; + iRowid = fts5LeafFirstRowidOff(pNew); + bTermless = fts5LeafIsTermless(pNew); + if( iRowid ){ + SWAPVAL(Fts5Data*, pNew, pLast); + pgnoLast = pgno; + } + fts5DataRelease(pNew); + if( bTermless==0 ) break; + } + } + } + } + + /* If pLast is NULL at this point, then the last rowid for this doclist + ** lies on the page currently indicated by the iterator. In this case + ** pIter->iLeafOffset is already set to point to the position-list size + ** field associated with the first relevant rowid on the page. + ** + ** Or, if pLast is non-NULL, then it is the page that contains the last + ** rowid. In this case configure the iterator so that it points to the + ** first rowid on this page. + */ + if( pLast ){ + int iOff; + fts5DataRelease(pIter->pLeaf); + pIter->pLeaf = pLast; + pIter->iLeafPgno = pgnoLast; + iOff = fts5LeafFirstRowidOff(pLast); + iOff += fts5GetVarint(&pLast->p[iOff], (u64*)&pIter->iRowid); + pIter->iLeafOffset = iOff; + + if( fts5LeafIsTermless(pLast) ){ + pIter->iEndofDoclist = pLast->nn+1; + }else{ + pIter->iEndofDoclist = fts5LeafFirstTermOff(pLast); + } + + } + + fts5SegIterReverseInitPage(p, pIter); +} + +/* +** Iterator pIter currently points to the first rowid of a doclist. +** There is a doclist-index associated with the final term on the current +** page. If the current term is the last term on the page, load the +** doclist-index from disk and initialize an iterator at (pIter->pDlidx). +*/ +static void fts5SegIterLoadDlidx(Fts5Index *p, Fts5SegIter *pIter){ + int iSeg = pIter->pSeg->iSegid; + int bRev = (pIter->flags & FTS5_SEGITER_REVERSE); + Fts5Data *pLeaf = pIter->pLeaf; /* Current leaf data */ + + assert( pIter->flags & FTS5_SEGITER_ONETERM ); + assert( pIter->pDlidx==0 ); + + /* Check if the current doclist ends on this page. If it does, return + ** early without loading the doclist-index (as it belongs to a different + ** term. */ + if( pIter->iTermLeafPgno==pIter->iLeafPgno + && pIter->iEndofDoclistszLeaf + ){ + return; + } + + pIter->pDlidx = fts5DlidxIterInit(p, bRev, iSeg, pIter->iTermLeafPgno); +} + +#define fts5IndexSkipVarint(a, iOff) { \ + int iEnd = iOff+9; \ + while( (a[iOff++] & 0x80) && iOff= search */ + Fts5SegIter *pIter, /* Iterator to seek */ + const u8 *pTerm, int nTerm /* Term to search for */ +){ + int iOff; + const u8 *a = pIter->pLeaf->p; + int szLeaf = pIter->pLeaf->szLeaf; + int n = pIter->pLeaf->nn; + + int nMatch = 0; + int nKeep = 0; + int nNew = 0; + int iTermOff; + int iPgidx; /* Current offset in pgidx */ + int bEndOfPage = 0; + + assert( p->rc==SQLITE_OK ); + + iPgidx = szLeaf; + iPgidx += fts5GetVarint32(&a[iPgidx], iTermOff); + iOff = iTermOff; + + while( 1 ){ + + /* Figure out how many new bytes are in this term */ + fts5FastGetVarint32(a, iOff, nNew); + if( nKeep=nMatch ); + if( nKeep==nMatch ){ + int nCmp; + int i; + nCmp = MIN(nNew, nTerm-nMatch); + for(i=0; ipTerm[nMatch] ){ + goto search_failed; + } + } + + if( iPgidx>=n ){ + bEndOfPage = 1; + break; + } + + iPgidx += fts5GetVarint32(&a[iPgidx], nKeep); + iTermOff += nKeep; + iOff = iTermOff; + + /* Read the nKeep field of the next term. */ + fts5FastGetVarint32(a, iOff, nKeep); + } + + search_failed: + if( bGe==0 ){ + fts5DataRelease(pIter->pLeaf); + pIter->pLeaf = 0; + return; + }else if( bEndOfPage ){ + do { + fts5SegIterNextPage(p, pIter); + if( pIter->pLeaf==0 ) return; + a = pIter->pLeaf->p; + if( fts5LeafIsTermless(pIter->pLeaf)==0 ){ + fts5GetVarint32(&pIter->pLeaf->p[pIter->pLeaf->szLeaf], iOff); + if( iOff<4 || iOff>=pIter->pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + }else{ + nKeep = 0; + iOff += fts5GetVarint32(&a[iOff], nNew); + break; + } + } + }while( 1 ); + } + + search_success: + + pIter->iLeafOffset = iOff + nNew; + pIter->iTermLeafOffset = pIter->iLeafOffset; + pIter->iTermLeafPgno = pIter->iLeafPgno; + + fts5BufferSet(&p->rc, &pIter->term, nKeep, pTerm); + fts5BufferAppendBlob(&p->rc, &pIter->term, nNew, &a[iOff]); + + if( iPgidx>=n ){ + pIter->iEndofDoclist = pIter->pLeaf->nn+1; + }else{ + int nExtra; + iPgidx += fts5GetVarint32(&a[iPgidx], nExtra); + pIter->iEndofDoclist = iTermOff + nExtra; + } + pIter->iPgidxOff = iPgidx; + + fts5SegIterLoadRowid(p, pIter); + fts5SegIterLoadNPos(p, pIter); +} + +/* +** Initialize the object pIter to point to term pTerm/nTerm within segment +** pSeg. If there is no such term in the index, the iterator is set to EOF. +** +** If an error occurs, Fts5Index.rc is set to an appropriate error code. If +** an error has already occurred when this function is called, it is a no-op. +*/ +static void fts5SegIterSeekInit( + Fts5Index *p, /* FTS5 backend */ + Fts5Buffer *pBuf, /* Buffer to use for loading pages */ + const u8 *pTerm, int nTerm, /* Term to seek to */ + int flags, /* Mask of FTS5INDEX_XXX flags */ + Fts5StructureSegment *pSeg, /* Description of segment */ + Fts5SegIter *pIter /* Object to populate */ +){ + int iPg = 1; + int bGe = (flags & FTS5INDEX_QUERY_SCAN); + int bDlidx = 0; /* True if there is a doclist-index */ + + static int nCall = 0; + nCall++; + + assert( bGe==0 || (flags & FTS5INDEX_QUERY_DESC)==0 ); + assert( pTerm && nTerm ); + memset(pIter, 0, sizeof(*pIter)); + pIter->pSeg = pSeg; + + /* This block sets stack variable iPg to the leaf page number that may + ** contain term (pTerm/nTerm), if it is present in the segment. */ + if( p->pIdxSelect==0 ){ + Fts5Config *pConfig = p->pConfig; + fts5IndexPrepareStmt(p, &p->pIdxSelect, sqlite3_mprintf( + "SELECT pgno FROM '%q'.'%q_idx' WHERE " + "segid=? AND term<=? ORDER BY term DESC LIMIT 1", + pConfig->zDb, pConfig->zName + )); + } + if( p->rc ) return; + sqlite3_bind_int(p->pIdxSelect, 1, pSeg->iSegid); + sqlite3_bind_blob(p->pIdxSelect, 2, pTerm, nTerm, SQLITE_STATIC); + if( SQLITE_ROW==sqlite3_step(p->pIdxSelect) ){ + i64 val = sqlite3_column_int(p->pIdxSelect, 0); + iPg = (int)(val>>1); + bDlidx = (val & 0x0001); + } + p->rc = sqlite3_reset(p->pIdxSelect); + + if( iPgpgnoFirst ){ + iPg = pSeg->pgnoFirst; + bDlidx = 0; + } + + pIter->iLeafPgno = iPg - 1; + fts5SegIterNextPage(p, pIter); + + if( pIter->pLeaf ){ + fts5LeafSeek(p, bGe, pIter, pTerm, nTerm); + } + + if( p->rc==SQLITE_OK && bGe==0 ){ + pIter->flags |= FTS5_SEGITER_ONETERM; + if( pIter->pLeaf ){ + if( flags & FTS5INDEX_QUERY_DESC ){ + pIter->flags |= FTS5_SEGITER_REVERSE; + } + if( bDlidx ){ + fts5SegIterLoadDlidx(p, pIter); + } + if( flags & FTS5INDEX_QUERY_DESC ){ + fts5SegIterReverse(p, pIter); + } + } + } + + /* Either: + ** + ** 1) an error has occurred, or + ** 2) the iterator points to EOF, or + ** 3) the iterator points to an entry with term (pTerm/nTerm), or + ** 4) the FTS5INDEX_QUERY_SCAN flag was set and the iterator points + ** to an entry with a term greater than or equal to (pTerm/nTerm). + */ + assert( p->rc!=SQLITE_OK /* 1 */ + || pIter->pLeaf==0 /* 2 */ + || fts5BufferCompareBlob(&pIter->term, pTerm, nTerm)==0 /* 3 */ + || (bGe && fts5BufferCompareBlob(&pIter->term, pTerm, nTerm)>0) /* 4 */ + ); +} + +/* +** Initialize the object pIter to point to term pTerm/nTerm within the +** in-memory hash table. If there is no such term in the hash-table, the +** iterator is set to EOF. +** +** If an error occurs, Fts5Index.rc is set to an appropriate error code. If +** an error has already occurred when this function is called, it is a no-op. +*/ +static void fts5SegIterHashInit( + Fts5Index *p, /* FTS5 backend */ + const u8 *pTerm, int nTerm, /* Term to seek to */ + int flags, /* Mask of FTS5INDEX_XXX flags */ + Fts5SegIter *pIter /* Object to populate */ +){ + const u8 *pList = 0; + int nList = 0; + const u8 *z = 0; + int n = 0; + + assert( p->pHash ); + assert( p->rc==SQLITE_OK ); + + if( pTerm==0 || (flags & FTS5INDEX_QUERY_SCAN) ){ + p->rc = sqlite3Fts5HashScanInit(p->pHash, (const char*)pTerm, nTerm); + sqlite3Fts5HashScanEntry(p->pHash, (const char**)&z, &pList, &nList); + n = (z ? strlen((const char*)z) : 0); + }else{ + pIter->flags |= FTS5_SEGITER_ONETERM; + sqlite3Fts5HashQuery(p->pHash, (const char*)pTerm, nTerm, &pList, &nList); + z = pTerm; + n = nTerm; + } + + if( pList ){ + Fts5Data *pLeaf; + sqlite3Fts5BufferSet(&p->rc, &pIter->term, n, z); + pLeaf = fts5IdxMalloc(p, sizeof(Fts5Data)); + if( pLeaf==0 ) return; + pLeaf->p = (u8*)pList; + pLeaf->nn = pLeaf->szLeaf = nList; + pIter->pLeaf = pLeaf; + pIter->iLeafOffset = fts5GetVarint(pLeaf->p, (u64*)&pIter->iRowid); + pIter->iEndofDoclist = pLeaf->nn+1; + + if( flags & FTS5INDEX_QUERY_DESC ){ + pIter->flags |= FTS5_SEGITER_REVERSE; + fts5SegIterReverseInitPage(p, pIter); + }else{ + fts5SegIterLoadNPos(p, pIter); + } + } +} + +/* +** Zero the iterator passed as the only argument. +*/ +static void fts5SegIterClear(Fts5SegIter *pIter){ + fts5BufferFree(&pIter->term); + fts5DataRelease(pIter->pLeaf); + fts5DataRelease(pIter->pNextLeaf); + fts5DlidxIterFree(pIter->pDlidx); + sqlite3_free(pIter->aRowidOffset); + memset(pIter, 0, sizeof(Fts5SegIter)); +} + +#ifdef SQLITE_DEBUG + +/* +** This function is used as part of the big assert() procedure implemented by +** fts5AssertMultiIterSetup(). It ensures that the result currently stored +** in *pRes is the correct result of comparing the current positions of the +** two iterators. +*/ +static void fts5AssertComparisonResult( + Fts5IndexIter *pIter, + Fts5SegIter *p1, + Fts5SegIter *p2, + Fts5CResult *pRes +){ + int i1 = p1 - pIter->aSeg; + int i2 = p2 - pIter->aSeg; + + if( p1->pLeaf || p2->pLeaf ){ + if( p1->pLeaf==0 ){ + assert( pRes->iFirst==i2 ); + }else if( p2->pLeaf==0 ){ + assert( pRes->iFirst==i1 ); + }else{ + int nMin = MIN(p1->term.n, p2->term.n); + int res = memcmp(p1->term.p, p2->term.p, nMin); + if( res==0 ) res = p1->term.n - p2->term.n; + + if( res==0 ){ + assert( pRes->bTermEq==1 ); + assert( p1->iRowid!=p2->iRowid ); + res = ((p1->iRowid > p2->iRowid)==pIter->bRev) ? -1 : 1; + }else{ + assert( pRes->bTermEq==0 ); + } + + if( res<0 ){ + assert( pRes->iFirst==i1 ); + }else{ + assert( pRes->iFirst==i2 ); + } + } + } +} + +/* +** This function is a no-op unless SQLITE_DEBUG is defined when this module +** is compiled. In that case, this function is essentially an assert() +** statement used to verify that the contents of the pIter->aFirst[] array +** are correct. +*/ +static void fts5AssertMultiIterSetup(Fts5Index *p, Fts5IndexIter *pIter){ + if( p->rc==SQLITE_OK ){ + Fts5SegIter *pFirst = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + int i; + + assert( (pFirst->pLeaf==0)==pIter->bEof ); + + /* Check that pIter->iSwitchRowid is set correctly. */ + for(i=0; inSeg; i++){ + Fts5SegIter *p1 = &pIter->aSeg[i]; + assert( p1==pFirst + || p1->pLeaf==0 + || fts5BufferCompare(&pFirst->term, &p1->term) + || p1->iRowid==pIter->iSwitchRowid + || (p1->iRowidiSwitchRowid)==pIter->bRev + ); + } + + for(i=0; inSeg; i+=2){ + Fts5SegIter *p1 = &pIter->aSeg[i]; + Fts5SegIter *p2 = &pIter->aSeg[i+1]; + Fts5CResult *pRes = &pIter->aFirst[(pIter->nSeg + i) / 2]; + fts5AssertComparisonResult(pIter, p1, p2, pRes); + } + + for(i=1; i<(pIter->nSeg / 2); i+=2){ + Fts5SegIter *p1 = &pIter->aSeg[ pIter->aFirst[i*2].iFirst ]; + Fts5SegIter *p2 = &pIter->aSeg[ pIter->aFirst[i*2+1].iFirst ]; + Fts5CResult *pRes = &pIter->aFirst[i]; + fts5AssertComparisonResult(pIter, p1, p2, pRes); + } + } +} +#else +# define fts5AssertMultiIterSetup(x,y) +#endif + +/* +** Do the comparison necessary to populate pIter->aFirst[iOut]. +** +** If the returned value is non-zero, then it is the index of an entry +** in the pIter->aSeg[] array that is (a) not at EOF, and (b) pointing +** to a key that is a duplicate of another, higher priority, +** segment-iterator in the pSeg->aSeg[] array. +*/ +static int fts5MultiIterDoCompare(Fts5IndexIter *pIter, int iOut){ + int i1; /* Index of left-hand Fts5SegIter */ + int i2; /* Index of right-hand Fts5SegIter */ + int iRes; + Fts5SegIter *p1; /* Left-hand Fts5SegIter */ + Fts5SegIter *p2; /* Right-hand Fts5SegIter */ + Fts5CResult *pRes = &pIter->aFirst[iOut]; + + assert( iOutnSeg && iOut>0 ); + assert( pIter->bRev==0 || pIter->bRev==1 ); + + if( iOut>=(pIter->nSeg/2) ){ + i1 = (iOut - pIter->nSeg/2) * 2; + i2 = i1 + 1; + }else{ + i1 = pIter->aFirst[iOut*2].iFirst; + i2 = pIter->aFirst[iOut*2+1].iFirst; + } + p1 = &pIter->aSeg[i1]; + p2 = &pIter->aSeg[i2]; + + pRes->bTermEq = 0; + if( p1->pLeaf==0 ){ /* If p1 is at EOF */ + iRes = i2; + }else if( p2->pLeaf==0 ){ /* If p2 is at EOF */ + iRes = i1; + }else{ + int res = fts5BufferCompare(&p1->term, &p2->term); + if( res==0 ){ + assert( i2>i1 ); + assert( i2!=0 ); + pRes->bTermEq = 1; + if( p1->iRowid==p2->iRowid ){ + p1->bDel = p2->bDel; + return i2; + } + res = ((p1->iRowid > p2->iRowid)==pIter->bRev) ? -1 : +1; + } + assert( res!=0 ); + if( res<0 ){ + iRes = i1; + }else{ + iRes = i2; + } + } + + pRes->iFirst = iRes; + return 0; +} + +/* +** Move the seg-iter so that it points to the first rowid on page iLeafPgno. +** It is an error if leaf iLeafPgno does not exist or contains no rowids. +*/ +static void fts5SegIterGotoPage( + Fts5Index *p, /* FTS5 backend object */ + Fts5SegIter *pIter, /* Iterator to advance */ + int iLeafPgno +){ + assert( iLeafPgno>pIter->iLeafPgno ); + + if( iLeafPgno>pIter->pSeg->pgnoLast ){ + p->rc = FTS5_CORRUPT; + }else{ + fts5DataRelease(pIter->pNextLeaf); + pIter->pNextLeaf = 0; + pIter->iLeafPgno = iLeafPgno-1; + fts5SegIterNextPage(p, pIter); + assert( p->rc!=SQLITE_OK || pIter->iLeafPgno==iLeafPgno ); + + if( p->rc==SQLITE_OK ){ + int iOff; + u8 *a = pIter->pLeaf->p; + int n = pIter->pLeaf->szLeaf; + + iOff = fts5LeafFirstRowidOff(pIter->pLeaf); + if( iOff<4 || iOff>=n ){ + p->rc = FTS5_CORRUPT; + }else{ + iOff += fts5GetVarint(&a[iOff], (u64*)&pIter->iRowid); + pIter->iLeafOffset = iOff; + fts5SegIterLoadNPos(p, pIter); + } + } + } +} + +/* +** Advance the iterator passed as the second argument until it is at or +** past rowid iFrom. Regardless of the value of iFrom, the iterator is +** always advanced at least once. +*/ +static void fts5SegIterNextFrom( + Fts5Index *p, /* FTS5 backend object */ + Fts5SegIter *pIter, /* Iterator to advance */ + i64 iMatch /* Advance iterator at least this far */ +){ + int bRev = (pIter->flags & FTS5_SEGITER_REVERSE); + Fts5DlidxIter *pDlidx = pIter->pDlidx; + int iLeafPgno = pIter->iLeafPgno; + int bMove = 1; + + assert( pIter->flags & FTS5_SEGITER_ONETERM ); + assert( pIter->pDlidx ); + assert( pIter->pLeaf ); + + if( bRev==0 ){ + while( !fts5DlidxIterEof(p, pDlidx) && iMatch>fts5DlidxIterRowid(pDlidx) ){ + iLeafPgno = fts5DlidxIterPgno(pDlidx); + fts5DlidxIterNext(p, pDlidx); + } + assert_nc( iLeafPgno>=pIter->iLeafPgno || p->rc ); + if( iLeafPgno>pIter->iLeafPgno ){ + fts5SegIterGotoPage(p, pIter, iLeafPgno); + bMove = 0; + } + }else{ + assert( pIter->pNextLeaf==0 ); + assert( iMatchiRowid ); + while( !fts5DlidxIterEof(p, pDlidx) && iMatchiLeafPgno ); + + if( iLeafPgnoiLeafPgno ){ + pIter->iLeafPgno = iLeafPgno+1; + fts5SegIterReverseNewPage(p, pIter); + bMove = 0; + } + } + + do{ + if( bMove ) fts5SegIterNext(p, pIter, 0); + if( pIter->pLeaf==0 ) break; + if( bRev==0 && pIter->iRowid>=iMatch ) break; + if( bRev!=0 && pIter->iRowid<=iMatch ) break; + bMove = 1; + }while( p->rc==SQLITE_OK ); +} + + +/* +** Free the iterator object passed as the second argument. +*/ +static void fts5MultiIterFree(Fts5Index *p, Fts5IndexIter *pIter){ + if( pIter ){ + int i; + for(i=0; inSeg; i++){ + fts5SegIterClear(&pIter->aSeg[i]); + } + fts5StructureRelease(pIter->pStruct); + fts5BufferFree(&pIter->poslist); + sqlite3_free(pIter); + } +} + +static void fts5MultiIterAdvanced( + Fts5Index *p, /* FTS5 backend to iterate within */ + Fts5IndexIter *pIter, /* Iterator to update aFirst[] array for */ + int iChanged, /* Index of sub-iterator just advanced */ + int iMinset /* Minimum entry in aFirst[] to set */ +){ + int i; + for(i=(pIter->nSeg+iChanged)/2; i>=iMinset && p->rc==SQLITE_OK; i=i/2){ + int iEq; + if( (iEq = fts5MultiIterDoCompare(pIter, i)) ){ + fts5SegIterNext(p, &pIter->aSeg[iEq], 0); + i = pIter->nSeg + iEq; + } + } +} + +/* +** Sub-iterator iChanged of iterator pIter has just been advanced. It still +** points to the same term though - just a different rowid. This function +** attempts to update the contents of the pIter->aFirst[] accordingly. +** If it does so successfully, 0 is returned. Otherwise 1. +** +** If non-zero is returned, the caller should call fts5MultiIterAdvanced() +** on the iterator instead. That function does the same as this one, except +** that it deals with more complicated cases as well. +*/ +static int fts5MultiIterAdvanceRowid( + Fts5Index *p, /* FTS5 backend to iterate within */ + Fts5IndexIter *pIter, /* Iterator to update aFirst[] array for */ + int iChanged /* Index of sub-iterator just advanced */ +){ + Fts5SegIter *pNew = &pIter->aSeg[iChanged]; + + if( pNew->iRowid==pIter->iSwitchRowid + || (pNew->iRowidiSwitchRowid)==pIter->bRev + ){ + int i; + Fts5SegIter *pOther = &pIter->aSeg[iChanged ^ 0x0001]; + pIter->iSwitchRowid = pIter->bRev ? SMALLEST_INT64 : LARGEST_INT64; + for(i=(pIter->nSeg+iChanged)/2; 1; i=i/2){ + Fts5CResult *pRes = &pIter->aFirst[i]; + + assert( pNew->pLeaf ); + assert( pRes->bTermEq==0 || pOther->pLeaf ); + + if( pRes->bTermEq ){ + if( pNew->iRowid==pOther->iRowid ){ + return 1; + }else if( (pOther->iRowid>pNew->iRowid)==pIter->bRev ){ + pIter->iSwitchRowid = pOther->iRowid; + pNew = pOther; + }else if( (pOther->iRowid>pIter->iSwitchRowid)==pIter->bRev ){ + pIter->iSwitchRowid = pOther->iRowid; + } + } + pRes->iFirst = (pNew - pIter->aSeg); + if( i==1 ) break; + + pOther = &pIter->aSeg[ pIter->aFirst[i ^ 0x0001].iFirst ]; + } + } + + return 0; +} + +/* +** Set the pIter->bEof variable based on the state of the sub-iterators. +*/ +static void fts5MultiIterSetEof(Fts5IndexIter *pIter){ + Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + pIter->bEof = pSeg->pLeaf==0; + pIter->iSwitchRowid = pSeg->iRowid; +} + +/* +** Move the iterator to the next entry. +** +** If an error occurs, an error code is left in Fts5Index.rc. It is not +** considered an error if the iterator reaches EOF, or if it is already at +** EOF when this function is called. +*/ +static void fts5MultiIterNext( + Fts5Index *p, + Fts5IndexIter *pIter, + int bFrom, /* True if argument iFrom is valid */ + i64 iFrom /* Advance at least as far as this */ +){ + if( p->rc==SQLITE_OK ){ + int bUseFrom = bFrom; + do { + int iFirst = pIter->aFirst[1].iFirst; + int bNewTerm = 0; + Fts5SegIter *pSeg = &pIter->aSeg[iFirst]; + assert( p->rc==SQLITE_OK ); + if( bUseFrom && pSeg->pDlidx ){ + fts5SegIterNextFrom(p, pSeg, iFrom); + }else{ + fts5SegIterNext(p, pSeg, &bNewTerm); + } + + if( pSeg->pLeaf==0 || bNewTerm + || fts5MultiIterAdvanceRowid(p, pIter, iFirst) + ){ + fts5MultiIterAdvanced(p, pIter, iFirst, 1); + fts5MultiIterSetEof(pIter); + } + fts5AssertMultiIterSetup(p, pIter); + + bUseFrom = 0; + }while( pIter->bSkipEmpty && fts5MultiIterIsEmpty(p, pIter) ); + } +} + +static Fts5IndexIter *fts5MultiIterAlloc( + Fts5Index *p, /* FTS5 backend to iterate within */ + int nSeg +){ + Fts5IndexIter *pNew; + int nSlot; /* Power of two >= nSeg */ + + for(nSlot=2; nSlotaSeg[] */ + sizeof(Fts5CResult) * nSlot /* pNew->aFirst[] */ + ); + if( pNew ){ + pNew->nSeg = nSlot; + pNew->aFirst = (Fts5CResult*)&pNew->aSeg[nSlot]; + pNew->pIndex = p; + } + return pNew; +} + +/* +** Allocate a new Fts5IndexIter object. +** +** The new object will be used to iterate through data in structure pStruct. +** If iLevel is -ve, then all data in all segments is merged. Or, if iLevel +** is zero or greater, data from the first nSegment segments on level iLevel +** is merged. +** +** The iterator initially points to the first term/rowid entry in the +** iterated data. +*/ +static void fts5MultiIterNew( + Fts5Index *p, /* FTS5 backend to iterate within */ + Fts5Structure *pStruct, /* Structure of specific index */ + int bSkipEmpty, /* True to ignore delete-keys */ + int flags, /* FTS5INDEX_QUERY_XXX flags */ + const u8 *pTerm, int nTerm, /* Term to seek to (or NULL/0) */ + int iLevel, /* Level to iterate (-1 for all) */ + int nSegment, /* Number of segments to merge (iLevel>=0) */ + Fts5IndexIter **ppOut /* New object */ +){ + int nSeg = 0; /* Number of segment-iters in use */ + int iIter = 0; /* */ + int iSeg; /* Used to iterate through segments */ + Fts5Buffer buf = {0,0,0}; /* Buffer used by fts5SegIterSeekInit() */ + Fts5StructureLevel *pLvl; + Fts5IndexIter *pNew; + + assert( (pTerm==0 && nTerm==0) || iLevel<0 ); + + /* Allocate space for the new multi-seg-iterator. */ + if( p->rc==SQLITE_OK ){ + if( iLevel<0 ){ + assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) ); + nSeg = pStruct->nSegment; + nSeg += (p->pHash ? 1 : 0); + }else{ + nSeg = MIN(pStruct->aLevel[iLevel].nSeg, nSegment); + } + } + *ppOut = pNew = fts5MultiIterAlloc(p, nSeg); + if( pNew==0 ) return; + pNew->bRev = (0!=(flags & FTS5INDEX_QUERY_DESC)); + pNew->bSkipEmpty = bSkipEmpty; + pNew->pStruct = pStruct; + fts5StructureRef(pStruct); + + /* Initialize each of the component segment iterators. */ + if( iLevel<0 ){ + Fts5StructureLevel *pEnd = &pStruct->aLevel[pStruct->nLevel]; + if( p->pHash ){ + /* Add a segment iterator for the current contents of the hash table. */ + Fts5SegIter *pIter = &pNew->aSeg[iIter++]; + fts5SegIterHashInit(p, pTerm, nTerm, flags, pIter); + } + for(pLvl=&pStruct->aLevel[0]; pLvlnSeg-1; iSeg>=0; iSeg--){ + Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg]; + Fts5SegIter *pIter = &pNew->aSeg[iIter++]; + if( pTerm==0 ){ + fts5SegIterInit(p, pSeg, pIter); + }else{ + fts5SegIterSeekInit(p, &buf, pTerm, nTerm, flags, pSeg, pIter); + } + } + } + }else{ + pLvl = &pStruct->aLevel[iLevel]; + for(iSeg=nSeg-1; iSeg>=0; iSeg--){ + fts5SegIterInit(p, &pLvl->aSeg[iSeg], &pNew->aSeg[iIter++]); + } + } + assert( iIter==nSeg ); + + /* If the above was successful, each component iterators now points + ** to the first entry in its segment. In this case initialize the + ** aFirst[] array. Or, if an error has occurred, free the iterator + ** object and set the output variable to NULL. */ + if( p->rc==SQLITE_OK ){ + for(iIter=pNew->nSeg-1; iIter>0; iIter--){ + int iEq; + if( (iEq = fts5MultiIterDoCompare(pNew, iIter)) ){ + fts5SegIterNext(p, &pNew->aSeg[iEq], 0); + fts5MultiIterAdvanced(p, pNew, iEq, iIter); + } + } + fts5MultiIterSetEof(pNew); + fts5AssertMultiIterSetup(p, pNew); + + if( pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew) ){ + fts5MultiIterNext(p, pNew, 0, 0); + } + }else{ + fts5MultiIterFree(p, pNew); + *ppOut = 0; + } + fts5BufferFree(&buf); +} + +/* +** Create an Fts5IndexIter that iterates through the doclist provided +** as the second argument. +*/ +static void fts5MultiIterNew2( + Fts5Index *p, /* FTS5 backend to iterate within */ + Fts5Data *pData, /* Doclist to iterate through */ + int bDesc, /* True for descending rowid order */ + Fts5IndexIter **ppOut /* New object */ +){ + Fts5IndexIter *pNew; + pNew = fts5MultiIterAlloc(p, 2); + if( pNew ){ + Fts5SegIter *pIter = &pNew->aSeg[1]; + + pNew->bFiltered = 1; + pIter->flags = FTS5_SEGITER_ONETERM; + if( pData->szLeaf>0 ){ + pIter->pLeaf = pData; + pIter->iLeafOffset = fts5GetVarint(pData->p, (u64*)&pIter->iRowid); + pIter->iEndofDoclist = pData->nn; + pNew->aFirst[1].iFirst = 1; + if( bDesc ){ + pNew->bRev = 1; + pIter->flags |= FTS5_SEGITER_REVERSE; + fts5SegIterReverseInitPage(p, pIter); + }else{ + fts5SegIterLoadNPos(p, pIter); + } + pData = 0; + }else{ + pNew->bEof = 1; + } + + *ppOut = pNew; + } + + fts5DataRelease(pData); +} + +/* +** Return true if the iterator is at EOF or if an error has occurred. +** False otherwise. +*/ +static int fts5MultiIterEof(Fts5Index *p, Fts5IndexIter *pIter){ + assert( p->rc + || (pIter->aSeg[ pIter->aFirst[1].iFirst ].pLeaf==0)==pIter->bEof + ); + return (p->rc || pIter->bEof); +} + +/* +** Return the rowid of the entry that the iterator currently points +** to. If the iterator points to EOF when this function is called the +** results are undefined. +*/ +static i64 fts5MultiIterRowid(Fts5IndexIter *pIter){ + assert( pIter->aSeg[ pIter->aFirst[1].iFirst ].pLeaf ); + return pIter->aSeg[ pIter->aFirst[1].iFirst ].iRowid; +} + +/* +** Move the iterator to the next entry at or following iMatch. +*/ +static void fts5MultiIterNextFrom( + Fts5Index *p, + Fts5IndexIter *pIter, + i64 iMatch +){ + while( 1 ){ + i64 iRowid; + fts5MultiIterNext(p, pIter, 1, iMatch); + if( fts5MultiIterEof(p, pIter) ) break; + iRowid = fts5MultiIterRowid(pIter); + if( pIter->bRev==0 && iRowid>=iMatch ) break; + if( pIter->bRev!=0 && iRowid<=iMatch ) break; + } +} + +/* +** Return a pointer to a buffer containing the term associated with the +** entry that the iterator currently points to. +*/ +static const u8 *fts5MultiIterTerm(Fts5IndexIter *pIter, int *pn){ + Fts5SegIter *p = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + *pn = p->term.n; + return p->term.p; +} + +static void fts5ChunkIterate( + Fts5Index *p, /* Index object */ + Fts5SegIter *pSeg, /* Poslist of this iterator */ + void *pCtx, /* Context pointer for xChunk callback */ + void (*xChunk)(Fts5Index*, void*, const u8*, int) +){ + int nRem = pSeg->nPos; /* Number of bytes still to come */ + Fts5Data *pData = 0; + u8 *pChunk = &pSeg->pLeaf->p[pSeg->iLeafOffset]; + int nChunk = MIN(nRem, pSeg->pLeaf->szLeaf - pSeg->iLeafOffset); + int pgno = pSeg->iLeafPgno; + int pgnoSave = 0; + + if( (pSeg->flags & FTS5_SEGITER_REVERSE)==0 ){ + pgnoSave = pgno+1; + } + + while( 1 ){ + xChunk(p, pCtx, pChunk, nChunk); + nRem -= nChunk; + fts5DataRelease(pData); + if( nRem<=0 ){ + break; + }else{ + pgno++; + pData = fts5DataRead(p, FTS5_SEGMENT_ROWID(pSeg->pSeg->iSegid, pgno)); + if( pData==0 ) break; + pChunk = &pData->p[4]; + nChunk = MIN(nRem, pData->szLeaf - 4); + if( pgno==pgnoSave ){ + assert( pSeg->pNextLeaf==0 ); + pSeg->pNextLeaf = pData; + pData = 0; + } + } + } +} + + + +/* +** Allocate a new segment-id for the structure pStruct. The new segment +** id must be between 1 and 65335 inclusive, and must not be used by +** any currently existing segment. If a free segment id cannot be found, +** SQLITE_FULL is returned. +** +** If an error has already occurred, this function is a no-op. 0 is +** returned in this case. +*/ +static int fts5AllocateSegid(Fts5Index *p, Fts5Structure *pStruct){ + int iSegid = 0; + + if( p->rc==SQLITE_OK ){ + if( pStruct->nSegment>=FTS5_MAX_SEGMENT ){ + p->rc = SQLITE_FULL; + }else{ + while( iSegid==0 ){ + int iLvl, iSeg; + sqlite3_randomness(sizeof(u32), (void*)&iSegid); + iSegid = iSegid & ((1 << FTS5_DATA_ID_B)-1); + for(iLvl=0; iLvlnLevel; iLvl++){ + for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){ + if( iSegid==pStruct->aLevel[iLvl].aSeg[iSeg].iSegid ){ + iSegid = 0; + } + } + } + } + } + } + + return iSegid; +} + +/* +** Discard all data currently cached in the hash-tables. +*/ +static void fts5IndexDiscardData(Fts5Index *p){ + assert( p->pHash || p->nPendingData==0 ); + if( p->pHash ){ + sqlite3Fts5HashClear(p->pHash); + p->nPendingData = 0; + } +} + +/* +** Return the size of the prefix, in bytes, that buffer (nNew/pNew) shares +** with buffer (nOld/pOld). +*/ +static int fts5PrefixCompress( + int nOld, const u8 *pOld, + int nNew, const u8 *pNew +){ + int i; + assert( fts5BlobCompare(pOld, nOld, pNew, nNew)<0 ); + for(i=0; inDlidx>0 && pWriter->aDlidx[0].buf.n>0) ); + for(i=0; inDlidx; i++){ + Fts5DlidxWriter *pDlidx = &pWriter->aDlidx[i]; + if( pDlidx->buf.n==0 ) break; + if( bFlush ){ + assert( pDlidx->pgno!=0 ); + fts5DataWrite(p, + FTS5_DLIDX_ROWID(pWriter->iSegid, i, pDlidx->pgno), + pDlidx->buf.p, pDlidx->buf.n + ); + } + sqlite3Fts5BufferZero(&pDlidx->buf); + pDlidx->bPrevValid = 0; + } +} + +/* +** Grow the pWriter->aDlidx[] array to at least nLvl elements in size. +** Any new array elements are zeroed before returning. +*/ +static int fts5WriteDlidxGrow( + Fts5Index *p, + Fts5SegWriter *pWriter, + int nLvl +){ + if( p->rc==SQLITE_OK && nLvl>=pWriter->nDlidx ){ + Fts5DlidxWriter *aDlidx = (Fts5DlidxWriter*)sqlite3_realloc( + pWriter->aDlidx, sizeof(Fts5DlidxWriter) * nLvl + ); + if( aDlidx==0 ){ + p->rc = SQLITE_NOMEM; + }else{ + int nByte = sizeof(Fts5DlidxWriter) * (nLvl - pWriter->nDlidx); + memset(&aDlidx[pWriter->nDlidx], 0, nByte); + pWriter->aDlidx = aDlidx; + pWriter->nDlidx = nLvl; + } + } + return p->rc; +} + +/* +** If the current doclist-index accumulating in pWriter->aDlidx[] is large +** enough, flush it to disk and return 1. Otherwise discard it and return +** zero. +*/ +static int fts5WriteFlushDlidx(Fts5Index *p, Fts5SegWriter *pWriter){ + int bFlag = 0; + + /* If there were FTS5_MIN_DLIDX_SIZE or more empty leaf pages written + ** to the database, also write the doclist-index to disk. */ + if( pWriter->aDlidx[0].buf.n>0 && pWriter->nEmpty>=FTS5_MIN_DLIDX_SIZE ){ + bFlag = 1; + } + fts5WriteDlidxClear(p, pWriter, bFlag); + pWriter->nEmpty = 0; + return bFlag; +} + +/* +** This function is called whenever processing of the doclist for the +** last term on leaf page (pWriter->iBtPage) is completed. +** +** The doclist-index for that term is currently stored in-memory within the +** Fts5SegWriter.aDlidx[] array. If it is large enough, this function +** writes it out to disk. Or, if it is too small to bother with, discards +** it. +** +** Fts5SegWriter.btterm currently contains the first term on page iBtPage. +*/ +static void fts5WriteFlushBtree(Fts5Index *p, Fts5SegWriter *pWriter){ + int bFlag; + + assert( pWriter->iBtPage || pWriter->nEmpty==0 ); + if( pWriter->iBtPage==0 ) return; + bFlag = fts5WriteFlushDlidx(p, pWriter); + + if( p->rc==SQLITE_OK ){ + const char *z = (pWriter->btterm.n>0?(const char*)pWriter->btterm.p:""); + /* The following was already done in fts5WriteInit(): */ + /* sqlite3_bind_int(p->pIdxWriter, 1, pWriter->iSegid); */ + sqlite3_bind_blob(p->pIdxWriter, 2, z, pWriter->btterm.n, SQLITE_STATIC); + sqlite3_bind_int64(p->pIdxWriter, 3, bFlag + ((i64)pWriter->iBtPage<<1)); + sqlite3_step(p->pIdxWriter); + p->rc = sqlite3_reset(p->pIdxWriter); + } + pWriter->iBtPage = 0; +} + +/* +** This is called once for each leaf page except the first that contains +** at least one term. Argument (nTerm/pTerm) is the split-key - a term that +** is larger than all terms written to earlier leaves, and equal to or +** smaller than the first term on the new leaf. +** +** If an error occurs, an error code is left in Fts5Index.rc. If an error +** has already occurred when this function is called, it is a no-op. +*/ +static void fts5WriteBtreeTerm( + Fts5Index *p, /* FTS5 backend object */ + Fts5SegWriter *pWriter, /* Writer object */ + int nTerm, const u8 *pTerm /* First term on new page */ +){ + fts5WriteFlushBtree(p, pWriter); + fts5BufferSet(&p->rc, &pWriter->btterm, nTerm, pTerm); + pWriter->iBtPage = pWriter->writer.pgno; +} + +/* +** This function is called when flushing a leaf page that contains no +** terms at all to disk. +*/ +static void fts5WriteBtreeNoTerm( + Fts5Index *p, /* FTS5 backend object */ + Fts5SegWriter *pWriter /* Writer object */ +){ + /* If there were no rowids on the leaf page either and the doclist-index + ** has already been started, append an 0x00 byte to it. */ + if( pWriter->bFirstRowidInPage && pWriter->aDlidx[0].buf.n>0 ){ + Fts5DlidxWriter *pDlidx = &pWriter->aDlidx[0]; + assert( pDlidx->bPrevValid ); + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx->buf, 0); + } + + /* Increment the "number of sequential leaves without a term" counter. */ + pWriter->nEmpty++; +} + +static i64 fts5DlidxExtractFirstRowid(Fts5Buffer *pBuf){ + i64 iRowid; + int iOff; + + iOff = 1 + fts5GetVarint(&pBuf->p[1], (u64*)&iRowid); + fts5GetVarint(&pBuf->p[iOff], (u64*)&iRowid); + return iRowid; +} + +/* +** Rowid iRowid has just been appended to the current leaf page. It is the +** first on the page. This function appends an appropriate entry to the current +** doclist-index. +*/ +static void fts5WriteDlidxAppend( + Fts5Index *p, + Fts5SegWriter *pWriter, + i64 iRowid +){ + int i; + int bDone = 0; + + for(i=0; p->rc==SQLITE_OK && bDone==0; i++){ + i64 iVal; + Fts5DlidxWriter *pDlidx = &pWriter->aDlidx[i]; + + if( pDlidx->buf.n>=p->pConfig->pgsz ){ + /* The current doclist-index page is full. Write it to disk and push + ** a copy of iRowid (which will become the first rowid on the next + ** doclist-index leaf page) up into the next level of the b-tree + ** hierarchy. If the node being flushed is currently the root node, + ** also push its first rowid upwards. */ + pDlidx->buf.p[0] = 0x01; /* Not the root node */ + fts5DataWrite(p, + FTS5_DLIDX_ROWID(pWriter->iSegid, i, pDlidx->pgno), + pDlidx->buf.p, pDlidx->buf.n + ); + fts5WriteDlidxGrow(p, pWriter, i+2); + pDlidx = &pWriter->aDlidx[i]; + if( p->rc==SQLITE_OK && pDlidx[1].buf.n==0 ){ + i64 iFirst = fts5DlidxExtractFirstRowid(&pDlidx->buf); + + /* This was the root node. Push its first rowid up to the new root. */ + pDlidx[1].pgno = pDlidx->pgno; + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx[1].buf, 0); + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx[1].buf, pDlidx->pgno); + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx[1].buf, iFirst); + pDlidx[1].bPrevValid = 1; + pDlidx[1].iPrev = iFirst; + } + + sqlite3Fts5BufferZero(&pDlidx->buf); + pDlidx->bPrevValid = 0; + pDlidx->pgno++; + }else{ + bDone = 1; + } + + if( pDlidx->bPrevValid ){ + iVal = iRowid - pDlidx->iPrev; + }else{ + i64 iPgno = (i==0 ? pWriter->writer.pgno : pDlidx[-1].pgno); + assert( pDlidx->buf.n==0 ); + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx->buf, !bDone); + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx->buf, iPgno); + iVal = iRowid; + } + + sqlite3Fts5BufferAppendVarint(&p->rc, &pDlidx->buf, iVal); + pDlidx->bPrevValid = 1; + pDlidx->iPrev = iRowid; + } +} + +static void fts5WriteFlushLeaf(Fts5Index *p, Fts5SegWriter *pWriter){ + static const u8 zero[] = { 0x00, 0x00, 0x00, 0x00 }; + Fts5PageWriter *pPage = &pWriter->writer; + i64 iRowid; + + assert( (pPage->pgidx.n==0)==(pWriter->bFirstTermInPage) ); + + /* Set the szLeaf header field. */ + assert( 0==fts5GetU16(&pPage->buf.p[2]) ); + fts5PutU16(&pPage->buf.p[2], pPage->buf.n); + + if( pWriter->bFirstTermInPage ){ + /* No term was written to this page. */ + assert( pPage->pgidx.n==0 ); + fts5WriteBtreeNoTerm(p, pWriter); + }else{ + /* Append the pgidx to the page buffer. Set the szLeaf header field. */ + fts5BufferAppendBlob(&p->rc, &pPage->buf, pPage->pgidx.n, pPage->pgidx.p); + } + + /* Write the page out to disk */ + iRowid = FTS5_SEGMENT_ROWID(pWriter->iSegid, pPage->pgno); + fts5DataWrite(p, iRowid, pPage->buf.p, pPage->buf.n); + + /* Initialize the next page. */ + fts5BufferZero(&pPage->buf); + fts5BufferZero(&pPage->pgidx); + fts5BufferAppendBlob(&p->rc, &pPage->buf, 4, zero); + pPage->iPrevPgidx = 0; + pPage->pgno++; + + /* Increase the leaves written counter */ + pWriter->nLeafWritten++; + + /* The new leaf holds no terms or rowids */ + pWriter->bFirstTermInPage = 1; + pWriter->bFirstRowidInPage = 1; +} + +/* +** Append term pTerm/nTerm to the segment being written by the writer passed +** as the second argument. +** +** If an error occurs, set the Fts5Index.rc error code. If an error has +** already occurred, this function is a no-op. +*/ +static void fts5WriteAppendTerm( + Fts5Index *p, + Fts5SegWriter *pWriter, + int nTerm, const u8 *pTerm +){ + int nPrefix; /* Bytes of prefix compression for term */ + Fts5PageWriter *pPage = &pWriter->writer; + Fts5Buffer *pPgidx = &pWriter->writer.pgidx; + + assert( p->rc==SQLITE_OK ); + assert( pPage->buf.n>=4 ); + assert( pPage->buf.n>4 || pWriter->bFirstTermInPage ); + + /* If the current leaf page is full, flush it to disk. */ + if( (pPage->buf.n + pPgidx->n + nTerm + 2)>=p->pConfig->pgsz ){ + if( pPage->buf.n>4 ){ + fts5WriteFlushLeaf(p, pWriter); + } + fts5BufferGrow(&p->rc, &pPage->buf, nTerm+FTS5_DATA_PADDING); + } + + /* TODO1: Updating pgidx here. */ + pPgidx->n += sqlite3Fts5PutVarint( + &pPgidx->p[pPgidx->n], pPage->buf.n - pPage->iPrevPgidx + ); + pPage->iPrevPgidx = pPage->buf.n; +#if 0 + fts5PutU16(&pPgidx->p[pPgidx->n], pPage->buf.n); + pPgidx->n += 2; +#endif + + if( pWriter->bFirstTermInPage ){ + nPrefix = 0; + if( pPage->pgno!=1 ){ + /* This is the first term on a leaf that is not the leftmost leaf in + ** the segment b-tree. In this case it is necessary to add a term to + ** the b-tree hierarchy that is (a) larger than the largest term + ** already written to the segment and (b) smaller than or equal to + ** this term. In other words, a prefix of (pTerm/nTerm) that is one + ** byte longer than the longest prefix (pTerm/nTerm) shares with the + ** previous term. + ** + ** Usually, the previous term is available in pPage->term. The exception + ** is if this is the first term written in an incremental-merge step. + ** In this case the previous term is not available, so just write a + ** copy of (pTerm/nTerm) into the parent node. This is slightly + ** inefficient, but still correct. */ + int n = nTerm; + if( pPage->term.n ){ + n = 1 + fts5PrefixCompress(pPage->term.n, pPage->term.p, nTerm, pTerm); + } + fts5WriteBtreeTerm(p, pWriter, n, pTerm); + pPage = &pWriter->writer; + } + }else{ + nPrefix = fts5PrefixCompress(pPage->term.n, pPage->term.p, nTerm, pTerm); + fts5BufferAppendVarint(&p->rc, &pPage->buf, nPrefix); + } + + /* Append the number of bytes of new data, then the term data itself + ** to the page. */ + fts5BufferAppendVarint(&p->rc, &pPage->buf, nTerm - nPrefix); + fts5BufferAppendBlob(&p->rc, &pPage->buf, nTerm - nPrefix, &pTerm[nPrefix]); + + /* Update the Fts5PageWriter.term field. */ + fts5BufferSet(&p->rc, &pPage->term, nTerm, pTerm); + pWriter->bFirstTermInPage = 0; + + pWriter->bFirstRowidInPage = 0; + pWriter->bFirstRowidInDoclist = 1; + + assert( p->rc || (pWriter->nDlidx>0 && pWriter->aDlidx[0].buf.n==0) ); + pWriter->aDlidx[0].pgno = pPage->pgno; +} + +/* +** Append a rowid and position-list size field to the writers output. +*/ +static void fts5WriteAppendRowid( + Fts5Index *p, + Fts5SegWriter *pWriter, + i64 iRowid, + int nPos +){ + if( p->rc==SQLITE_OK ){ + Fts5PageWriter *pPage = &pWriter->writer; + + if( (pPage->buf.n + pPage->pgidx.n)>=p->pConfig->pgsz ){ + fts5WriteFlushLeaf(p, pWriter); + } + + /* If this is to be the first rowid written to the page, set the + ** rowid-pointer in the page-header. Also append a value to the dlidx + ** buffer, in case a doclist-index is required. */ + if( pWriter->bFirstRowidInPage ){ + fts5PutU16(pPage->buf.p, pPage->buf.n); + fts5WriteDlidxAppend(p, pWriter, iRowid); + } + + /* Write the rowid. */ + if( pWriter->bFirstRowidInDoclist || pWriter->bFirstRowidInPage ){ + fts5BufferAppendVarint(&p->rc, &pPage->buf, iRowid); + }else{ + assert( p->rc || iRowid>pWriter->iPrevRowid ); + fts5BufferAppendVarint(&p->rc, &pPage->buf, iRowid - pWriter->iPrevRowid); + } + pWriter->iPrevRowid = iRowid; + pWriter->bFirstRowidInDoclist = 0; + pWriter->bFirstRowidInPage = 0; + + fts5BufferAppendVarint(&p->rc, &pPage->buf, nPos); + } +} + +static void fts5WriteAppendPoslistData( + Fts5Index *p, + Fts5SegWriter *pWriter, + const u8 *aData, + int nData +){ + Fts5PageWriter *pPage = &pWriter->writer; + const u8 *a = aData; + int n = nData; + + assert( p->pConfig->pgsz>0 ); + while( p->rc==SQLITE_OK + && (pPage->buf.n + pPage->pgidx.n + n)>=p->pConfig->pgsz + ){ + int nReq = p->pConfig->pgsz - pPage->buf.n - pPage->pgidx.n; + int nCopy = 0; + while( nCopyrc, &pPage->buf, nCopy, a); + a += nCopy; + n -= nCopy; + fts5WriteFlushLeaf(p, pWriter); + } + if( n>0 ){ + fts5BufferAppendBlob(&p->rc, &pPage->buf, n, a); + } +} + +/* +** Flush any data cached by the writer object to the database. Free any +** allocations associated with the writer. +*/ +static void fts5WriteFinish( + Fts5Index *p, + Fts5SegWriter *pWriter, /* Writer object */ + int *pnLeaf /* OUT: Number of leaf pages in b-tree */ +){ + int i; + Fts5PageWriter *pLeaf = &pWriter->writer; + if( p->rc==SQLITE_OK ){ + assert( pLeaf->pgno>=1 ); + if( pLeaf->buf.n>4 ){ + fts5WriteFlushLeaf(p, pWriter); + } + *pnLeaf = pLeaf->pgno-1; + fts5WriteFlushBtree(p, pWriter); + } + fts5BufferFree(&pLeaf->term); + fts5BufferFree(&pLeaf->buf); + fts5BufferFree(&pLeaf->pgidx); + fts5BufferFree(&pWriter->btterm); + + for(i=0; inDlidx; i++){ + sqlite3Fts5BufferFree(&pWriter->aDlidx[i].buf); + } + sqlite3_free(pWriter->aDlidx); +} + +static void fts5WriteInit( + Fts5Index *p, + Fts5SegWriter *pWriter, + int iSegid +){ + const int nBuffer = p->pConfig->pgsz + FTS5_DATA_PADDING; + + memset(pWriter, 0, sizeof(Fts5SegWriter)); + pWriter->iSegid = iSegid; + + fts5WriteDlidxGrow(p, pWriter, 1); + pWriter->writer.pgno = 1; + pWriter->bFirstTermInPage = 1; + pWriter->iBtPage = 1; + + /* Grow the two buffers to pgsz + padding bytes in size. */ + fts5BufferGrow(&p->rc, &pWriter->writer.pgidx, nBuffer); + fts5BufferGrow(&p->rc, &pWriter->writer.buf, nBuffer); + + if( p->pIdxWriter==0 ){ + Fts5Config *pConfig = p->pConfig; + fts5IndexPrepareStmt(p, &p->pIdxWriter, sqlite3_mprintf( + "INSERT INTO '%q'.'%q_idx'(segid,term,pgno) VALUES(?,?,?)", + pConfig->zDb, pConfig->zName + )); + } + + if( p->rc==SQLITE_OK ){ + /* Initialize the 4-byte leaf-page header to 0x00. */ + memset(pWriter->writer.buf.p, 0, 4); + pWriter->writer.buf.n = 4; + + /* Bind the current output segment id to the index-writer. This is an + ** optimization over binding the same value over and over as rows are + ** inserted into %_idx by the current writer. */ + sqlite3_bind_int(p->pIdxWriter, 1, pWriter->iSegid); + } +} + +/* +** Iterator pIter was used to iterate through the input segments of on an +** incremental merge operation. This function is called if the incremental +** merge step has finished but the input has not been completely exhausted. +*/ +static void fts5TrimSegments(Fts5Index *p, Fts5IndexIter *pIter){ + int i; + Fts5Buffer buf; + memset(&buf, 0, sizeof(Fts5Buffer)); + for(i=0; inSeg; i++){ + Fts5SegIter *pSeg = &pIter->aSeg[i]; + if( pSeg->pSeg==0 ){ + /* no-op */ + }else if( pSeg->pLeaf==0 ){ + /* All keys from this input segment have been transfered to the output. + ** Set both the first and last page-numbers to 0 to indicate that the + ** segment is now empty. */ + pSeg->pSeg->pgnoLast = 0; + pSeg->pSeg->pgnoFirst = 0; + }else{ + int iOff = pSeg->iTermLeafOffset; /* Offset on new first leaf page */ + i64 iLeafRowid; + Fts5Data *pData; + int iId = pSeg->pSeg->iSegid; + u8 aHdr[4] = {0x00, 0x00, 0x00, 0x00}; + + iLeafRowid = FTS5_SEGMENT_ROWID(iId, pSeg->iTermLeafPgno); + pData = fts5DataRead(p, iLeafRowid); + if( pData ){ + fts5BufferZero(&buf); + fts5BufferGrow(&p->rc, &buf, pData->nn); + fts5BufferAppendBlob(&p->rc, &buf, sizeof(aHdr), aHdr); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->term.n); + fts5BufferAppendBlob(&p->rc, &buf, pSeg->term.n, pSeg->term.p); + fts5BufferAppendBlob(&p->rc, &buf, pData->szLeaf-iOff, &pData->p[iOff]); + if( p->rc==SQLITE_OK ){ + /* Set the szLeaf field */ + fts5PutU16(&buf.p[2], buf.n); + } + + /* Set up the new page-index array */ + fts5BufferAppendVarint(&p->rc, &buf, 4); + if( pSeg->iLeafPgno==pSeg->iTermLeafPgno + && pSeg->iEndofDoclistszLeaf + ){ + int nDiff = pData->szLeaf - pSeg->iEndofDoclist; + fts5BufferAppendVarint(&p->rc, &buf, buf.n - 1 - nDiff - 4); + fts5BufferAppendBlob(&p->rc, &buf, + pData->nn - pSeg->iPgidxOff, &pData->p[pSeg->iPgidxOff] + ); + } + + fts5DataRelease(pData); + pSeg->pSeg->pgnoFirst = pSeg->iTermLeafPgno; + fts5DataDelete(p, FTS5_SEGMENT_ROWID(iId, 1), iLeafRowid); + fts5DataWrite(p, iLeafRowid, buf.p, buf.n); + } + } + } + fts5BufferFree(&buf); +} + +static void fts5MergeChunkCallback( + Fts5Index *p, + void *pCtx, + const u8 *pChunk, int nChunk +){ + Fts5SegWriter *pWriter = (Fts5SegWriter*)pCtx; + fts5WriteAppendPoslistData(p, pWriter, pChunk, nChunk); +} + +/* +** +*/ +static void fts5IndexMergeLevel( + Fts5Index *p, /* FTS5 backend object */ + Fts5Structure **ppStruct, /* IN/OUT: Stucture of index */ + int iLvl, /* Level to read input from */ + int *pnRem /* Write up to this many output leaves */ +){ + Fts5Structure *pStruct = *ppStruct; + Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl]; + Fts5StructureLevel *pLvlOut; + Fts5IndexIter *pIter = 0; /* Iterator to read input data */ + int nRem = pnRem ? *pnRem : 0; /* Output leaf pages left to write */ + int nInput; /* Number of input segments */ + Fts5SegWriter writer; /* Writer object */ + Fts5StructureSegment *pSeg; /* Output segment */ + Fts5Buffer term; + int bOldest; /* True if the output segment is the oldest */ + + assert( iLvlnLevel ); + assert( pLvl->nMerge<=pLvl->nSeg ); + + memset(&writer, 0, sizeof(Fts5SegWriter)); + memset(&term, 0, sizeof(Fts5Buffer)); + if( pLvl->nMerge ){ + pLvlOut = &pStruct->aLevel[iLvl+1]; + assert( pLvlOut->nSeg>0 ); + nInput = pLvl->nMerge; + pSeg = &pLvlOut->aSeg[pLvlOut->nSeg-1]; + + fts5WriteInit(p, &writer, pSeg->iSegid); + writer.writer.pgno = pSeg->pgnoLast+1; + writer.iBtPage = 0; + }else{ + int iSegid = fts5AllocateSegid(p, pStruct); + + /* Extend the Fts5Structure object as required to ensure the output + ** segment exists. */ + if( iLvl==pStruct->nLevel-1 ){ + fts5StructureAddLevel(&p->rc, ppStruct); + pStruct = *ppStruct; + } + fts5StructureExtendLevel(&p->rc, pStruct, iLvl+1, 1, 0); + if( p->rc ) return; + pLvl = &pStruct->aLevel[iLvl]; + pLvlOut = &pStruct->aLevel[iLvl+1]; + + fts5WriteInit(p, &writer, iSegid); + + /* Add the new segment to the output level */ + pSeg = &pLvlOut->aSeg[pLvlOut->nSeg]; + pLvlOut->nSeg++; + pSeg->pgnoFirst = 1; + pSeg->iSegid = iSegid; + pStruct->nSegment++; + + /* Read input from all segments in the input level */ + nInput = pLvl->nSeg; + } + bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2); + + assert( iLvl>=0 ); + for(fts5MultiIterNew(p, pStruct, 0, 0, 0, 0, iLvl, nInput, &pIter); + fts5MultiIterEof(p, pIter)==0; + fts5MultiIterNext(p, pIter, 0, 0) + ){ + Fts5SegIter *pSegIter = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + int nPos; /* position-list size field value */ + int nTerm; + const u8 *pTerm; + + /* Check for key annihilation. */ + if( pSegIter->nPos==0 && (bOldest || pSegIter->bDel==0) ) continue; + + pTerm = fts5MultiIterTerm(pIter, &nTerm); + if( nTerm!=term.n || memcmp(pTerm, term.p, nTerm) ){ + if( pnRem && writer.nLeafWritten>nRem ){ + break; + } + + /* This is a new term. Append a term to the output segment. */ + fts5WriteAppendTerm(p, &writer, nTerm, pTerm); + fts5BufferSet(&p->rc, &term, nTerm, pTerm); + } + + /* Append the rowid to the output */ + /* WRITEPOSLISTSIZE */ + nPos = pSegIter->nPos*2 + pSegIter->bDel; + fts5WriteAppendRowid(p, &writer, fts5MultiIterRowid(pIter), nPos); + + /* Append the position-list data to the output */ + fts5ChunkIterate(p, pSegIter, (void*)&writer, fts5MergeChunkCallback); + } + + /* Flush the last leaf page to disk. Set the output segment b-tree height + ** and last leaf page number at the same time. */ + fts5WriteFinish(p, &writer, &pSeg->pgnoLast); + + if( fts5MultiIterEof(p, pIter) ){ + int i; + + /* Remove the redundant segments from the %_data table */ + for(i=0; iaSeg[i].iSegid); + } + + /* Remove the redundant segments from the input level */ + if( pLvl->nSeg!=nInput ){ + int nMove = (pLvl->nSeg - nInput) * sizeof(Fts5StructureSegment); + memmove(pLvl->aSeg, &pLvl->aSeg[nInput], nMove); + } + pStruct->nSegment -= nInput; + pLvl->nSeg -= nInput; + pLvl->nMerge = 0; + if( pSeg->pgnoLast==0 ){ + pLvlOut->nSeg--; + pStruct->nSegment--; + } + }else{ + assert( pSeg->pgnoLast>0 ); + fts5TrimSegments(p, pIter); + pLvl->nMerge = nInput; + } + + fts5MultiIterFree(p, pIter); + fts5BufferFree(&term); + if( pnRem ) *pnRem -= writer.nLeafWritten; +} + +/* +** Do up to nPg pages of automerge work on the index. +*/ +static void fts5IndexMerge( + Fts5Index *p, /* FTS5 backend object */ + Fts5Structure **ppStruct, /* IN/OUT: Current structure of index */ + int nPg /* Pages of work to do */ +){ + int nRem = nPg; + Fts5Structure *pStruct = *ppStruct; + while( nRem>0 && p->rc==SQLITE_OK ){ + int iLvl; /* To iterate through levels */ + int iBestLvl = 0; /* Level offering the most input segments */ + int nBest = 0; /* Number of input segments on best level */ + + /* Set iBestLvl to the level to read input segments from. */ + assert( pStruct->nLevel>0 ); + for(iLvl=0; iLvlnLevel; iLvl++){ + Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl]; + if( pLvl->nMerge ){ + if( pLvl->nMerge>nBest ){ + iBestLvl = iLvl; + nBest = pLvl->nMerge; + } + break; + } + if( pLvl->nSeg>nBest ){ + nBest = pLvl->nSeg; + iBestLvl = iLvl; + } + } + + /* If nBest is still 0, then the index must be empty. */ +#ifdef SQLITE_DEBUG + for(iLvl=0; nBest==0 && iLvlnLevel; iLvl++){ + assert( pStruct->aLevel[iLvl].nSeg==0 ); + } +#endif + + if( nBestpConfig->nAutomerge + && pStruct->aLevel[iBestLvl].nMerge==0 + ){ + break; + } + fts5IndexMergeLevel(p, &pStruct, iBestLvl, &nRem); + if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){ + fts5StructurePromote(p, iBestLvl+1, pStruct); + } + } + *ppStruct = pStruct; +} + +/* +** A total of nLeaf leaf pages of data has just been flushed to a level-0 +** segment. This function updates the write-counter accordingly and, if +** necessary, performs incremental merge work. +** +** If an error occurs, set the Fts5Index.rc error code. If an error has +** already occurred, this function is a no-op. +*/ +static void fts5IndexAutomerge( + Fts5Index *p, /* FTS5 backend object */ + Fts5Structure **ppStruct, /* IN/OUT: Current structure of index */ + int nLeaf /* Number of output leaves just written */ +){ + if( p->rc==SQLITE_OK && p->pConfig->nAutomerge>0 ){ + Fts5Structure *pStruct = *ppStruct; + u64 nWrite; /* Initial value of write-counter */ + int nWork; /* Number of work-quanta to perform */ + int nRem; /* Number of leaf pages left to write */ + + /* Update the write-counter. While doing so, set nWork. */ + nWrite = pStruct->nWriteCounter; + nWork = (int)(((nWrite + nLeaf) / p->nWorkUnit) - (nWrite / p->nWorkUnit)); + pStruct->nWriteCounter += nLeaf; + nRem = (int)(p->nWorkUnit * nWork * pStruct->nLevel); + + fts5IndexMerge(p, ppStruct, nRem); + } +} + +static void fts5IndexCrisismerge( + Fts5Index *p, /* FTS5 backend object */ + Fts5Structure **ppStruct /* IN/OUT: Current structure of index */ +){ + const int nCrisis = p->pConfig->nCrisisMerge; + Fts5Structure *pStruct = *ppStruct; + int iLvl = 0; + + assert( p->rc!=SQLITE_OK || pStruct->nLevel>0 ); + while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){ + fts5IndexMergeLevel(p, &pStruct, iLvl, 0); + assert( p->rc!=SQLITE_OK || pStruct->nLevel>(iLvl+1) ); + fts5StructurePromote(p, iLvl+1, pStruct); + iLvl++; + } + *ppStruct = pStruct; +} + +static int fts5IndexReturn(Fts5Index *p){ + int rc = p->rc; + p->rc = SQLITE_OK; + return rc; +} + +typedef struct Fts5FlushCtx Fts5FlushCtx; +struct Fts5FlushCtx { + Fts5Index *pIdx; + Fts5SegWriter writer; +}; + +/* +** Buffer aBuf[] contains a list of varints, all small enough to fit +** in a 32-bit integer. Return the size of the largest prefix of this +** list nMax bytes or less in size. +*/ +static int fts5PoslistPrefix(const u8 *aBuf, int nMax){ + int ret; + u32 dummy; + ret = fts5GetVarint32(aBuf, dummy); + if( ret nMax ) break; + ret += i; + } + } + return ret; +} + +#define fts5BufferSafeAppendBlob(pBuf, pBlob, nBlob) { \ + assert( (pBuf)->nSpace>=((pBuf)->n+nBlob) ); \ + memcpy(&(pBuf)->p[(pBuf)->n], pBlob, nBlob); \ + (pBuf)->n += nBlob; \ +} + +#define fts5BufferSafeAppendVarint(pBuf, iVal) { \ + (pBuf)->n += sqlite3Fts5PutVarint(&(pBuf)->p[(pBuf)->n], (iVal)); \ + assert( (pBuf)->nSpace>=(pBuf)->n ); \ +} + +/* +** Flush the contents of in-memory hash table iHash to a new level-0 +** segment on disk. Also update the corresponding structure record. +** +** If an error occurs, set the Fts5Index.rc error code. If an error has +** already occurred, this function is a no-op. +*/ +static void fts5FlushOneHash(Fts5Index *p){ + Fts5Hash *pHash = p->pHash; + Fts5Structure *pStruct; + int iSegid; + int pgnoLast = 0; /* Last leaf page number in segment */ + + /* Obtain a reference to the index structure and allocate a new segment-id + ** for the new level-0 segment. */ + pStruct = fts5StructureRead(p); + iSegid = fts5AllocateSegid(p, pStruct); + + if( iSegid ){ + const int pgsz = p->pConfig->pgsz; + + Fts5StructureSegment *pSeg; /* New segment within pStruct */ + Fts5Buffer *pBuf; /* Buffer in which to assemble leaf page */ + Fts5Buffer *pPgidx; /* Buffer in which to assemble pgidx */ + + Fts5SegWriter writer; + fts5WriteInit(p, &writer, iSegid); + + pBuf = &writer.writer.buf; + pPgidx = &writer.writer.pgidx; + + /* fts5WriteInit() should have initialized the buffers to (most likely) + ** the maximum space required. */ + assert( p->rc || pBuf->nSpace>=(pgsz + FTS5_DATA_PADDING) ); + assert( p->rc || pPgidx->nSpace>=(pgsz + FTS5_DATA_PADDING) ); + + /* Begin scanning through hash table entries. This loop runs once for each + ** term/doclist currently stored within the hash table. */ + if( p->rc==SQLITE_OK ){ + p->rc = sqlite3Fts5HashScanInit(pHash, 0, 0); + } + while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){ + const char *zTerm; /* Buffer containing term */ + const u8 *pDoclist; /* Pointer to doclist for this term */ + int nDoclist; /* Size of doclist in bytes */ + + /* Write the term for this entry to disk. */ + sqlite3Fts5HashScanEntry(pHash, &zTerm, &pDoclist, &nDoclist); + fts5WriteAppendTerm(p, &writer, strlen(zTerm), (const u8*)zTerm); + + assert( writer.bFirstRowidInPage==0 ); + if( pgsz>=(pBuf->n + pPgidx->n + nDoclist + 1) ){ + /* The entire doclist will fit on the current leaf. */ + fts5BufferSafeAppendBlob(pBuf, pDoclist, nDoclist); + }else{ + i64 iRowid = 0; + i64 iDelta = 0; + int iOff = 0; + + /* The entire doclist will not fit on this leaf. The following + ** loop iterates through the poslists that make up the current + ** doclist. */ + while( p->rc==SQLITE_OK && iOffp[0], pBuf->n); /* first rowid on page */ + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowid); + writer.bFirstRowidInPage = 0; + fts5WriteDlidxAppend(p, &writer, iRowid); + }else{ + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iDelta); + } + assert( pBuf->n<=pBuf->nSpace ); + + if( (pBuf->n + pPgidx->n + nCopy) <= pgsz ){ + /* The entire poslist will fit on the current leaf. So copy + ** it in one go. */ + fts5BufferSafeAppendBlob(pBuf, &pDoclist[iOff], nCopy); + }else{ + /* The entire poslist will not fit on this leaf. So it needs + ** to be broken into sections. The only qualification being + ** that each varint must be stored contiguously. */ + const u8 *pPoslist = &pDoclist[iOff]; + int iPos = 0; + while( p->rc==SQLITE_OK ){ + int nSpace = pgsz - pBuf->n - pPgidx->n; + int n = 0; + if( (nCopy - iPos)<=nSpace ){ + n = nCopy - iPos; + }else{ + n = fts5PoslistPrefix(&pPoslist[iPos], nSpace); + } + assert( n>0 ); + fts5BufferSafeAppendBlob(pBuf, &pPoslist[iPos], n); + iPos += n; + if( (pBuf->n + pPgidx->n)>=pgsz ){ + fts5WriteFlushLeaf(p, &writer); + } + if( iPos>=nCopy ) break; + } + } + iOff += nCopy; + } + } + + /* TODO2: Doclist terminator written here. */ + /* pBuf->p[pBuf->n++] = '\0'; */ + assert( pBuf->n<=pBuf->nSpace ); + sqlite3Fts5HashScanNext(pHash); + } + sqlite3Fts5HashClear(pHash); + fts5WriteFinish(p, &writer, &pgnoLast); + + /* Update the Fts5Structure. It is written back to the database by the + ** fts5StructureRelease() call below. */ + if( pStruct->nLevel==0 ){ + fts5StructureAddLevel(&p->rc, &pStruct); + } + fts5StructureExtendLevel(&p->rc, pStruct, 0, 1, 0); + if( p->rc==SQLITE_OK ){ + pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ]; + pSeg->iSegid = iSegid; + pSeg->pgnoFirst = 1; + pSeg->pgnoLast = pgnoLast; + pStruct->nSegment++; + } + fts5StructurePromote(p, 0, pStruct); + } + + fts5IndexAutomerge(p, &pStruct, pgnoLast); + fts5IndexCrisismerge(p, &pStruct); + fts5StructureWrite(p, pStruct); + fts5StructureRelease(pStruct); +} + +/* +** Flush any data stored in the in-memory hash tables to the database. +*/ +static void fts5IndexFlush(Fts5Index *p){ + /* Unless it is empty, flush the hash table to disk */ + if( p->nPendingData ){ + assert( p->pHash ); + p->nPendingData = 0; + fts5FlushOneHash(p); + } +} + + +static int sqlite3Fts5IndexOptimize(Fts5Index *p){ + Fts5Structure *pStruct; + Fts5Structure *pNew = 0; + int nSeg = 0; + + assert( p->rc==SQLITE_OK ); + fts5IndexFlush(p); + pStruct = fts5StructureRead(p); + + if( pStruct ){ + assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) ); + nSeg = pStruct->nSegment; + if( nSeg>1 ){ + int nByte = sizeof(Fts5Structure); + nByte += (pStruct->nLevel+1) * sizeof(Fts5StructureLevel); + pNew = (Fts5Structure*)sqlite3Fts5MallocZero(&p->rc, nByte); + } + } + if( pNew ){ + Fts5StructureLevel *pLvl; + int nByte = nSeg * sizeof(Fts5StructureSegment); + pNew->nLevel = pStruct->nLevel+1; + pNew->nRef = 1; + pNew->nWriteCounter = pStruct->nWriteCounter; + pLvl = &pNew->aLevel[pStruct->nLevel]; + pLvl->aSeg = (Fts5StructureSegment*)sqlite3Fts5MallocZero(&p->rc, nByte); + if( pLvl->aSeg ){ + int iLvl, iSeg; + int iSegOut = 0; + for(iLvl=0; iLvlnLevel; iLvl++){ + for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){ + pLvl->aSeg[iSegOut] = pStruct->aLevel[iLvl].aSeg[iSeg]; + iSegOut++; + } + } + pNew->nSegment = pLvl->nSeg = nSeg; + }else{ + sqlite3_free(pNew); + pNew = 0; + } + } + + if( pNew ){ + int iLvl = pNew->nLevel-1; + while( p->rc==SQLITE_OK && pNew->aLevel[iLvl].nSeg>0 ){ + int nRem = FTS5_OPT_WORK_UNIT; + fts5IndexMergeLevel(p, &pNew, iLvl, &nRem); + } + + fts5StructureWrite(p, pNew); + fts5StructureRelease(pNew); + } + + fts5StructureRelease(pStruct); + return fts5IndexReturn(p); +} + +static int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge){ + Fts5Structure *pStruct; + + pStruct = fts5StructureRead(p); + if( pStruct && pStruct->nLevel ){ + fts5IndexMerge(p, &pStruct, nMerge); + fts5StructureWrite(p, pStruct); + } + fts5StructureRelease(pStruct); + + return fts5IndexReturn(p); +} + +static void fts5PoslistCallback( + Fts5Index *p, + void *pContext, + const u8 *pChunk, int nChunk +){ + assert_nc( nChunk>=0 ); + if( nChunk>0 ){ + fts5BufferSafeAppendBlob((Fts5Buffer*)pContext, pChunk, nChunk); + } +} + +typedef struct PoslistCallbackCtx PoslistCallbackCtx; +struct PoslistCallbackCtx { + Fts5Buffer *pBuf; /* Append to this buffer */ + Fts5Colset *pColset; /* Restrict matches to this column */ + int eState; /* See above */ +}; + +/* +** TODO: Make this more efficient! +*/ +static int fts5IndexColsetTest(Fts5Colset *pColset, int iCol){ + int i; + for(i=0; inCol; i++){ + if( pColset->aiCol[i]==iCol ) return 1; + } + return 0; +} + +static void fts5PoslistFilterCallback( + Fts5Index *p, + void *pContext, + const u8 *pChunk, int nChunk +){ + PoslistCallbackCtx *pCtx = (PoslistCallbackCtx*)pContext; + assert_nc( nChunk>=0 ); + if( nChunk>0 ){ + /* Search through to find the first varint with value 1. This is the + ** start of the next columns hits. */ + int i = 0; + int iStart = 0; + + if( pCtx->eState==2 ){ + int iCol; + fts5FastGetVarint32(pChunk, i, iCol); + if( fts5IndexColsetTest(pCtx->pColset, iCol) ){ + pCtx->eState = 1; + fts5BufferSafeAppendVarint(pCtx->pBuf, 1); + }else{ + pCtx->eState = 0; + } + } + + do { + while( ieState ){ + fts5BufferSafeAppendBlob(pCtx->pBuf, &pChunk[iStart], i-iStart); + } + if( i=nChunk ){ + pCtx->eState = 2; + }else{ + fts5FastGetVarint32(pChunk, i, iCol); + pCtx->eState = fts5IndexColsetTest(pCtx->pColset, iCol); + if( pCtx->eState ){ + fts5BufferSafeAppendBlob(pCtx->pBuf, &pChunk[iStart], i-iStart); + iStart = i; + } + } + } + }while( irc, pBuf, pSeg->nPos) ){ + if( pColset==0 ){ + fts5ChunkIterate(p, pSeg, (void*)pBuf, fts5PoslistCallback); + }else{ + PoslistCallbackCtx sCtx; + sCtx.pBuf = pBuf; + sCtx.pColset = pColset; + sCtx.eState = pColset ? fts5IndexColsetTest(pColset, 0) : 1; + assert( sCtx.eState==0 || sCtx.eState==1 ); + fts5ChunkIterate(p, pSeg, (void*)&sCtx, fts5PoslistFilterCallback); + } + } +} + +/* +** IN/OUT parameter (*pa) points to a position list n bytes in size. If +** the position list contains entries for column iCol, then (*pa) is set +** to point to the sub-position-list for that column and the number of +** bytes in it returned. Or, if the argument position list does not +** contain any entries for column iCol, return 0. +*/ +static int fts5IndexExtractCol( + const u8 **pa, /* IN/OUT: Pointer to poslist */ + int n, /* IN: Size of poslist in bytes */ + int iCol /* Column to extract from poslist */ +){ + int iCurrent = 0; /* Anything before the first 0x01 is col 0 */ + const u8 *p = *pa; + const u8 *pEnd = &p[n]; /* One byte past end of position list */ + u8 prev = 0; + + while( iCol!=iCurrent ){ + /* Advance pointer p until it points to pEnd or an 0x01 byte that is + ** not part of a varint */ + while( (prev & 0x80) || *p!=0x01 ){ + prev = *p++; + if( p==pEnd ) return 0; + } + *pa = p++; + p += fts5GetVarint32(p, iCurrent); + } + + /* Advance pointer p until it points to pEnd or an 0x01 byte that is + ** not part of a varint */ + assert( (prev & 0x80)==0 ); + while( prc. +*/ +static int fts5AppendPoslist( + Fts5Index *p, + i64 iDelta, + Fts5IndexIter *pMulti, + Fts5Colset *pColset, + Fts5Buffer *pBuf +){ + if( p->rc==SQLITE_OK ){ + Fts5SegIter *pSeg = &pMulti->aSeg[ pMulti->aFirst[1].iFirst ]; + assert( fts5MultiIterEof(p, pMulti)==0 ); + assert( pSeg->nPos>0 ); + if( 0==fts5BufferGrow(&p->rc, pBuf, pSeg->nPos+9+9) ){ + int iSv1; + int iSv2; + int iData; + + /* Append iDelta */ + iSv1 = pBuf->n; + fts5BufferSafeAppendVarint(pBuf, iDelta); + + /* WRITEPOSLISTSIZE */ + iSv2 = pBuf->n; + fts5BufferSafeAppendVarint(pBuf, pSeg->nPos*2); + iData = pBuf->n; + + if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf + && (pColset==0 || pColset->nCol==1) + ){ + const u8 *pPos = &pSeg->pLeaf->p[pSeg->iLeafOffset]; + int nPos; + if( pColset ){ + nPos = fts5IndexExtractCol(&pPos, pSeg->nPos, pColset->aiCol[0]); + }else{ + nPos = pSeg->nPos; + } + fts5BufferSafeAppendBlob(pBuf, pPos, nPos); + }else{ + fts5SegiterPoslist(p, pSeg, pColset, pBuf); + } + + if( pColset ){ + int nActual = pBuf->n - iData; + if( nActual!=pSeg->nPos ){ + if( nActual==0 ){ + pBuf->n = iSv1; + return 1; + }else{ + int nReq = sqlite3Fts5GetVarintLen((u32)(nActual*2)); + while( iSv2<(iData-nReq) ){ pBuf->p[iSv2++] = 0x80; } + sqlite3Fts5PutVarint(&pBuf->p[iSv2], nActual*2); + } + } + } + } + } + + return 0; +} + +static void fts5DoclistIterNext(Fts5DoclistIter *pIter){ + u8 *p = pIter->aPoslist + pIter->nSize + pIter->nPoslist; + + assert( pIter->aPoslist ); + if( p>=pIter->aEof ){ + pIter->aPoslist = 0; + }else{ + i64 iDelta; + + p += fts5GetVarint(p, (u64*)&iDelta); + pIter->iRowid += iDelta; + + /* Read position list size */ + if( p[0] & 0x80 ){ + int nPos; + pIter->nSize = fts5GetVarint32(p, nPos); + pIter->nPoslist = (nPos>>1); + }else{ + pIter->nPoslist = ((int)(p[0])) >> 1; + pIter->nSize = 1; + } + + pIter->aPoslist = p; + } +} + +static void fts5DoclistIterInit( + Fts5Buffer *pBuf, + Fts5DoclistIter *pIter +){ + memset(pIter, 0, sizeof(*pIter)); + pIter->aPoslist = pBuf->p; + pIter->aEof = &pBuf->p[pBuf->n]; + fts5DoclistIterNext(pIter); +} + +#if 0 +/* +** Append a doclist to buffer pBuf. +** +** This function assumes that space within the buffer has already been +** allocated. +*/ +static void fts5MergeAppendDocid( + Fts5Buffer *pBuf, /* Buffer to write to */ + i64 *piLastRowid, /* IN/OUT: Previous rowid written (if any) */ + i64 iRowid /* Rowid to append */ +){ + assert( pBuf->n!=0 || (*piLastRowid)==0 ); + fts5BufferSafeAppendVarint(pBuf, iRowid - *piLastRowid); + *piLastRowid = iRowid; +} +#endif + +#define fts5MergeAppendDocid(pBuf, iLastRowid, iRowid) { \ + assert( (pBuf)->n!=0 || (iLastRowid)==0 ); \ + fts5BufferSafeAppendVarint((pBuf), (iRowid) - (iLastRowid)); \ + (iLastRowid) = (iRowid); \ +} + +/* +** Buffers p1 and p2 contain doclists. This function merges the content +** of the two doclists together and sets buffer p1 to the result before +** returning. +** +** If an error occurs, an error code is left in p->rc. If an error has +** already occurred, this function is a no-op. +*/ +static void fts5MergePrefixLists( + Fts5Index *p, /* FTS5 backend object */ + Fts5Buffer *p1, /* First list to merge */ + Fts5Buffer *p2 /* Second list to merge */ +){ + if( p2->n ){ + i64 iLastRowid = 0; + Fts5DoclistIter i1; + Fts5DoclistIter i2; + Fts5Buffer out; + Fts5Buffer tmp; + memset(&out, 0, sizeof(out)); + memset(&tmp, 0, sizeof(tmp)); + + sqlite3Fts5BufferGrow(&p->rc, &out, p1->n + p2->n); + fts5DoclistIterInit(p1, &i1); + fts5DoclistIterInit(p2, &i2); + while( p->rc==SQLITE_OK && (i1.aPoslist!=0 || i2.aPoslist!=0) ){ + if( i2.aPoslist==0 || (i1.aPoslist && i1.iRowidrc==SQLITE_OK && (iPos1>=0 || iPos2>=0) ){ + i64 iNew; + if( iPos2<0 || (iPos1>=0 && iPos1rc = sqlite3Fts5PoslistWriterAppend(&tmp, &writer, iNew); + } + + /* WRITEPOSLISTSIZE */ + fts5BufferSafeAppendVarint(&out, tmp.n * 2); + fts5BufferSafeAppendBlob(&out, tmp.p, tmp.n); + fts5DoclistIterNext(&i1); + fts5DoclistIterNext(&i2); + } + } + + fts5BufferSet(&p->rc, p1, out.n, out.p); + fts5BufferFree(&tmp); + fts5BufferFree(&out); + } +} + +static void fts5BufferSwap(Fts5Buffer *p1, Fts5Buffer *p2){ + Fts5Buffer tmp = *p1; + *p1 = *p2; + *p2 = tmp; +} + +static void fts5SetupPrefixIter( + Fts5Index *p, /* Index to read from */ + int bDesc, /* True for "ORDER BY rowid DESC" */ + const u8 *pToken, /* Buffer containing prefix to match */ + int nToken, /* Size of buffer pToken in bytes */ + Fts5Colset *pColset, /* Restrict matches to these columns */ + Fts5IndexIter **ppIter /* OUT: New iterator */ +){ + Fts5Structure *pStruct; + Fts5Buffer *aBuf; + const int nBuf = 32; + + aBuf = (Fts5Buffer*)fts5IdxMalloc(p, sizeof(Fts5Buffer)*nBuf); + pStruct = fts5StructureRead(p); + + if( aBuf && pStruct ){ + const int flags = FTS5INDEX_QUERY_SCAN; + int i; + i64 iLastRowid = 0; + Fts5IndexIter *p1 = 0; /* Iterator used to gather data from index */ + Fts5Data *pData; + Fts5Buffer doclist; + + memset(&doclist, 0, sizeof(doclist)); + for(fts5MultiIterNew(p, pStruct, 1, flags, pToken, nToken, -1, 0, &p1); + fts5MultiIterEof(p, p1)==0; + fts5MultiIterNext(p, p1, 0, 0) + ){ + i64 iRowid = fts5MultiIterRowid(p1); + int nTerm; + const u8 *pTerm = fts5MultiIterTerm(p1, &nTerm); + assert_nc( memcmp(pToken, pTerm, MIN(nToken, nTerm))<=0 ); + if( nTerm0 && iRowid<=iLastRowid ){ + for(i=0; p->rc==SQLITE_OK && doclist.n; i++){ + assert( irc==SQLITE_OK ){ + fts5MergePrefixLists(p, &doclist, &aBuf[i]); + } + fts5BufferFree(&aBuf[i]); + } + fts5MultiIterFree(p, p1); + + pData = fts5IdxMalloc(p, sizeof(Fts5Data) + doclist.n); + if( pData ){ + pData->p = (u8*)&pData[1]; + pData->nn = pData->szLeaf = doclist.n; + memcpy(pData->p, doclist.p, doclist.n); + fts5MultiIterNew2(p, pData, bDesc, ppIter); + } + fts5BufferFree(&doclist); + } + + fts5StructureRelease(pStruct); + sqlite3_free(aBuf); +} + + +/* +** Indicate that all subsequent calls to sqlite3Fts5IndexWrite() pertain +** to the document with rowid iRowid. +*/ +static int sqlite3Fts5IndexBeginWrite(Fts5Index *p, int bDelete, i64 iRowid){ + assert( p->rc==SQLITE_OK ); + + /* Allocate the hash table if it has not already been allocated */ + if( p->pHash==0 ){ + p->rc = sqlite3Fts5HashNew(&p->pHash, &p->nPendingData); + } + + /* Flush the hash table to disk if required */ + if( iRowidiWriteRowid + || (iRowid==p->iWriteRowid && p->bDelete==0) + || (p->nPendingData > p->nMaxPendingData) + ){ + fts5IndexFlush(p); + } + + p->iWriteRowid = iRowid; + p->bDelete = bDelete; + return fts5IndexReturn(p); +} + +/* +** Commit data to disk. +*/ +static int sqlite3Fts5IndexSync(Fts5Index *p, int bCommit){ + assert( p->rc==SQLITE_OK ); + fts5IndexFlush(p); + if( bCommit ) fts5CloseReader(p); + return fts5IndexReturn(p); +} + +/* +** Discard any data stored in the in-memory hash tables. Do not write it +** to the database. Additionally, assume that the contents of the %_data +** table may have changed on disk. So any in-memory caches of %_data +** records must be invalidated. +*/ +static int sqlite3Fts5IndexRollback(Fts5Index *p){ + fts5CloseReader(p); + fts5IndexDiscardData(p); + assert( p->rc==SQLITE_OK ); + return SQLITE_OK; +} + +/* +** The %_data table is completely empty when this function is called. This +** function populates it with the initial structure objects for each index, +** and the initial version of the "averages" record (a zero-byte blob). +*/ +static int sqlite3Fts5IndexReinit(Fts5Index *p){ + Fts5Structure s; + memset(&s, 0, sizeof(Fts5Structure)); + fts5DataWrite(p, FTS5_AVERAGES_ROWID, (const u8*)"", 0); + fts5StructureWrite(p, &s); + return fts5IndexReturn(p); +} + +/* +** Open a new Fts5Index handle. If the bCreate argument is true, create +** and initialize the underlying %_data table. +** +** If successful, set *pp to point to the new object and return SQLITE_OK. +** Otherwise, set *pp to NULL and return an SQLite error code. +*/ +static int sqlite3Fts5IndexOpen( + Fts5Config *pConfig, + int bCreate, + Fts5Index **pp, + char **pzErr +){ + int rc = SQLITE_OK; + Fts5Index *p; /* New object */ + + *pp = p = (Fts5Index*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5Index)); + if( rc==SQLITE_OK ){ + p->pConfig = pConfig; + p->nWorkUnit = FTS5_WORK_UNIT; + p->nMaxPendingData = 1024*1024; + p->zDataTbl = sqlite3Fts5Mprintf(&rc, "%s_data", pConfig->zName); + if( p->zDataTbl && bCreate ){ + rc = sqlite3Fts5CreateTable( + pConfig, "data", "id INTEGER PRIMARY KEY, block BLOB", 0, pzErr + ); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5CreateTable(pConfig, "idx", + "segid, term, pgno, PRIMARY KEY(segid, term)", + 1, pzErr + ); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexReinit(p); + } + } + } + + assert( rc!=SQLITE_OK || p->rc==SQLITE_OK ); + if( rc ){ + sqlite3Fts5IndexClose(p); + *pp = 0; + } + return rc; +} + +/* +** Close a handle opened by an earlier call to sqlite3Fts5IndexOpen(). +*/ +static int sqlite3Fts5IndexClose(Fts5Index *p){ + int rc = SQLITE_OK; + if( p ){ + assert( p->pReader==0 ); + sqlite3_finalize(p->pWriter); + sqlite3_finalize(p->pDeleter); + sqlite3_finalize(p->pIdxWriter); + sqlite3_finalize(p->pIdxDeleter); + sqlite3_finalize(p->pIdxSelect); + sqlite3Fts5HashFree(p->pHash); + sqlite3_free(p->zDataTbl); + sqlite3_free(p); + } + return rc; +} + +/* +** Argument p points to a buffer containing utf-8 text that is n bytes in +** size. Return the number of bytes in the nChar character prefix of the +** buffer, or 0 if there are less than nChar characters in total. +*/ +static int fts5IndexCharlenToBytelen(const char *p, int nByte, int nChar){ + int n = 0; + int i; + for(i=0; i=nByte ) return 0; /* Input contains fewer than nChar chars */ + if( (unsigned char)p[n++]>=0xc0 ){ + while( (p[n] & 0xc0)==0x80 ) n++; + } + } + return n; +} + +/* +** pIn is a UTF-8 encoded string, nIn bytes in size. Return the number of +** unicode characters in the string. +*/ +static int fts5IndexCharlen(const char *pIn, int nIn){ + int nChar = 0; + int i = 0; + while( i=0xc0 ){ + while( i delete) */ + int iPos, /* Position of token within column */ + const char *pToken, int nToken /* Token to add or remove to or from index */ +){ + int i; /* Used to iterate through indexes */ + int rc = SQLITE_OK; /* Return code */ + Fts5Config *pConfig = p->pConfig; + + assert( p->rc==SQLITE_OK ); + assert( (iCol<0)==p->bDelete ); + + /* Add the entry to the main terms index. */ + rc = sqlite3Fts5HashWrite( + p->pHash, p->iWriteRowid, iCol, iPos, FTS5_MAIN_PREFIX, pToken, nToken + ); + + for(i=0; inPrefix && rc==SQLITE_OK; i++){ + int nByte = fts5IndexCharlenToBytelen(pToken, nToken, pConfig->aPrefix[i]); + if( nByte ){ + rc = sqlite3Fts5HashWrite(p->pHash, + p->iWriteRowid, iCol, iPos, FTS5_MAIN_PREFIX+i+1, pToken, nByte + ); + } + } + + return rc; +} + +/* +** Open a new iterator to iterate though all rowid that match the +** specified token or token prefix. +*/ +static int sqlite3Fts5IndexQuery( + Fts5Index *p, /* FTS index to query */ + const char *pToken, int nToken, /* Token (or prefix) to query for */ + int flags, /* Mask of FTS5INDEX_QUERY_X flags */ + Fts5Colset *pColset, /* Match these columns only */ + Fts5IndexIter **ppIter /* OUT: New iterator object */ +){ + Fts5Config *pConfig = p->pConfig; + Fts5IndexIter *pRet = 0; + int iIdx = 0; + Fts5Buffer buf = {0, 0, 0}; + + /* If the QUERY_SCAN flag is set, all other flags must be clear. */ + assert( (flags & FTS5INDEX_QUERY_SCAN)==0 + || (flags & FTS5INDEX_QUERY_SCAN)==FTS5INDEX_QUERY_SCAN + ); + + if( sqlite3Fts5BufferGrow(&p->rc, &buf, nToken+1)==0 ){ + memcpy(&buf.p[1], pToken, nToken); + +#ifdef SQLITE_DEBUG + /* If the QUERY_TEST_NOIDX flag was specified, then this must be a + ** prefix-query. Instead of using a prefix-index (if one exists), + ** evaluate the prefix query using the main FTS index. This is used + ** for internal sanity checking by the integrity-check in debug + ** mode only. */ + if( pConfig->bPrefixIndex==0 || (flags & FTS5INDEX_QUERY_TEST_NOIDX) ){ + assert( flags & FTS5INDEX_QUERY_PREFIX ); + iIdx = 1+pConfig->nPrefix; + }else +#endif + if( flags & FTS5INDEX_QUERY_PREFIX ){ + int nChar = fts5IndexCharlen(pToken, nToken); + for(iIdx=1; iIdx<=pConfig->nPrefix; iIdx++){ + if( pConfig->aPrefix[iIdx-1]==nChar ) break; + } + } + + if( iIdx<=pConfig->nPrefix ){ + Fts5Structure *pStruct = fts5StructureRead(p); + buf.p[0] = FTS5_MAIN_PREFIX + iIdx; + if( pStruct ){ + fts5MultiIterNew(p, pStruct, 1, flags, buf.p, nToken+1, -1, 0, &pRet); + fts5StructureRelease(pStruct); + } + }else{ + int bDesc = (flags & FTS5INDEX_QUERY_DESC)!=0; + buf.p[0] = FTS5_MAIN_PREFIX; + fts5SetupPrefixIter(p, bDesc, buf.p, nToken+1, pColset, &pRet); + } + + if( p->rc ){ + sqlite3Fts5IterClose(pRet); + pRet = 0; + fts5CloseReader(p); + } + *ppIter = pRet; + sqlite3Fts5BufferFree(&buf); + } + return fts5IndexReturn(p); +} + +/* +** Return true if the iterator passed as the only argument is at EOF. +*/ +static int sqlite3Fts5IterEof(Fts5IndexIter *pIter){ + assert( pIter->pIndex->rc==SQLITE_OK ); + return pIter->bEof; +} + +/* +** Move to the next matching rowid. +*/ +static int sqlite3Fts5IterNext(Fts5IndexIter *pIter){ + assert( pIter->pIndex->rc==SQLITE_OK ); + fts5MultiIterNext(pIter->pIndex, pIter, 0, 0); + return fts5IndexReturn(pIter->pIndex); +} + +/* +** Move to the next matching term/rowid. Used by the fts5vocab module. +*/ +static int sqlite3Fts5IterNextScan(Fts5IndexIter *pIter){ + Fts5Index *p = pIter->pIndex; + + assert( pIter->pIndex->rc==SQLITE_OK ); + + fts5MultiIterNext(p, pIter, 0, 0); + if( p->rc==SQLITE_OK ){ + Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + if( pSeg->pLeaf && pSeg->term.p[0]!=FTS5_MAIN_PREFIX ){ + fts5DataRelease(pSeg->pLeaf); + pSeg->pLeaf = 0; + pIter->bEof = 1; + } + } + + return fts5IndexReturn(pIter->pIndex); +} + +/* +** Move to the next matching rowid that occurs at or after iMatch. The +** definition of "at or after" depends on whether this iterator iterates +** in ascending or descending rowid order. +*/ +static int sqlite3Fts5IterNextFrom(Fts5IndexIter *pIter, i64 iMatch){ + fts5MultiIterNextFrom(pIter->pIndex, pIter, iMatch); + return fts5IndexReturn(pIter->pIndex); +} + +/* +** Return the current rowid. +*/ +static i64 sqlite3Fts5IterRowid(Fts5IndexIter *pIter){ + return fts5MultiIterRowid(pIter); +} + +/* +** Return the current term. +*/ +static const char *sqlite3Fts5IterTerm(Fts5IndexIter *pIter, int *pn){ + int n; + const char *z = (const char*)fts5MultiIterTerm(pIter, &n); + *pn = n-1; + return &z[1]; +} + + +static int fts5IndexExtractColset ( + Fts5Colset *pColset, /* Colset to filter on */ + const u8 *pPos, int nPos, /* Position list */ + Fts5Buffer *pBuf /* Output buffer */ +){ + int rc = SQLITE_OK; + int i; + + fts5BufferZero(pBuf); + for(i=0; inCol; i++){ + const u8 *pSub = pPos; + int nSub = fts5IndexExtractCol(&pSub, nPos, pColset->aiCol[i]); + if( nSub ){ + fts5BufferAppendBlob(&rc, pBuf, nSub, pSub); + } + } + return rc; +} + + +/* +** Return a pointer to a buffer containing a copy of the position list for +** the current entry. Output variable *pn is set to the size of the buffer +** in bytes before returning. +** +** The returned position list does not include the "number of bytes" varint +** field that starts the position list on disk. +*/ +static int sqlite3Fts5IterPoslist( + Fts5IndexIter *pIter, + Fts5Colset *pColset, /* Column filter (or NULL) */ + const u8 **pp, /* OUT: Pointer to position-list data */ + int *pn, /* OUT: Size of position-list in bytes */ + i64 *piRowid /* OUT: Current rowid */ +){ + Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + assert( pIter->pIndex->rc==SQLITE_OK ); + *piRowid = pSeg->iRowid; + if( pSeg->iLeafOffset+pSeg->nPos<=pSeg->pLeaf->szLeaf ){ + u8 *pPos = &pSeg->pLeaf->p[pSeg->iLeafOffset]; + if( pColset==0 || pIter->bFiltered ){ + *pn = pSeg->nPos; + *pp = pPos; + }else if( pColset->nCol==1 ){ + *pp = pPos; + *pn = fts5IndexExtractCol(pp, pSeg->nPos, pColset->aiCol[0]); + }else{ + fts5BufferZero(&pIter->poslist); + fts5IndexExtractColset(pColset, pPos, pSeg->nPos, &pIter->poslist); + *pp = pIter->poslist.p; + *pn = pIter->poslist.n; + } + }else{ + fts5BufferZero(&pIter->poslist); + fts5SegiterPoslist(pIter->pIndex, pSeg, pColset, &pIter->poslist); + *pp = pIter->poslist.p; + *pn = pIter->poslist.n; + } + return fts5IndexReturn(pIter->pIndex); +} + +/* +** This function is similar to sqlite3Fts5IterPoslist(), except that it +** copies the position list into the buffer supplied as the second +** argument. +*/ +static int sqlite3Fts5IterPoslistBuffer(Fts5IndexIter *pIter, Fts5Buffer *pBuf){ + Fts5Index *p = pIter->pIndex; + Fts5SegIter *pSeg = &pIter->aSeg[ pIter->aFirst[1].iFirst ]; + assert( p->rc==SQLITE_OK ); + fts5BufferZero(pBuf); + fts5SegiterPoslist(p, pSeg, 0, pBuf); + return fts5IndexReturn(p); +} + +/* +** Close an iterator opened by an earlier call to sqlite3Fts5IndexQuery(). +*/ +static void sqlite3Fts5IterClose(Fts5IndexIter *pIter){ + if( pIter ){ + Fts5Index *pIndex = pIter->pIndex; + fts5MultiIterFree(pIter->pIndex, pIter); + fts5CloseReader(pIndex); + } +} + +/* +** Read and decode the "averages" record from the database. +** +** Parameter anSize must point to an array of size nCol, where nCol is +** the number of user defined columns in the FTS table. +*/ +static int sqlite3Fts5IndexGetAverages(Fts5Index *p, i64 *pnRow, i64 *anSize){ + int nCol = p->pConfig->nCol; + Fts5Data *pData; + + *pnRow = 0; + memset(anSize, 0, sizeof(i64) * nCol); + pData = fts5DataRead(p, FTS5_AVERAGES_ROWID); + if( p->rc==SQLITE_OK && pData->nn ){ + int i = 0; + int iCol; + i += fts5GetVarint(&pData->p[i], (u64*)pnRow); + for(iCol=0; inn && iColp[i], (u64*)&anSize[iCol]); + } + } + + fts5DataRelease(pData); + return fts5IndexReturn(p); +} + +/* +** Replace the current "averages" record with the contents of the buffer +** supplied as the second argument. +*/ +static int sqlite3Fts5IndexSetAverages(Fts5Index *p, const u8 *pData, int nData){ + assert( p->rc==SQLITE_OK ); + fts5DataWrite(p, FTS5_AVERAGES_ROWID, pData, nData); + return fts5IndexReturn(p); +} + +/* +** Return the total number of blocks this module has read from the %_data +** table since it was created. +*/ +static int sqlite3Fts5IndexReads(Fts5Index *p){ + return p->nRead; +} + +/* +** Set the 32-bit cookie value stored at the start of all structure +** records to the value passed as the second argument. +** +** Return SQLITE_OK if successful, or an SQLite error code if an error +** occurs. +*/ +static int sqlite3Fts5IndexSetCookie(Fts5Index *p, int iNew){ + int rc; /* Return code */ + Fts5Config *pConfig = p->pConfig; /* Configuration object */ + u8 aCookie[4]; /* Binary representation of iNew */ + sqlite3_blob *pBlob = 0; + + assert( p->rc==SQLITE_OK ); + sqlite3Fts5Put32(aCookie, iNew); + + rc = sqlite3_blob_open(pConfig->db, pConfig->zDb, p->zDataTbl, + "block", FTS5_STRUCTURE_ROWID, 1, &pBlob + ); + if( rc==SQLITE_OK ){ + sqlite3_blob_write(pBlob, aCookie, 4, 0); + rc = sqlite3_blob_close(pBlob); + } + + return rc; +} + +static int sqlite3Fts5IndexLoadConfig(Fts5Index *p){ + Fts5Structure *pStruct; + pStruct = fts5StructureRead(p); + fts5StructureRelease(pStruct); + return fts5IndexReturn(p); +} + + +/************************************************************************* +************************************************************************** +** Below this point is the implementation of the integrity-check +** functionality. +*/ + +/* +** Return a simple checksum value based on the arguments. +*/ +static u64 fts5IndexEntryCksum( + i64 iRowid, + int iCol, + int iPos, + int iIdx, + const char *pTerm, + int nTerm +){ + int i; + u64 ret = iRowid; + ret += (ret<<3) + iCol; + ret += (ret<<3) + iPos; + if( iIdx>=0 ) ret += (ret<<3) + (FTS5_MAIN_PREFIX + iIdx); + for(i=0; iiLeaf ); + cksum1 += iRowid + ((i64)pgno<<32); + } + fts5DlidxIterFree(pDlidx); + pDlidx = 0; + + for(pDlidx=fts5DlidxIterInit(p, 1, iSegid, iLeaf); + fts5DlidxIterEof(p, pDlidx)==0; + fts5DlidxIterPrev(p, pDlidx) + ){ + i64 iRowid = fts5DlidxIterRowid(pDlidx); + int pgno = fts5DlidxIterPgno(pDlidx); + assert( fts5DlidxIterPgno(pDlidx)>iLeaf ); + cksum2 += iRowid + ((i64)pgno<<32); + } + fts5DlidxIterFree(pDlidx); + pDlidx = 0; + + if( p->rc==SQLITE_OK && cksum1!=cksum2 ) p->rc = FTS5_CORRUPT; +} + +static int fts5QueryCksum( + Fts5Index *p, /* Fts5 index object */ + int iIdx, + const char *z, /* Index key to query for */ + int n, /* Size of index key in bytes */ + int flags, /* Flags for Fts5IndexQuery */ + u64 *pCksum /* IN/OUT: Checksum value */ +){ + u64 cksum = *pCksum; + Fts5IndexIter *pIdxIter = 0; + int rc = sqlite3Fts5IndexQuery(p, z, n, flags, 0, &pIdxIter); + + while( rc==SQLITE_OK && 0==sqlite3Fts5IterEof(pIdxIter) ){ + i64 dummy; + const u8 *pPos; + int nPos; + i64 rowid = sqlite3Fts5IterRowid(pIdxIter); + rc = sqlite3Fts5IterPoslist(pIdxIter, 0, &pPos, &nPos, &dummy); + if( rc==SQLITE_OK ){ + Fts5PoslistReader sReader; + for(sqlite3Fts5PoslistReaderInit(pPos, nPos, &sReader); + sReader.bEof==0; + sqlite3Fts5PoslistReaderNext(&sReader) + ){ + int iCol = FTS5_POS2COLUMN(sReader.iPos); + int iOff = FTS5_POS2OFFSET(sReader.iPos); + cksum ^= fts5IndexEntryCksum(rowid, iCol, iOff, iIdx, z, n); + } + rc = sqlite3Fts5IterNext(pIdxIter); + } + } + sqlite3Fts5IterClose(pIdxIter); + + *pCksum = cksum; + return rc; +} + + +/* +** This function is also purely an internal test. It does not contribute to +** FTS functionality, or even the integrity-check, in any way. +*/ +static void fts5TestTerm( + Fts5Index *p, + Fts5Buffer *pPrev, /* Previous term */ + const char *z, int n, /* Possibly new term to test */ + u64 expected, + u64 *pCksum +){ + int rc = p->rc; + if( pPrev->n==0 ){ + fts5BufferSet(&rc, pPrev, n, (const u8*)z); + }else + if( rc==SQLITE_OK && (pPrev->n!=n || memcmp(pPrev->p, z, n)) ){ + u64 cksum3 = *pCksum; + const char *zTerm = (const char*)&pPrev->p[1]; /* term sans prefix-byte */ + int nTerm = pPrev->n-1; /* Size of zTerm in bytes */ + int iIdx = (pPrev->p[0] - FTS5_MAIN_PREFIX); + int flags = (iIdx==0 ? 0 : FTS5INDEX_QUERY_PREFIX); + u64 ck1 = 0; + u64 ck2 = 0; + + /* Check that the results returned for ASC and DESC queries are + ** the same. If not, call this corruption. */ + rc = fts5QueryCksum(p, iIdx, zTerm, nTerm, flags, &ck1); + if( rc==SQLITE_OK ){ + int f = flags|FTS5INDEX_QUERY_DESC; + rc = fts5QueryCksum(p, iIdx, zTerm, nTerm, f, &ck2); + } + if( rc==SQLITE_OK && ck1!=ck2 ) rc = FTS5_CORRUPT; + + /* If this is a prefix query, check that the results returned if the + ** the index is disabled are the same. In both ASC and DESC order. + ** + ** This check may only be performed if the hash table is empty. This + ** is because the hash table only supports a single scan query at + ** a time, and the multi-iter loop from which this function is called + ** is already performing such a scan. */ + if( p->nPendingData==0 ){ + if( iIdx>0 && rc==SQLITE_OK ){ + int f = flags|FTS5INDEX_QUERY_TEST_NOIDX; + ck2 = 0; + rc = fts5QueryCksum(p, iIdx, zTerm, nTerm, f, &ck2); + if( rc==SQLITE_OK && ck1!=ck2 ) rc = FTS5_CORRUPT; + } + if( iIdx>0 && rc==SQLITE_OK ){ + int f = flags|FTS5INDEX_QUERY_TEST_NOIDX|FTS5INDEX_QUERY_DESC; + ck2 = 0; + rc = fts5QueryCksum(p, iIdx, zTerm, nTerm, f, &ck2); + if( rc==SQLITE_OK && ck1!=ck2 ) rc = FTS5_CORRUPT; + } + } + + cksum3 ^= ck1; + fts5BufferSet(&rc, pPrev, n, (const u8*)z); + + if( rc==SQLITE_OK && cksum3!=expected ){ + rc = FTS5_CORRUPT; + } + *pCksum = cksum3; + } + p->rc = rc; +} + +#else +# define fts5TestDlidxReverse(x,y,z) +# define fts5TestTerm(u,v,w,x,y,z) +#endif + +/* +** Check that: +** +** 1) All leaves of pSeg between iFirst and iLast (inclusive) exist and +** contain zero terms. +** 2) All leaves of pSeg between iNoRowid and iLast (inclusive) exist and +** contain zero rowids. +*/ +static void fts5IndexIntegrityCheckEmpty( + Fts5Index *p, + Fts5StructureSegment *pSeg, /* Segment to check internal consistency */ + int iFirst, + int iNoRowid, + int iLast +){ + int i; + + /* Now check that the iter.nEmpty leaves following the current leaf + ** (a) exist and (b) contain no terms. */ + for(i=iFirst; p->rc==SQLITE_OK && i<=iLast; i++){ + Fts5Data *pLeaf = fts5DataRead(p, FTS5_SEGMENT_ROWID(pSeg->iSegid, i)); + if( pLeaf ){ + if( !fts5LeafIsTermless(pLeaf) ) p->rc = FTS5_CORRUPT; + if( i>=iNoRowid && 0!=fts5LeafFirstRowidOff(pLeaf) ) p->rc = FTS5_CORRUPT; + } + fts5DataRelease(pLeaf); + } +} + +static void fts5IntegrityCheckPgidx(Fts5Index *p, Fts5Data *pLeaf){ + int iTermOff = 0; + int ii; + + Fts5Buffer buf1 = {0,0,0}; + Fts5Buffer buf2 = {0,0,0}; + + ii = pLeaf->szLeaf; + while( iinn && p->rc==SQLITE_OK ){ + int res; + int iOff; + int nIncr; + + ii += fts5GetVarint32(&pLeaf->p[ii], nIncr); + iTermOff += nIncr; + iOff = iTermOff; + + if( iOff>=pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + }else if( iTermOff==nIncr ){ + int nByte; + iOff += fts5GetVarint32(&pLeaf->p[iOff], nByte); + if( (iOff+nByte)>pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + }else{ + fts5BufferSet(&p->rc, &buf1, nByte, &pLeaf->p[iOff]); + } + }else{ + int nKeep, nByte; + iOff += fts5GetVarint32(&pLeaf->p[iOff], nKeep); + iOff += fts5GetVarint32(&pLeaf->p[iOff], nByte); + if( nKeep>buf1.n || (iOff+nByte)>pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + }else{ + buf1.n = nKeep; + fts5BufferAppendBlob(&p->rc, &buf1, nByte, &pLeaf->p[iOff]); + } + + if( p->rc==SQLITE_OK ){ + res = fts5BufferCompare(&buf1, &buf2); + if( res<=0 ) p->rc = FTS5_CORRUPT; + } + } + fts5BufferSet(&p->rc, &buf2, buf1.n, buf1.p); + } + + fts5BufferFree(&buf1); + fts5BufferFree(&buf2); +} + +static void fts5IndexIntegrityCheckSegment( + Fts5Index *p, /* FTS5 backend object */ + Fts5StructureSegment *pSeg /* Segment to check internal consistency */ +){ + Fts5Config *pConfig = p->pConfig; + sqlite3_stmt *pStmt = 0; + int rc2; + int iIdxPrevLeaf = pSeg->pgnoFirst-1; + int iDlidxPrevLeaf = pSeg->pgnoLast; + + if( pSeg->pgnoFirst==0 ) return; + + fts5IndexPrepareStmt(p, &pStmt, sqlite3_mprintf( + "SELECT segid, term, (pgno>>1), (pgno&1) FROM %Q.'%q_idx' WHERE segid=%d", + pConfig->zDb, pConfig->zName, pSeg->iSegid + )); + + /* Iterate through the b-tree hierarchy. */ + while( p->rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){ + i64 iRow; /* Rowid for this leaf */ + Fts5Data *pLeaf; /* Data for this leaf */ + + int nIdxTerm = sqlite3_column_bytes(pStmt, 1); + const char *zIdxTerm = (const char*)sqlite3_column_text(pStmt, 1); + int iIdxLeaf = sqlite3_column_int(pStmt, 2); + int bIdxDlidx = sqlite3_column_int(pStmt, 3); + + /* If the leaf in question has already been trimmed from the segment, + ** ignore this b-tree entry. Otherwise, load it into memory. */ + if( iIdxLeafpgnoFirst ) continue; + iRow = FTS5_SEGMENT_ROWID(pSeg->iSegid, iIdxLeaf); + pLeaf = fts5DataRead(p, iRow); + if( pLeaf==0 ) break; + + /* Check that the leaf contains at least one term, and that it is equal + ** to or larger than the split-key in zIdxTerm. Also check that if there + ** is also a rowid pointer within the leaf page header, it points to a + ** location before the term. */ + if( pLeaf->nn<=pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + }else{ + int iOff; /* Offset of first term on leaf */ + int iRowidOff; /* Offset of first rowid on leaf */ + int nTerm; /* Size of term on leaf in bytes */ + int res; /* Comparison of term and split-key */ + + iOff = fts5LeafFirstTermOff(pLeaf); + iRowidOff = fts5LeafFirstRowidOff(pLeaf); + if( iRowidOff>=iOff ){ + p->rc = FTS5_CORRUPT; + }else{ + iOff += fts5GetVarint32(&pLeaf->p[iOff], nTerm); + res = memcmp(&pLeaf->p[iOff], zIdxTerm, MIN(nTerm, nIdxTerm)); + if( res==0 ) res = nTerm - nIdxTerm; + if( res<0 ) p->rc = FTS5_CORRUPT; + } + + fts5IntegrityCheckPgidx(p, pLeaf); + } + fts5DataRelease(pLeaf); + if( p->rc ) break; + + + /* Now check that the iter.nEmpty leaves following the current leaf + ** (a) exist and (b) contain no terms. */ + fts5IndexIntegrityCheckEmpty( + p, pSeg, iIdxPrevLeaf+1, iDlidxPrevLeaf+1, iIdxLeaf-1 + ); + if( p->rc ) break; + + /* If there is a doclist-index, check that it looks right. */ + if( bIdxDlidx ){ + Fts5DlidxIter *pDlidx = 0; /* For iterating through doclist index */ + int iPrevLeaf = iIdxLeaf; + int iSegid = pSeg->iSegid; + int iPg = 0; + i64 iKey; + + for(pDlidx=fts5DlidxIterInit(p, 0, iSegid, iIdxLeaf); + fts5DlidxIterEof(p, pDlidx)==0; + fts5DlidxIterNext(p, pDlidx) + ){ + + /* Check any rowid-less pages that occur before the current leaf. */ + for(iPg=iPrevLeaf+1; iPgrc = FTS5_CORRUPT; + fts5DataRelease(pLeaf); + } + } + iPrevLeaf = fts5DlidxIterPgno(pDlidx); + + /* Check that the leaf page indicated by the iterator really does + ** contain the rowid suggested by the same. */ + iKey = FTS5_SEGMENT_ROWID(iSegid, iPrevLeaf); + pLeaf = fts5DataRead(p, iKey); + if( pLeaf ){ + i64 iRowid; + int iRowidOff = fts5LeafFirstRowidOff(pLeaf); + ASSERT_SZLEAF_OK(pLeaf); + if( iRowidOff>=pLeaf->szLeaf ){ + p->rc = FTS5_CORRUPT; + }else{ + fts5GetVarint(&pLeaf->p[iRowidOff], (u64*)&iRowid); + if( iRowid!=fts5DlidxIterRowid(pDlidx) ) p->rc = FTS5_CORRUPT; + } + fts5DataRelease(pLeaf); + } + } + + iDlidxPrevLeaf = iPg; + fts5DlidxIterFree(pDlidx); + fts5TestDlidxReverse(p, iSegid, iIdxLeaf); + }else{ + iDlidxPrevLeaf = pSeg->pgnoLast; + /* TODO: Check there is no doclist index */ + } + + iIdxPrevLeaf = iIdxLeaf; + } + + rc2 = sqlite3_finalize(pStmt); + if( p->rc==SQLITE_OK ) p->rc = rc2; + + /* Page iter.iLeaf must now be the rightmost leaf-page in the segment */ +#if 0 + if( p->rc==SQLITE_OK && iter.iLeaf!=pSeg->pgnoLast ){ + p->rc = FTS5_CORRUPT; + } +#endif +} + + +/* +** Run internal checks to ensure that the FTS index (a) is internally +** consistent and (b) contains entries for which the XOR of the checksums +** as calculated by fts5IndexEntryCksum() is cksum. +** +** Return SQLITE_CORRUPT if any of the internal checks fail, or if the +** checksum does not match. Return SQLITE_OK if all checks pass without +** error, or some other SQLite error code if another error (e.g. OOM) +** occurs. +*/ +static int sqlite3Fts5IndexIntegrityCheck(Fts5Index *p, u64 cksum){ + u64 cksum2 = 0; /* Checksum based on contents of indexes */ + Fts5Buffer poslist = {0,0,0}; /* Buffer used to hold a poslist */ + Fts5IndexIter *pIter; /* Used to iterate through entire index */ + Fts5Structure *pStruct; /* Index structure */ + + /* Used by extra internal tests only run if NDEBUG is not defined */ + u64 cksum3 = 0; /* Checksum based on contents of indexes */ + Fts5Buffer term = {0,0,0}; /* Buffer used to hold most recent term */ + + /* Load the FTS index structure */ + pStruct = fts5StructureRead(p); + + /* Check that the internal nodes of each segment match the leaves */ + if( pStruct ){ + int iLvl, iSeg; + for(iLvl=0; iLvlnLevel; iLvl++){ + for(iSeg=0; iSegaLevel[iLvl].nSeg; iSeg++){ + Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg]; + fts5IndexIntegrityCheckSegment(p, pSeg); + } + } + } + + /* The cksum argument passed to this function is a checksum calculated + ** based on all expected entries in the FTS index (including prefix index + ** entries). This block checks that a checksum calculated based on the + ** actual contents of FTS index is identical. + ** + ** Two versions of the same checksum are calculated. The first (stack + ** variable cksum2) based on entries extracted from the full-text index + ** while doing a linear scan of each individual index in turn. + ** + ** As each term visited by the linear scans, a separate query for the + ** same term is performed. cksum3 is calculated based on the entries + ** extracted by these queries. + */ + for(fts5MultiIterNew(p, pStruct, 0, 0, 0, 0, -1, 0, &pIter); + fts5MultiIterEof(p, pIter)==0; + fts5MultiIterNext(p, pIter, 0, 0) + ){ + int n; /* Size of term in bytes */ + i64 iPos = 0; /* Position read from poslist */ + int iOff = 0; /* Offset within poslist */ + i64 iRowid = fts5MultiIterRowid(pIter); + char *z = (char*)fts5MultiIterTerm(pIter, &n); + + /* If this is a new term, query for it. Update cksum3 with the results. */ + fts5TestTerm(p, &term, z, n, cksum2, &cksum3); + + poslist.n = 0; + fts5SegiterPoslist(p, &pIter->aSeg[pIter->aFirst[1].iFirst] , 0, &poslist); + while( 0==sqlite3Fts5PoslistNext64(poslist.p, poslist.n, &iOff, &iPos) ){ + int iCol = FTS5_POS2COLUMN(iPos); + int iTokOff = FTS5_POS2OFFSET(iPos); + cksum2 ^= fts5IndexEntryCksum(iRowid, iCol, iTokOff, -1, z, n); + } + } + fts5TestTerm(p, &term, 0, 0, cksum2, &cksum3); + + fts5MultiIterFree(p, pIter); + if( p->rc==SQLITE_OK && cksum!=cksum2 ) p->rc = FTS5_CORRUPT; + + fts5StructureRelease(pStruct); + fts5BufferFree(&term); + fts5BufferFree(&poslist); + return fts5IndexReturn(p); +} + + +/* +** Calculate and return a checksum that is the XOR of the index entry +** checksum of all entries that would be generated by the token specified +** by the final 5 arguments. +*/ +static u64 sqlite3Fts5IndexCksum( + Fts5Config *pConfig, /* Configuration object */ + i64 iRowid, /* Document term appears in */ + int iCol, /* Column term appears in */ + int iPos, /* Position term appears in */ + const char *pTerm, int nTerm /* Term at iPos */ +){ + u64 ret = 0; /* Return value */ + int iIdx; /* For iterating through indexes */ + + ret = fts5IndexEntryCksum(iRowid, iCol, iPos, 0, pTerm, nTerm); + + for(iIdx=0; iIdxnPrefix; iIdx++){ + int nByte = fts5IndexCharlenToBytelen(pTerm, nTerm, pConfig->aPrefix[iIdx]); + if( nByte ){ + ret ^= fts5IndexEntryCksum(iRowid, iCol, iPos, iIdx+1, pTerm, nByte); + } + } + + return ret; +} + +/************************************************************************* +************************************************************************** +** Below this point is the implementation of the fts5_decode() scalar +** function only. +*/ + +/* +** Decode a segment-data rowid from the %_data table. This function is +** the opposite of macro FTS5_SEGMENT_ROWID(). +*/ +static void fts5DecodeRowid( + i64 iRowid, /* Rowid from %_data table */ + int *piSegid, /* OUT: Segment id */ + int *pbDlidx, /* OUT: Dlidx flag */ + int *piHeight, /* OUT: Height */ + int *piPgno /* OUT: Page number */ +){ + *piPgno = (int)(iRowid & (((i64)1 << FTS5_DATA_PAGE_B) - 1)); + iRowid >>= FTS5_DATA_PAGE_B; + + *piHeight = (int)(iRowid & (((i64)1 << FTS5_DATA_HEIGHT_B) - 1)); + iRowid >>= FTS5_DATA_HEIGHT_B; + + *pbDlidx = (int)(iRowid & 0x0001); + iRowid >>= FTS5_DATA_DLI_B; + + *piSegid = (int)(iRowid & (((i64)1 << FTS5_DATA_ID_B) - 1)); +} + +static void fts5DebugRowid(int *pRc, Fts5Buffer *pBuf, i64 iKey){ + int iSegid, iHeight, iPgno, bDlidx; /* Rowid compenents */ + fts5DecodeRowid(iKey, &iSegid, &bDlidx, &iHeight, &iPgno); + + if( iSegid==0 ){ + if( iKey==FTS5_AVERAGES_ROWID ){ + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "{averages} "); + }else{ + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "{structure}"); + } + } + else{ + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "{%ssegid=%d h=%d pgno=%d}", + bDlidx ? "dlidx " : "", iSegid, iHeight, iPgno + ); + } +} + +static void fts5DebugStructure( + int *pRc, /* IN/OUT: error code */ + Fts5Buffer *pBuf, + Fts5Structure *p +){ + int iLvl, iSeg; /* Iterate through levels, segments */ + + for(iLvl=0; iLvlnLevel; iLvl++){ + Fts5StructureLevel *pLvl = &p->aLevel[iLvl]; + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, + " {lvl=%d nMerge=%d nSeg=%d", iLvl, pLvl->nMerge, pLvl->nSeg + ); + for(iSeg=0; iSegnSeg; iSeg++){ + Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg]; + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " {id=%d leaves=%d..%d}", + pSeg->iSegid, pSeg->pgnoFirst, pSeg->pgnoLast + ); + } + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "}"); + } +} + +/* +** This is part of the fts5_decode() debugging aid. +** +** Arguments pBlob/nBlob contain a serialized Fts5Structure object. This +** function appends a human-readable representation of the same object +** to the buffer passed as the second argument. +*/ +static void fts5DecodeStructure( + int *pRc, /* IN/OUT: error code */ + Fts5Buffer *pBuf, + const u8 *pBlob, int nBlob +){ + int rc; /* Return code */ + Fts5Structure *p = 0; /* Decoded structure object */ + + rc = fts5StructureDecode(pBlob, nBlob, 0, &p); + if( rc!=SQLITE_OK ){ + *pRc = rc; + return; + } + + fts5DebugStructure(pRc, pBuf, p); + fts5StructureRelease(p); +} + +/* +** This is part of the fts5_decode() debugging aid. +** +** Arguments pBlob/nBlob contain an "averages" record. This function +** appends a human-readable representation of record to the buffer passed +** as the second argument. +*/ +static void fts5DecodeAverages( + int *pRc, /* IN/OUT: error code */ + Fts5Buffer *pBuf, + const u8 *pBlob, int nBlob +){ + int i = 0; + const char *zSpace = ""; + + while( i0 ){ + iOff = sqlite3Fts5GetVarint(a, (u64*)&iDocid); + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " id=%lld", iDocid); + } + while( iOff none) */ +}; + +/* +** A single object of this type is allocated when the FTS5 module is +** registered with a database handle. It is used to store pointers to +** all registered FTS5 extensions - tokenizers and auxiliary functions. +*/ +struct Fts5Global { + fts5_api api; /* User visible part of object (see fts5.h) */ + sqlite3 *db; /* Associated database connection */ + i64 iNextId; /* Used to allocate unique cursor ids */ + Fts5Auxiliary *pAux; /* First in list of all aux. functions */ + Fts5TokenizerModule *pTok; /* First in list of all tokenizer modules */ + Fts5TokenizerModule *pDfltTok; /* Default tokenizer module */ + Fts5Cursor *pCsr; /* First in list of all open cursors */ +}; + +/* +** Each auxiliary function registered with the FTS5 module is represented +** by an object of the following type. All such objects are stored as part +** of the Fts5Global.pAux list. +*/ +struct Fts5Auxiliary { + Fts5Global *pGlobal; /* Global context for this function */ + char *zFunc; /* Function name (nul-terminated) */ + void *pUserData; /* User-data pointer */ + fts5_extension_function xFunc; /* Callback function */ + void (*xDestroy)(void*); /* Destructor function */ + Fts5Auxiliary *pNext; /* Next registered auxiliary function */ +}; + +/* +** Each tokenizer module registered with the FTS5 module is represented +** by an object of the following type. All such objects are stored as part +** of the Fts5Global.pTok list. +*/ +struct Fts5TokenizerModule { + char *zName; /* Name of tokenizer */ + void *pUserData; /* User pointer passed to xCreate() */ + fts5_tokenizer x; /* Tokenizer functions */ + void (*xDestroy)(void*); /* Destructor function */ + Fts5TokenizerModule *pNext; /* Next registered tokenizer module */ +}; + +/* +** Virtual-table object. +*/ +struct Fts5Table { + sqlite3_vtab base; /* Base class used by SQLite core */ + Fts5Config *pConfig; /* Virtual table configuration */ + Fts5Index *pIndex; /* Full-text index */ + Fts5Storage *pStorage; /* Document store */ + Fts5Global *pGlobal; /* Global (connection wide) data */ + Fts5Cursor *pSortCsr; /* Sort data from this cursor */ +#ifdef SQLITE_DEBUG + struct Fts5TransactionState ts; +#endif +}; + +struct Fts5MatchPhrase { + Fts5Buffer *pPoslist; /* Pointer to current poslist */ + int nTerm; /* Size of phrase in terms */ +}; + +/* +** pStmt: +** SELECT rowid, FROM ORDER BY +rank; +** +** aIdx[]: +** There is one entry in the aIdx[] array for each phrase in the query, +** the value of which is the offset within aPoslist[] following the last +** byte of the position list for the corresponding phrase. +*/ +struct Fts5Sorter { + sqlite3_stmt *pStmt; + i64 iRowid; /* Current rowid */ + const u8 *aPoslist; /* Position lists for current row */ + int nIdx; /* Number of entries in aIdx[] */ + int aIdx[1]; /* Offsets into aPoslist for current row */ +}; + + +/* +** Virtual-table cursor object. +** +** iSpecial: +** If this is a 'special' query (refer to function fts5SpecialMatch()), +** then this variable contains the result of the query. +** +** iFirstRowid, iLastRowid: +** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the +** cursor iterates in ascending order of rowids, iFirstRowid is the lower +** limit of rowids to return, and iLastRowid the upper. In other words, the +** WHERE clause in the user's query might have been: +** +** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid +** +** If the cursor iterates in descending order of rowid, iFirstRowid +** is the upper limit (i.e. the "first" rowid visited) and iLastRowid +** the lower. +*/ +struct Fts5Cursor { + sqlite3_vtab_cursor base; /* Base class used by SQLite core */ + Fts5Cursor *pNext; /* Next cursor in Fts5Cursor.pCsr list */ + int *aColumnSize; /* Values for xColumnSize() */ + i64 iCsrId; /* Cursor id */ + + /* Zero from this point onwards on cursor reset */ + int ePlan; /* FTS5_PLAN_XXX value */ + int bDesc; /* True for "ORDER BY rowid DESC" queries */ + i64 iFirstRowid; /* Return no rowids earlier than this */ + i64 iLastRowid; /* Return no rowids later than this */ + sqlite3_stmt *pStmt; /* Statement used to read %_content */ + Fts5Expr *pExpr; /* Expression for MATCH queries */ + Fts5Sorter *pSorter; /* Sorter for "ORDER BY rank" queries */ + int csrflags; /* Mask of cursor flags (see below) */ + i64 iSpecial; /* Result of special query */ + + /* "rank" function. Populated on demand from vtab.xColumn(). */ + char *zRank; /* Custom rank function */ + char *zRankArgs; /* Custom rank function args */ + Fts5Auxiliary *pRank; /* Rank callback (or NULL) */ + int nRankArg; /* Number of trailing arguments for rank() */ + sqlite3_value **apRankArg; /* Array of trailing arguments */ + sqlite3_stmt *pRankArgStmt; /* Origin of objects in apRankArg[] */ + + /* Auxiliary data storage */ + Fts5Auxiliary *pAux; /* Currently executing extension function */ + Fts5Auxdata *pAuxdata; /* First in linked list of saved aux-data */ + + /* Cache used by auxiliary functions xInst() and xInstCount() */ + Fts5PoslistReader *aInstIter; /* One for each phrase */ + int nInstAlloc; /* Size of aInst[] array (entries / 3) */ + int nInstCount; /* Number of phrase instances */ + int *aInst; /* 3 integers per phrase instance */ +}; + +/* +** Bits that make up the "idxNum" parameter passed indirectly by +** xBestIndex() to xFilter(). +*/ +#define FTS5_BI_MATCH 0x0001 /* MATCH ? */ +#define FTS5_BI_RANK 0x0002 /* rank MATCH ? */ +#define FTS5_BI_ROWID_EQ 0x0004 /* rowid == ? */ +#define FTS5_BI_ROWID_LE 0x0008 /* rowid <= ? */ +#define FTS5_BI_ROWID_GE 0x0010 /* rowid >= ? */ + +#define FTS5_BI_ORDER_RANK 0x0020 +#define FTS5_BI_ORDER_ROWID 0x0040 +#define FTS5_BI_ORDER_DESC 0x0080 + +/* +** Values for Fts5Cursor.csrflags +*/ +#define FTS5CSR_REQUIRE_CONTENT 0x01 +#define FTS5CSR_REQUIRE_DOCSIZE 0x02 +#define FTS5CSR_REQUIRE_INST 0x04 +#define FTS5CSR_EOF 0x08 +#define FTS5CSR_FREE_ZRANK 0x10 +#define FTS5CSR_REQUIRE_RESEEK 0x20 + +#define BitFlagAllTest(x,y) (((x) & (y))==(y)) +#define BitFlagTest(x,y) (((x) & (y))!=0) + + +/* +** Macros to Set(), Clear() and Test() cursor flags. +*/ +#define CsrFlagSet(pCsr, flag) ((pCsr)->csrflags |= (flag)) +#define CsrFlagClear(pCsr, flag) ((pCsr)->csrflags &= ~(flag)) +#define CsrFlagTest(pCsr, flag) ((pCsr)->csrflags & (flag)) + +struct Fts5Auxdata { + Fts5Auxiliary *pAux; /* Extension to which this belongs */ + void *pPtr; /* Pointer value */ + void(*xDelete)(void*); /* Destructor */ + Fts5Auxdata *pNext; /* Next object in linked list */ +}; + +#ifdef SQLITE_DEBUG +#define FTS5_BEGIN 1 +#define FTS5_SYNC 2 +#define FTS5_COMMIT 3 +#define FTS5_ROLLBACK 4 +#define FTS5_SAVEPOINT 5 +#define FTS5_RELEASE 6 +#define FTS5_ROLLBACKTO 7 +static void fts5CheckTransactionState(Fts5Table *p, int op, int iSavepoint){ + switch( op ){ + case FTS5_BEGIN: + assert( p->ts.eState==0 ); + p->ts.eState = 1; + p->ts.iSavepoint = -1; + break; + + case FTS5_SYNC: + assert( p->ts.eState==1 ); + p->ts.eState = 2; + break; + + case FTS5_COMMIT: + assert( p->ts.eState==2 ); + p->ts.eState = 0; + break; + + case FTS5_ROLLBACK: + assert( p->ts.eState==1 || p->ts.eState==2 || p->ts.eState==0 ); + p->ts.eState = 0; + break; + + case FTS5_SAVEPOINT: + assert( p->ts.eState==1 ); + assert( iSavepoint>=0 ); + assert( iSavepoint>p->ts.iSavepoint ); + p->ts.iSavepoint = iSavepoint; + break; + + case FTS5_RELEASE: + assert( p->ts.eState==1 ); + assert( iSavepoint>=0 ); + assert( iSavepoint<=p->ts.iSavepoint ); + p->ts.iSavepoint = iSavepoint-1; + break; + + case FTS5_ROLLBACKTO: + assert( p->ts.eState==1 ); + assert( iSavepoint>=0 ); + assert( iSavepoint<=p->ts.iSavepoint ); + p->ts.iSavepoint = iSavepoint; + break; + } +} +#else +# define fts5CheckTransactionState(x,y,z) +#endif + +/* +** Return true if pTab is a contentless table. +*/ +static int fts5IsContentless(Fts5Table *pTab){ + return pTab->pConfig->eContent==FTS5_CONTENT_NONE; +} + +/* +** Delete a virtual table handle allocated by fts5InitVtab(). +*/ +static void fts5FreeVtab(Fts5Table *pTab){ + if( pTab ){ + sqlite3Fts5IndexClose(pTab->pIndex); + sqlite3Fts5StorageClose(pTab->pStorage); + sqlite3Fts5ConfigFree(pTab->pConfig); + sqlite3_free(pTab); + } +} + +/* +** The xDisconnect() virtual table method. +*/ +static int fts5DisconnectMethod(sqlite3_vtab *pVtab){ + fts5FreeVtab((Fts5Table*)pVtab); + return SQLITE_OK; +} + +/* +** The xDestroy() virtual table method. +*/ +static int fts5DestroyMethod(sqlite3_vtab *pVtab){ + Fts5Table *pTab = (Fts5Table*)pVtab; + int rc = sqlite3Fts5DropAll(pTab->pConfig); + if( rc==SQLITE_OK ){ + fts5FreeVtab((Fts5Table*)pVtab); + } + return rc; +} + +/* +** This function is the implementation of both the xConnect and xCreate +** methods of the FTS3 virtual table. +** +** The argv[] array contains the following: +** +** argv[0] -> module name ("fts5") +** argv[1] -> database name +** argv[2] -> table name +** argv[...] -> "column name" and other module argument fields. +*/ +static int fts5InitVtab( + int bCreate, /* True for xCreate, false for xConnect */ + sqlite3 *db, /* The SQLite database connection */ + void *pAux, /* Hash table containing tokenizers */ + int argc, /* Number of elements in argv array */ + const char * const *argv, /* xCreate/xConnect argument array */ + sqlite3_vtab **ppVTab, /* Write the resulting vtab structure here */ + char **pzErr /* Write any error message here */ +){ + Fts5Global *pGlobal = (Fts5Global*)pAux; + const char **azConfig = (const char**)argv; + int rc = SQLITE_OK; /* Return code */ + Fts5Config *pConfig = 0; /* Results of parsing argc/argv */ + Fts5Table *pTab = 0; /* New virtual table object */ + + /* Allocate the new vtab object and parse the configuration */ + pTab = (Fts5Table*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5Table)); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5ConfigParse(pGlobal, db, argc, azConfig, &pConfig, pzErr); + assert( (rc==SQLITE_OK && *pzErr==0) || pConfig==0 ); + } + if( rc==SQLITE_OK ){ + pTab->pConfig = pConfig; + pTab->pGlobal = pGlobal; + } + + /* Open the index sub-system */ + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexOpen(pConfig, bCreate, &pTab->pIndex, pzErr); + } + + /* Open the storage sub-system */ + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageOpen( + pConfig, pTab->pIndex, bCreate, &pTab->pStorage, pzErr + ); + } + + /* Call sqlite3_declare_vtab() */ + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5ConfigDeclareVtab(pConfig); + } + + if( rc!=SQLITE_OK ){ + fts5FreeVtab(pTab); + pTab = 0; + }else if( bCreate ){ + fts5CheckTransactionState(pTab, FTS5_BEGIN, 0); + } + *ppVTab = (sqlite3_vtab*)pTab; + return rc; +} + +/* +** The xConnect() and xCreate() methods for the virtual table. All the +** work is done in function fts5InitVtab(). +*/ +static int fts5ConnectMethod( + sqlite3 *db, /* Database connection */ + void *pAux, /* Pointer to tokenizer hash table */ + int argc, /* Number of elements in argv array */ + const char * const *argv, /* xCreate/xConnect argument array */ + sqlite3_vtab **ppVtab, /* OUT: New sqlite3_vtab object */ + char **pzErr /* OUT: sqlite3_malloc'd error message */ +){ + return fts5InitVtab(0, db, pAux, argc, argv, ppVtab, pzErr); +} +static int fts5CreateMethod( + sqlite3 *db, /* Database connection */ + void *pAux, /* Pointer to tokenizer hash table */ + int argc, /* Number of elements in argv array */ + const char * const *argv, /* xCreate/xConnect argument array */ + sqlite3_vtab **ppVtab, /* OUT: New sqlite3_vtab object */ + char **pzErr /* OUT: sqlite3_malloc'd error message */ +){ + return fts5InitVtab(1, db, pAux, argc, argv, ppVtab, pzErr); +} + +/* +** The different query plans. +*/ +#define FTS5_PLAN_MATCH 1 /* ( MATCH ?) */ +#define FTS5_PLAN_SOURCE 2 /* A source cursor for SORTED_MATCH */ +#define FTS5_PLAN_SPECIAL 3 /* An internal query */ +#define FTS5_PLAN_SORTED_MATCH 4 /* ( MATCH ? ORDER BY rank) */ +#define FTS5_PLAN_SCAN 5 /* No usable constraint */ +#define FTS5_PLAN_ROWID 6 /* (rowid = ?) */ + +/* +** Set the SQLITE_INDEX_SCAN_UNIQUE flag in pIdxInfo->flags. Unless this +** extension is currently being used by a version of SQLite too old to +** support index-info flags. In that case this function is a no-op. +*/ +static void fts5SetUniqueFlag(sqlite3_index_info *pIdxInfo){ +#if SQLITE_VERSION_NUMBER>=3008012 + if( sqlite3_libversion_number()>=3008012 ){ + pIdxInfo->idxFlags |= SQLITE_INDEX_SCAN_UNIQUE; + } +#endif +} + +/* +** Implementation of the xBestIndex method for FTS5 tables. Within the +** WHERE constraint, it searches for the following: +** +** 1. A MATCH constraint against the special column. +** 2. A MATCH constraint against the "rank" column. +** 3. An == constraint against the rowid column. +** 4. A < or <= constraint against the rowid column. +** 5. A > or >= constraint against the rowid column. +** +** Within the ORDER BY, either: +** +** 5. ORDER BY rank [ASC|DESC] +** 6. ORDER BY rowid [ASC|DESC] +** +** Costs are assigned as follows: +** +** a) If an unusable MATCH operator is present in the WHERE clause, the +** cost is unconditionally set to 1e50 (a really big number). +** +** a) If a MATCH operator is present, the cost depends on the other +** constraints also present. As follows: +** +** * No other constraints: cost=1000.0 +** * One rowid range constraint: cost=750.0 +** * Both rowid range constraints: cost=500.0 +** * An == rowid constraint: cost=100.0 +** +** b) Otherwise, if there is no MATCH: +** +** * No other constraints: cost=1000000.0 +** * One rowid range constraint: cost=750000.0 +** * Both rowid range constraints: cost=250000.0 +** * An == rowid constraint: cost=10.0 +** +** Costs are not modified by the ORDER BY clause. +*/ +static int fts5BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){ + Fts5Table *pTab = (Fts5Table*)pVTab; + Fts5Config *pConfig = pTab->pConfig; + int idxFlags = 0; /* Parameter passed through to xFilter() */ + int bHasMatch; + int iNext; + int i; + + struct Constraint { + int op; /* Mask against sqlite3_index_constraint.op */ + int fts5op; /* FTS5 mask for idxFlags */ + int iCol; /* 0==rowid, 1==tbl, 2==rank */ + int omit; /* True to omit this if found */ + int iConsIndex; /* Index in pInfo->aConstraint[] */ + } aConstraint[] = { + {SQLITE_INDEX_CONSTRAINT_MATCH|SQLITE_INDEX_CONSTRAINT_EQ, + FTS5_BI_MATCH, 1, 1, -1}, + {SQLITE_INDEX_CONSTRAINT_MATCH|SQLITE_INDEX_CONSTRAINT_EQ, + FTS5_BI_RANK, 2, 1, -1}, + {SQLITE_INDEX_CONSTRAINT_EQ, FTS5_BI_ROWID_EQ, 0, 0, -1}, + {SQLITE_INDEX_CONSTRAINT_LT|SQLITE_INDEX_CONSTRAINT_LE, + FTS5_BI_ROWID_LE, 0, 0, -1}, + {SQLITE_INDEX_CONSTRAINT_GT|SQLITE_INDEX_CONSTRAINT_GE, + FTS5_BI_ROWID_GE, 0, 0, -1}, + }; + + int aColMap[3]; + aColMap[0] = -1; + aColMap[1] = pConfig->nCol; + aColMap[2] = pConfig->nCol+1; + + /* Set idxFlags flags for all WHERE clause terms that will be used. */ + for(i=0; inConstraint; i++){ + struct sqlite3_index_constraint *p = &pInfo->aConstraint[i]; + int j; + for(j=0; jiColumn==aColMap[pC->iCol] && p->op & pC->op ){ + if( p->usable ){ + pC->iConsIndex = i; + idxFlags |= pC->fts5op; + }else if( j==0 ){ + /* As there exists an unusable MATCH constraint this is an + ** unusable plan. Set a prohibitively high cost. */ + pInfo->estimatedCost = 1e50; + return SQLITE_OK; + } + } + } + } + + /* Set idxFlags flags for the ORDER BY clause */ + if( pInfo->nOrderBy==1 ){ + int iSort = pInfo->aOrderBy[0].iColumn; + if( iSort==(pConfig->nCol+1) && BitFlagTest(idxFlags, FTS5_BI_MATCH) ){ + idxFlags |= FTS5_BI_ORDER_RANK; + }else if( iSort==-1 ){ + idxFlags |= FTS5_BI_ORDER_ROWID; + } + if( BitFlagTest(idxFlags, FTS5_BI_ORDER_RANK|FTS5_BI_ORDER_ROWID) ){ + pInfo->orderByConsumed = 1; + if( pInfo->aOrderBy[0].desc ){ + idxFlags |= FTS5_BI_ORDER_DESC; + } + } + } + + /* Calculate the estimated cost based on the flags set in idxFlags. */ + bHasMatch = BitFlagTest(idxFlags, FTS5_BI_MATCH); + if( BitFlagTest(idxFlags, FTS5_BI_ROWID_EQ) ){ + pInfo->estimatedCost = bHasMatch ? 100.0 : 10.0; + if( bHasMatch==0 ) fts5SetUniqueFlag(pInfo); + }else if( BitFlagAllTest(idxFlags, FTS5_BI_ROWID_LE|FTS5_BI_ROWID_GE) ){ + pInfo->estimatedCost = bHasMatch ? 500.0 : 250000.0; + }else if( BitFlagTest(idxFlags, FTS5_BI_ROWID_LE|FTS5_BI_ROWID_GE) ){ + pInfo->estimatedCost = bHasMatch ? 750.0 : 750000.0; + }else{ + pInfo->estimatedCost = bHasMatch ? 1000.0 : 1000000.0; + } + + /* Assign argvIndex values to each constraint in use. */ + iNext = 1; + for(i=0; iiConsIndex>=0 ){ + pInfo->aConstraintUsage[pC->iConsIndex].argvIndex = iNext++; + pInfo->aConstraintUsage[pC->iConsIndex].omit = pC->omit; + } + } + + pInfo->idxNum = idxFlags; + return SQLITE_OK; +} + +/* +** Implementation of xOpen method. +*/ +static int fts5OpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr){ + Fts5Table *pTab = (Fts5Table*)pVTab; + Fts5Config *pConfig = pTab->pConfig; + Fts5Cursor *pCsr; /* New cursor object */ + int nByte; /* Bytes of space to allocate */ + int rc = SQLITE_OK; /* Return code */ + + nByte = sizeof(Fts5Cursor) + pConfig->nCol * sizeof(int); + pCsr = (Fts5Cursor*)sqlite3_malloc(nByte); + if( pCsr ){ + Fts5Global *pGlobal = pTab->pGlobal; + memset(pCsr, 0, nByte); + pCsr->aColumnSize = (int*)&pCsr[1]; + pCsr->pNext = pGlobal->pCsr; + pGlobal->pCsr = pCsr; + pCsr->iCsrId = ++pGlobal->iNextId; + }else{ + rc = SQLITE_NOMEM; + } + *ppCsr = (sqlite3_vtab_cursor*)pCsr; + return rc; +} + +static int fts5StmtType(Fts5Cursor *pCsr){ + if( pCsr->ePlan==FTS5_PLAN_SCAN ){ + return (pCsr->bDesc) ? FTS5_STMT_SCAN_DESC : FTS5_STMT_SCAN_ASC; + } + return FTS5_STMT_LOOKUP; +} + +/* +** This function is called after the cursor passed as the only argument +** is moved to point at a different row. It clears all cached data +** specific to the previous row stored by the cursor object. +*/ +static void fts5CsrNewrow(Fts5Cursor *pCsr){ + CsrFlagSet(pCsr, + FTS5CSR_REQUIRE_CONTENT + | FTS5CSR_REQUIRE_DOCSIZE + | FTS5CSR_REQUIRE_INST + ); +} + +static void fts5FreeCursorComponents(Fts5Cursor *pCsr){ + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + Fts5Auxdata *pData; + Fts5Auxdata *pNext; + + sqlite3_free(pCsr->aInstIter); + sqlite3_free(pCsr->aInst); + if( pCsr->pStmt ){ + int eStmt = fts5StmtType(pCsr); + sqlite3Fts5StorageStmtRelease(pTab->pStorage, eStmt, pCsr->pStmt); + } + if( pCsr->pSorter ){ + Fts5Sorter *pSorter = pCsr->pSorter; + sqlite3_finalize(pSorter->pStmt); + sqlite3_free(pSorter); + } + + if( pCsr->ePlan!=FTS5_PLAN_SOURCE ){ + sqlite3Fts5ExprFree(pCsr->pExpr); + } + + for(pData=pCsr->pAuxdata; pData; pData=pNext){ + pNext = pData->pNext; + if( pData->xDelete ) pData->xDelete(pData->pPtr); + sqlite3_free(pData); + } + + sqlite3_finalize(pCsr->pRankArgStmt); + sqlite3_free(pCsr->apRankArg); + + if( CsrFlagTest(pCsr, FTS5CSR_FREE_ZRANK) ){ + sqlite3_free(pCsr->zRank); + sqlite3_free(pCsr->zRankArgs); + } + + memset(&pCsr->ePlan, 0, sizeof(Fts5Cursor) - ((u8*)&pCsr->ePlan - (u8*)pCsr)); +} + + +/* +** Close the cursor. For additional information see the documentation +** on the xClose method of the virtual table interface. +*/ +static int fts5CloseMethod(sqlite3_vtab_cursor *pCursor){ + if( pCursor ){ + Fts5Table *pTab = (Fts5Table*)(pCursor->pVtab); + Fts5Cursor *pCsr = (Fts5Cursor*)pCursor; + Fts5Cursor **pp; + + fts5FreeCursorComponents(pCsr); + /* Remove the cursor from the Fts5Global.pCsr list */ + for(pp=&pTab->pGlobal->pCsr; (*pp)!=pCsr; pp=&(*pp)->pNext); + *pp = pCsr->pNext; + + sqlite3_free(pCsr); + } + return SQLITE_OK; +} + +static int fts5SorterNext(Fts5Cursor *pCsr){ + Fts5Sorter *pSorter = pCsr->pSorter; + int rc; + + rc = sqlite3_step(pSorter->pStmt); + if( rc==SQLITE_DONE ){ + rc = SQLITE_OK; + CsrFlagSet(pCsr, FTS5CSR_EOF); + }else if( rc==SQLITE_ROW ){ + const u8 *a; + const u8 *aBlob; + int nBlob; + int i; + int iOff = 0; + rc = SQLITE_OK; + + pSorter->iRowid = sqlite3_column_int64(pSorter->pStmt, 0); + nBlob = sqlite3_column_bytes(pSorter->pStmt, 1); + aBlob = a = sqlite3_column_blob(pSorter->pStmt, 1); + + for(i=0; i<(pSorter->nIdx-1); i++){ + int iVal; + a += fts5GetVarint32(a, iVal); + iOff += iVal; + pSorter->aIdx[i] = iOff; + } + pSorter->aIdx[i] = &aBlob[nBlob] - a; + + pSorter->aPoslist = a; + fts5CsrNewrow(pCsr); + } + + return rc; +} + + +/* +** Set the FTS5CSR_REQUIRE_RESEEK flag on all FTS5_PLAN_MATCH cursors +** open on table pTab. +*/ +static void fts5TripCursors(Fts5Table *pTab){ + Fts5Cursor *pCsr; + for(pCsr=pTab->pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){ + if( pCsr->ePlan==FTS5_PLAN_MATCH + && pCsr->base.pVtab==(sqlite3_vtab*)pTab + ){ + CsrFlagSet(pCsr, FTS5CSR_REQUIRE_RESEEK); + } + } +} + +/* +** If the REQUIRE_RESEEK flag is set on the cursor passed as the first +** argument, close and reopen all Fts5IndexIter iterators that the cursor +** is using. Then attempt to move the cursor to a rowid equal to or laster +** (in the cursors sort order - ASC or DESC) than the current rowid. +** +** If the new rowid is not equal to the old, set output parameter *pbSkip +** to 1 before returning. Otherwise, leave it unchanged. +** +** Return SQLITE_OK if successful or if no reseek was required, or an +** error code if an error occurred. +*/ +static int fts5CursorReseek(Fts5Cursor *pCsr, int *pbSkip){ + int rc = SQLITE_OK; + assert( *pbSkip==0 ); + if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_RESEEK) ){ + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + int bDesc = pCsr->bDesc; + i64 iRowid = sqlite3Fts5ExprRowid(pCsr->pExpr); + + rc = sqlite3Fts5ExprFirst(pCsr->pExpr, pTab->pIndex, iRowid, bDesc); + if( rc==SQLITE_OK && iRowid!=sqlite3Fts5ExprRowid(pCsr->pExpr) ){ + *pbSkip = 1; + } + + CsrFlagClear(pCsr, FTS5CSR_REQUIRE_RESEEK); + fts5CsrNewrow(pCsr); + if( sqlite3Fts5ExprEof(pCsr->pExpr) ){ + CsrFlagSet(pCsr, FTS5CSR_EOF); + } + } + return rc; +} + + +/* +** Advance the cursor to the next row in the table that matches the +** search criteria. +** +** Return SQLITE_OK if nothing goes wrong. SQLITE_OK is returned +** even if we reach end-of-file. The fts5EofMethod() will be called +** subsequently to determine whether or not an EOF was hit. +*/ +static int fts5NextMethod(sqlite3_vtab_cursor *pCursor){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCursor; + int rc = SQLITE_OK; + + assert( (pCsr->ePlan<3)== + (pCsr->ePlan==FTS5_PLAN_MATCH || pCsr->ePlan==FTS5_PLAN_SOURCE) + ); + + if( pCsr->ePlan<3 ){ + int bSkip = 0; + if( (rc = fts5CursorReseek(pCsr, &bSkip)) || bSkip ) return rc; + rc = sqlite3Fts5ExprNext(pCsr->pExpr, pCsr->iLastRowid); + if( sqlite3Fts5ExprEof(pCsr->pExpr) ){ + CsrFlagSet(pCsr, FTS5CSR_EOF); + } + fts5CsrNewrow(pCsr); + }else{ + switch( pCsr->ePlan ){ + case FTS5_PLAN_SPECIAL: { + CsrFlagSet(pCsr, FTS5CSR_EOF); + break; + } + + case FTS5_PLAN_SORTED_MATCH: { + rc = fts5SorterNext(pCsr); + break; + } + + default: + rc = sqlite3_step(pCsr->pStmt); + if( rc!=SQLITE_ROW ){ + CsrFlagSet(pCsr, FTS5CSR_EOF); + rc = sqlite3_reset(pCsr->pStmt); + }else{ + rc = SQLITE_OK; + } + break; + } + } + + return rc; +} + +static int fts5CursorFirstSorted(Fts5Table *pTab, Fts5Cursor *pCsr, int bDesc){ + Fts5Config *pConfig = pTab->pConfig; + Fts5Sorter *pSorter; + int nPhrase; + int nByte; + int rc = SQLITE_OK; + char *zSql; + const char *zRank = pCsr->zRank; + const char *zRankArgs = pCsr->zRankArgs; + + nPhrase = sqlite3Fts5ExprPhraseCount(pCsr->pExpr); + nByte = sizeof(Fts5Sorter) + sizeof(int) * (nPhrase-1); + pSorter = (Fts5Sorter*)sqlite3_malloc(nByte); + if( pSorter==0 ) return SQLITE_NOMEM; + memset(pSorter, 0, nByte); + pSorter->nIdx = nPhrase; + + /* TODO: It would be better to have some system for reusing statement + ** handles here, rather than preparing a new one for each query. But that + ** is not possible as SQLite reference counts the virtual table objects. + ** And since the statement required here reads from this very virtual + ** table, saving it creates a circular reference. + ** + ** If SQLite a built-in statement cache, this wouldn't be a problem. */ + zSql = sqlite3Fts5Mprintf(&rc, + "SELECT rowid, rank FROM %Q.%Q ORDER BY %s(%s%s%s) %s", + pConfig->zDb, pConfig->zName, zRank, pConfig->zName, + (zRankArgs ? ", " : ""), + (zRankArgs ? zRankArgs : ""), + bDesc ? "DESC" : "ASC" + ); + if( zSql ){ + rc = sqlite3_prepare_v2(pConfig->db, zSql, -1, &pSorter->pStmt, 0); + sqlite3_free(zSql); + } + + pCsr->pSorter = pSorter; + if( rc==SQLITE_OK ){ + assert( pTab->pSortCsr==0 ); + pTab->pSortCsr = pCsr; + rc = fts5SorterNext(pCsr); + pTab->pSortCsr = 0; + } + + if( rc!=SQLITE_OK ){ + sqlite3_finalize(pSorter->pStmt); + sqlite3_free(pSorter); + pCsr->pSorter = 0; + } + + return rc; +} + +static int fts5CursorFirst(Fts5Table *pTab, Fts5Cursor *pCsr, int bDesc){ + int rc; + Fts5Expr *pExpr = pCsr->pExpr; + rc = sqlite3Fts5ExprFirst(pExpr, pTab->pIndex, pCsr->iFirstRowid, bDesc); + if( sqlite3Fts5ExprEof(pExpr) ){ + CsrFlagSet(pCsr, FTS5CSR_EOF); + } + fts5CsrNewrow(pCsr); + return rc; +} + +/* +** Process a "special" query. A special query is identified as one with a +** MATCH expression that begins with a '*' character. The remainder of +** the text passed to the MATCH operator are used as the special query +** parameters. +*/ +static int fts5SpecialMatch( + Fts5Table *pTab, + Fts5Cursor *pCsr, + const char *zQuery +){ + int rc = SQLITE_OK; /* Return code */ + const char *z = zQuery; /* Special query text */ + int n; /* Number of bytes in text at z */ + + while( z[0]==' ' ) z++; + for(n=0; z[n] && z[n]!=' '; n++); + + assert( pTab->base.zErrMsg==0 ); + pCsr->ePlan = FTS5_PLAN_SPECIAL; + + if( 0==sqlite3_strnicmp("reads", z, n) ){ + pCsr->iSpecial = sqlite3Fts5IndexReads(pTab->pIndex); + } + else if( 0==sqlite3_strnicmp("id", z, n) ){ + pCsr->iSpecial = pCsr->iCsrId; + } + else{ + /* An unrecognized directive. Return an error message. */ + pTab->base.zErrMsg = sqlite3_mprintf("unknown special query: %.*s", n, z); + rc = SQLITE_ERROR; + } + + return rc; +} + +/* +** Search for an auxiliary function named zName that can be used with table +** pTab. If one is found, return a pointer to the corresponding Fts5Auxiliary +** structure. Otherwise, if no such function exists, return NULL. +*/ +static Fts5Auxiliary *fts5FindAuxiliary(Fts5Table *pTab, const char *zName){ + Fts5Auxiliary *pAux; + + for(pAux=pTab->pGlobal->pAux; pAux; pAux=pAux->pNext){ + if( sqlite3_stricmp(zName, pAux->zFunc)==0 ) return pAux; + } + + /* No function of the specified name was found. Return 0. */ + return 0; +} + + +static int fts5FindRankFunction(Fts5Cursor *pCsr){ + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + Fts5Config *pConfig = pTab->pConfig; + int rc = SQLITE_OK; + Fts5Auxiliary *pAux = 0; + const char *zRank = pCsr->zRank; + const char *zRankArgs = pCsr->zRankArgs; + + if( zRankArgs ){ + char *zSql = sqlite3Fts5Mprintf(&rc, "SELECT %s", zRankArgs); + if( zSql ){ + sqlite3_stmt *pStmt = 0; + rc = sqlite3_prepare_v2(pConfig->db, zSql, -1, &pStmt, 0); + sqlite3_free(zSql); + assert( rc==SQLITE_OK || pCsr->pRankArgStmt==0 ); + if( rc==SQLITE_OK ){ + if( SQLITE_ROW==sqlite3_step(pStmt) ){ + int nByte; + pCsr->nRankArg = sqlite3_column_count(pStmt); + nByte = sizeof(sqlite3_value*)*pCsr->nRankArg; + pCsr->apRankArg = (sqlite3_value**)sqlite3Fts5MallocZero(&rc, nByte); + if( rc==SQLITE_OK ){ + int i; + for(i=0; inRankArg; i++){ + pCsr->apRankArg[i] = sqlite3_column_value(pStmt, i); + } + } + pCsr->pRankArgStmt = pStmt; + }else{ + rc = sqlite3_finalize(pStmt); + assert( rc!=SQLITE_OK ); + } + } + } + } + + if( rc==SQLITE_OK ){ + pAux = fts5FindAuxiliary(pTab, zRank); + if( pAux==0 ){ + assert( pTab->base.zErrMsg==0 ); + pTab->base.zErrMsg = sqlite3_mprintf("no such function: %s", zRank); + rc = SQLITE_ERROR; + } + } + + pCsr->pRank = pAux; + return rc; +} + + +static int fts5CursorParseRank( + Fts5Config *pConfig, + Fts5Cursor *pCsr, + sqlite3_value *pRank +){ + int rc = SQLITE_OK; + if( pRank ){ + const char *z = (const char*)sqlite3_value_text(pRank); + char *zRank = 0; + char *zRankArgs = 0; + + if( z==0 ){ + if( sqlite3_value_type(pRank)==SQLITE_NULL ) rc = SQLITE_ERROR; + }else{ + rc = sqlite3Fts5ConfigParseRank(z, &zRank, &zRankArgs); + } + if( rc==SQLITE_OK ){ + pCsr->zRank = zRank; + pCsr->zRankArgs = zRankArgs; + CsrFlagSet(pCsr, FTS5CSR_FREE_ZRANK); + }else if( rc==SQLITE_ERROR ){ + pCsr->base.pVtab->zErrMsg = sqlite3_mprintf( + "parse error in rank function: %s", z + ); + } + }else{ + if( pConfig->zRank ){ + pCsr->zRank = (char*)pConfig->zRank; + pCsr->zRankArgs = (char*)pConfig->zRankArgs; + }else{ + pCsr->zRank = (char*)FTS5_DEFAULT_RANK; + pCsr->zRankArgs = 0; + } + } + return rc; +} + +static i64 fts5GetRowidLimit(sqlite3_value *pVal, i64 iDefault){ + if( pVal ){ + int eType = sqlite3_value_numeric_type(pVal); + if( eType==SQLITE_INTEGER ){ + return sqlite3_value_int64(pVal); + } + } + return iDefault; +} + +/* +** This is the xFilter interface for the virtual table. See +** the virtual table xFilter method documentation for additional +** information. +** +** There are three possible query strategies: +** +** 1. Full-text search using a MATCH operator. +** 2. A by-rowid lookup. +** 3. A full-table scan. +*/ +static int fts5FilterMethod( + sqlite3_vtab_cursor *pCursor, /* The cursor used for this query */ + int idxNum, /* Strategy index */ + const char *idxStr, /* Unused */ + int nVal, /* Number of elements in apVal */ + sqlite3_value **apVal /* Arguments for the indexing scheme */ +){ + Fts5Table *pTab = (Fts5Table*)(pCursor->pVtab); + Fts5Config *pConfig = pTab->pConfig; + Fts5Cursor *pCsr = (Fts5Cursor*)pCursor; + int rc = SQLITE_OK; /* Error code */ + int iVal = 0; /* Counter for apVal[] */ + int bDesc; /* True if ORDER BY [rank|rowid] DESC */ + int bOrderByRank; /* True if ORDER BY rank */ + sqlite3_value *pMatch = 0; /* MATCH ? expression (or NULL) */ + sqlite3_value *pRank = 0; /* rank MATCH ? expression (or NULL) */ + sqlite3_value *pRowidEq = 0; /* rowid = ? expression (or NULL) */ + sqlite3_value *pRowidLe = 0; /* rowid <= ? expression (or NULL) */ + sqlite3_value *pRowidGe = 0; /* rowid >= ? expression (or NULL) */ + char **pzErrmsg = pConfig->pzErrmsg; + + if( pCsr->ePlan ){ + fts5FreeCursorComponents(pCsr); + memset(&pCsr->ePlan, 0, sizeof(Fts5Cursor) - ((u8*)&pCsr->ePlan-(u8*)pCsr)); + } + + assert( pCsr->pStmt==0 ); + assert( pCsr->pExpr==0 ); + assert( pCsr->csrflags==0 ); + assert( pCsr->pRank==0 ); + assert( pCsr->zRank==0 ); + assert( pCsr->zRankArgs==0 ); + + assert( pzErrmsg==0 || pzErrmsg==&pTab->base.zErrMsg ); + pConfig->pzErrmsg = &pTab->base.zErrMsg; + + /* Decode the arguments passed through to this function. + ** + ** Note: The following set of if(...) statements must be in the same + ** order as the corresponding entries in the struct at the top of + ** fts5BestIndexMethod(). */ + if( BitFlagTest(idxNum, FTS5_BI_MATCH) ) pMatch = apVal[iVal++]; + if( BitFlagTest(idxNum, FTS5_BI_RANK) ) pRank = apVal[iVal++]; + if( BitFlagTest(idxNum, FTS5_BI_ROWID_EQ) ) pRowidEq = apVal[iVal++]; + if( BitFlagTest(idxNum, FTS5_BI_ROWID_LE) ) pRowidLe = apVal[iVal++]; + if( BitFlagTest(idxNum, FTS5_BI_ROWID_GE) ) pRowidGe = apVal[iVal++]; + assert( iVal==nVal ); + bOrderByRank = ((idxNum & FTS5_BI_ORDER_RANK) ? 1 : 0); + pCsr->bDesc = bDesc = ((idxNum & FTS5_BI_ORDER_DESC) ? 1 : 0); + + /* Set the cursor upper and lower rowid limits. Only some strategies + ** actually use them. This is ok, as the xBestIndex() method leaves the + ** sqlite3_index_constraint.omit flag clear for range constraints + ** on the rowid field. */ + if( pRowidEq ){ + pRowidLe = pRowidGe = pRowidEq; + } + if( bDesc ){ + pCsr->iFirstRowid = fts5GetRowidLimit(pRowidLe, LARGEST_INT64); + pCsr->iLastRowid = fts5GetRowidLimit(pRowidGe, SMALLEST_INT64); + }else{ + pCsr->iLastRowid = fts5GetRowidLimit(pRowidLe, LARGEST_INT64); + pCsr->iFirstRowid = fts5GetRowidLimit(pRowidGe, SMALLEST_INT64); + } + + if( pTab->pSortCsr ){ + /* If pSortCsr is non-NULL, then this call is being made as part of + ** processing for a "... MATCH ORDER BY rank" query (ePlan is + ** set to FTS5_PLAN_SORTED_MATCH). pSortCsr is the cursor that will + ** return results to the user for this query. The current cursor + ** (pCursor) is used to execute the query issued by function + ** fts5CursorFirstSorted() above. */ + assert( pRowidEq==0 && pRowidLe==0 && pRowidGe==0 && pRank==0 ); + assert( nVal==0 && pMatch==0 && bOrderByRank==0 && bDesc==0 ); + assert( pCsr->iLastRowid==LARGEST_INT64 ); + assert( pCsr->iFirstRowid==SMALLEST_INT64 ); + pCsr->ePlan = FTS5_PLAN_SOURCE; + pCsr->pExpr = pTab->pSortCsr->pExpr; + rc = fts5CursorFirst(pTab, pCsr, bDesc); + }else if( pMatch ){ + const char *zExpr = (const char*)sqlite3_value_text(apVal[0]); + if( zExpr==0 ) zExpr = ""; + + rc = fts5CursorParseRank(pConfig, pCsr, pRank); + if( rc==SQLITE_OK ){ + if( zExpr[0]=='*' ){ + /* The user has issued a query of the form "MATCH '*...'". This + ** indicates that the MATCH expression is not a full text query, + ** but a request for an internal parameter. */ + rc = fts5SpecialMatch(pTab, pCsr, &zExpr[1]); + }else{ + char **pzErr = &pTab->base.zErrMsg; + rc = sqlite3Fts5ExprNew(pConfig, zExpr, &pCsr->pExpr, pzErr); + if( rc==SQLITE_OK ){ + if( bOrderByRank ){ + pCsr->ePlan = FTS5_PLAN_SORTED_MATCH; + rc = fts5CursorFirstSorted(pTab, pCsr, bDesc); + }else{ + pCsr->ePlan = FTS5_PLAN_MATCH; + rc = fts5CursorFirst(pTab, pCsr, bDesc); + } + } + } + } + }else if( pConfig->zContent==0 ){ + *pConfig->pzErrmsg = sqlite3_mprintf( + "%s: table does not support scanning", pConfig->zName + ); + rc = SQLITE_ERROR; + }else{ + /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup + ** by rowid (ePlan==FTS5_PLAN_ROWID). */ + pCsr->ePlan = (pRowidEq ? FTS5_PLAN_ROWID : FTS5_PLAN_SCAN); + rc = sqlite3Fts5StorageStmt( + pTab->pStorage, fts5StmtType(pCsr), &pCsr->pStmt, &pTab->base.zErrMsg + ); + if( rc==SQLITE_OK ){ + if( pCsr->ePlan==FTS5_PLAN_ROWID ){ + sqlite3_bind_value(pCsr->pStmt, 1, apVal[0]); + }else{ + sqlite3_bind_int64(pCsr->pStmt, 1, pCsr->iFirstRowid); + sqlite3_bind_int64(pCsr->pStmt, 2, pCsr->iLastRowid); + } + rc = fts5NextMethod(pCursor); + } + } + + pConfig->pzErrmsg = pzErrmsg; + return rc; +} + +/* +** This is the xEof method of the virtual table. SQLite calls this +** routine to find out if it has reached the end of a result set. +*/ +static int fts5EofMethod(sqlite3_vtab_cursor *pCursor){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCursor; + return (CsrFlagTest(pCsr, FTS5CSR_EOF) ? 1 : 0); +} + +/* +** Return the rowid that the cursor currently points to. +*/ +static i64 fts5CursorRowid(Fts5Cursor *pCsr){ + assert( pCsr->ePlan==FTS5_PLAN_MATCH + || pCsr->ePlan==FTS5_PLAN_SORTED_MATCH + || pCsr->ePlan==FTS5_PLAN_SOURCE + ); + if( pCsr->pSorter ){ + return pCsr->pSorter->iRowid; + }else{ + return sqlite3Fts5ExprRowid(pCsr->pExpr); + } +} + +/* +** This is the xRowid method. The SQLite core calls this routine to +** retrieve the rowid for the current row of the result set. fts5 +** exposes %_content.rowid as the rowid for the virtual table. The +** rowid should be written to *pRowid. +*/ +static int fts5RowidMethod(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCursor; + int ePlan = pCsr->ePlan; + + assert( CsrFlagTest(pCsr, FTS5CSR_EOF)==0 ); + switch( ePlan ){ + case FTS5_PLAN_SPECIAL: + *pRowid = 0; + break; + + case FTS5_PLAN_SOURCE: + case FTS5_PLAN_MATCH: + case FTS5_PLAN_SORTED_MATCH: + *pRowid = fts5CursorRowid(pCsr); + break; + + default: + *pRowid = sqlite3_column_int64(pCsr->pStmt, 0); + break; + } + + return SQLITE_OK; +} + +/* +** If the cursor requires seeking (bSeekRequired flag is set), seek it. +** Return SQLITE_OK if no error occurs, or an SQLite error code otherwise. +** +** If argument bErrormsg is true and an error occurs, an error message may +** be left in sqlite3_vtab.zErrMsg. +*/ +static int fts5SeekCursor(Fts5Cursor *pCsr, int bErrormsg){ + int rc = SQLITE_OK; + + /* If the cursor does not yet have a statement handle, obtain one now. */ + if( pCsr->pStmt==0 ){ + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + int eStmt = fts5StmtType(pCsr); + rc = sqlite3Fts5StorageStmt( + pTab->pStorage, eStmt, &pCsr->pStmt, (bErrormsg?&pTab->base.zErrMsg:0) + ); + assert( rc!=SQLITE_OK || pTab->base.zErrMsg==0 ); + assert( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) ); + } + + if( rc==SQLITE_OK && CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) ){ + assert( pCsr->pExpr ); + sqlite3_reset(pCsr->pStmt); + sqlite3_bind_int64(pCsr->pStmt, 1, fts5CursorRowid(pCsr)); + rc = sqlite3_step(pCsr->pStmt); + if( rc==SQLITE_ROW ){ + rc = SQLITE_OK; + CsrFlagClear(pCsr, FTS5CSR_REQUIRE_CONTENT); + }else{ + rc = sqlite3_reset(pCsr->pStmt); + if( rc==SQLITE_OK ){ + rc = FTS5_CORRUPT; + } + } + } + return rc; +} + +static void fts5SetVtabError(Fts5Table *p, const char *zFormat, ...){ + va_list ap; /* ... printf arguments */ + va_start(ap, zFormat); + assert( p->base.zErrMsg==0 ); + p->base.zErrMsg = sqlite3_vmprintf(zFormat, ap); + va_end(ap); +} + +/* +** This function is called to handle an FTS INSERT command. In other words, +** an INSERT statement of the form: +** +** INSERT INTO fts(fts) VALUES($pCmd) +** INSERT INTO fts(fts, rank) VALUES($pCmd, $pVal) +** +** Argument pVal is the value assigned to column "fts" by the INSERT +** statement. This function returns SQLITE_OK if successful, or an SQLite +** error code if an error occurs. +** +** The commands implemented by this function are documented in the "Special +** INSERT Directives" section of the documentation. It should be updated if +** more commands are added to this function. +*/ +static int fts5SpecialInsert( + Fts5Table *pTab, /* Fts5 table object */ + const char *zCmd, /* Text inserted into table-name column */ + sqlite3_value *pVal /* Value inserted into rank column */ +){ + Fts5Config *pConfig = pTab->pConfig; + int rc = SQLITE_OK; + int bError = 0; + + if( 0==sqlite3_stricmp("delete-all", zCmd) ){ + if( pConfig->eContent==FTS5_CONTENT_NORMAL ){ + fts5SetVtabError(pTab, + "'delete-all' may only be used with a " + "contentless or external content fts5 table" + ); + rc = SQLITE_ERROR; + }else{ + rc = sqlite3Fts5StorageDeleteAll(pTab->pStorage); + } + }else if( 0==sqlite3_stricmp("rebuild", zCmd) ){ + if( pConfig->eContent==FTS5_CONTENT_NONE ){ + fts5SetVtabError(pTab, + "'rebuild' may not be used with a contentless fts5 table" + ); + rc = SQLITE_ERROR; + }else{ + rc = sqlite3Fts5StorageRebuild(pTab->pStorage); + } + }else if( 0==sqlite3_stricmp("optimize", zCmd) ){ + rc = sqlite3Fts5StorageOptimize(pTab->pStorage); + }else if( 0==sqlite3_stricmp("merge", zCmd) ){ + int nMerge = sqlite3_value_int(pVal); + rc = sqlite3Fts5StorageMerge(pTab->pStorage, nMerge); + }else if( 0==sqlite3_stricmp("integrity-check", zCmd) ){ + rc = sqlite3Fts5StorageIntegrity(pTab->pStorage); +#ifdef SQLITE_DEBUG + }else if( 0==sqlite3_stricmp("prefix-index", zCmd) ){ + pConfig->bPrefixIndex = sqlite3_value_int(pVal); +#endif + }else{ + rc = sqlite3Fts5IndexLoadConfig(pTab->pIndex); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5ConfigSetValue(pTab->pConfig, zCmd, pVal, &bError); + } + if( rc==SQLITE_OK ){ + if( bError ){ + rc = SQLITE_ERROR; + }else{ + rc = sqlite3Fts5StorageConfigValue(pTab->pStorage, zCmd, pVal, 0); + } + } + } + return rc; +} + +static int fts5SpecialDelete( + Fts5Table *pTab, + sqlite3_value **apVal, + sqlite3_int64 *piRowid +){ + int rc = SQLITE_OK; + int eType1 = sqlite3_value_type(apVal[1]); + if( eType1==SQLITE_INTEGER ){ + sqlite3_int64 iDel = sqlite3_value_int64(apVal[1]); + rc = sqlite3Fts5StorageSpecialDelete(pTab->pStorage, iDel, &apVal[2]); + } + return rc; +} + +static void fts5StorageInsert( + int *pRc, + Fts5Table *pTab, + sqlite3_value **apVal, + i64 *piRowid +){ + int rc = *pRc; + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageContentInsert(pTab->pStorage, apVal, piRowid); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageIndexInsert(pTab->pStorage, apVal, *piRowid); + } + *pRc = rc; +} + +/* +** This function is the implementation of the xUpdate callback used by +** FTS3 virtual tables. It is invoked by SQLite each time a row is to be +** inserted, updated or deleted. +** +** A delete specifies a single argument - the rowid of the row to remove. +** +** Update and insert operations pass: +** +** 1. The "old" rowid, or NULL. +** 2. The "new" rowid. +** 3. Values for each of the nCol matchable columns. +** 4. Values for the two hidden columns ( and "rank"). +*/ +static int fts5UpdateMethod( + sqlite3_vtab *pVtab, /* Virtual table handle */ + int nArg, /* Size of argument array */ + sqlite3_value **apVal, /* Array of arguments */ + sqlite_int64 *pRowid /* OUT: The affected (or effected) rowid */ +){ + Fts5Table *pTab = (Fts5Table*)pVtab; + Fts5Config *pConfig = pTab->pConfig; + int eType0; /* value_type() of apVal[0] */ + int rc = SQLITE_OK; /* Return code */ + + /* A transaction must be open when this is called. */ + assert( pTab->ts.eState==1 ); + + assert( pVtab->zErrMsg==0 ); + assert( nArg==1 || nArg==(2+pConfig->nCol+2) ); + assert( nArg==1 + || sqlite3_value_type(apVal[1])==SQLITE_INTEGER + || sqlite3_value_type(apVal[1])==SQLITE_NULL + ); + assert( pTab->pConfig->pzErrmsg==0 ); + pTab->pConfig->pzErrmsg = &pTab->base.zErrMsg; + + /* Put any active cursors into REQUIRE_SEEK state. */ + fts5TripCursors(pTab); + + eType0 = sqlite3_value_type(apVal[0]); + if( eType0==SQLITE_NULL + && sqlite3_value_type(apVal[2+pConfig->nCol])!=SQLITE_NULL + ){ + /* A "special" INSERT op. These are handled separately. */ + const char *z = (const char*)sqlite3_value_text(apVal[2+pConfig->nCol]); + if( pConfig->eContent!=FTS5_CONTENT_NORMAL + && 0==sqlite3_stricmp("delete", z) + ){ + rc = fts5SpecialDelete(pTab, apVal, pRowid); + }else{ + rc = fts5SpecialInsert(pTab, z, apVal[2 + pConfig->nCol + 1]); + } + }else{ + /* A regular INSERT, UPDATE or DELETE statement. The trick here is that + ** any conflict on the rowid value must be detected before any + ** modifications are made to the database file. There are 4 cases: + ** + ** 1) DELETE + ** 2) UPDATE (rowid not modified) + ** 3) UPDATE (rowid modified) + ** 4) INSERT + ** + ** Cases 3 and 4 may violate the rowid constraint. + */ + int eConflict = sqlite3_vtab_on_conflict(pConfig->db); + + assert( eType0==SQLITE_INTEGER || eType0==SQLITE_NULL ); + assert( nArg!=1 || eType0==SQLITE_INTEGER ); + + /* Filter out attempts to run UPDATE or DELETE on contentless tables. + ** This is not suported. */ + if( eType0==SQLITE_INTEGER && fts5IsContentless(pTab) ){ + pTab->base.zErrMsg = sqlite3_mprintf( + "cannot %s contentless fts5 table: %s", + (nArg>1 ? "UPDATE" : "DELETE from"), pConfig->zName + ); + rc = SQLITE_ERROR; + } + + /* Case 1: DELETE */ + else if( nArg==1 ){ + i64 iDel = sqlite3_value_int64(apVal[0]); /* Rowid to delete */ + rc = sqlite3Fts5StorageDelete(pTab->pStorage, iDel); + } + + /* Case 2: INSERT */ + else if( eType0!=SQLITE_INTEGER ){ + /* If this is a REPLACE, first remove the current entry (if any) */ + if( eConflict==SQLITE_REPLACE + && sqlite3_value_type(apVal[1])==SQLITE_INTEGER + ){ + i64 iNew = sqlite3_value_int64(apVal[1]); /* Rowid to delete */ + rc = sqlite3Fts5StorageDelete(pTab->pStorage, iNew); + } + fts5StorageInsert(&rc, pTab, apVal, pRowid); + } + + /* Case 2: UPDATE */ + else{ + i64 iOld = sqlite3_value_int64(apVal[0]); /* Old rowid */ + i64 iNew = sqlite3_value_int64(apVal[1]); /* New rowid */ + if( iOld!=iNew ){ + if( eConflict==SQLITE_REPLACE ){ + rc = sqlite3Fts5StorageDelete(pTab->pStorage, iOld); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageDelete(pTab->pStorage, iNew); + } + fts5StorageInsert(&rc, pTab, apVal, pRowid); + }else{ + rc = sqlite3Fts5StorageContentInsert(pTab->pStorage, apVal, pRowid); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageDelete(pTab->pStorage, iOld); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageIndexInsert(pTab->pStorage, apVal, *pRowid); + } + } + }else{ + rc = sqlite3Fts5StorageDelete(pTab->pStorage, iOld); + fts5StorageInsert(&rc, pTab, apVal, pRowid); + } + } + } + + pTab->pConfig->pzErrmsg = 0; + return rc; +} + +/* +** Implementation of xSync() method. +*/ +static int fts5SyncMethod(sqlite3_vtab *pVtab){ + int rc; + Fts5Table *pTab = (Fts5Table*)pVtab; + fts5CheckTransactionState(pTab, FTS5_SYNC, 0); + pTab->pConfig->pzErrmsg = &pTab->base.zErrMsg; + fts5TripCursors(pTab); + rc = sqlite3Fts5StorageSync(pTab->pStorage, 1); + pTab->pConfig->pzErrmsg = 0; + return rc; +} + +/* +** Implementation of xBegin() method. +*/ +static int fts5BeginMethod(sqlite3_vtab *pVtab){ + fts5CheckTransactionState((Fts5Table*)pVtab, FTS5_BEGIN, 0); + return SQLITE_OK; +} + +/* +** Implementation of xCommit() method. This is a no-op. The contents of +** the pending-terms hash-table have already been flushed into the database +** by fts5SyncMethod(). +*/ +static int fts5CommitMethod(sqlite3_vtab *pVtab){ + fts5CheckTransactionState((Fts5Table*)pVtab, FTS5_COMMIT, 0); + return SQLITE_OK; +} + +/* +** Implementation of xRollback(). Discard the contents of the pending-terms +** hash-table. Any changes made to the database are reverted by SQLite. +*/ +static int fts5RollbackMethod(sqlite3_vtab *pVtab){ + int rc; + Fts5Table *pTab = (Fts5Table*)pVtab; + fts5CheckTransactionState(pTab, FTS5_ROLLBACK, 0); + rc = sqlite3Fts5StorageRollback(pTab->pStorage); + return rc; +} + +static void *fts5ApiUserData(Fts5Context *pCtx){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + return pCsr->pAux->pUserData; +} + +static int fts5ApiColumnCount(Fts5Context *pCtx){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + return ((Fts5Table*)(pCsr->base.pVtab))->pConfig->nCol; +} + +static int fts5ApiColumnTotalSize( + Fts5Context *pCtx, + int iCol, + sqlite3_int64 *pnToken +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + return sqlite3Fts5StorageSize(pTab->pStorage, iCol, pnToken); +} + +static int fts5ApiRowCount(Fts5Context *pCtx, i64 *pnRow){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + return sqlite3Fts5StorageRowCount(pTab->pStorage, pnRow); +} + +static int fts5ApiTokenize( + Fts5Context *pCtx, + const char *pText, int nText, + void *pUserData, + int (*xToken)(void*, int, const char*, int, int, int) +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + return sqlite3Fts5Tokenize( + pTab->pConfig, FTS5_TOKENIZE_AUX, pText, nText, pUserData, xToken + ); +} + +static int fts5ApiPhraseCount(Fts5Context *pCtx){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + return sqlite3Fts5ExprPhraseCount(pCsr->pExpr); +} + +static int fts5ApiPhraseSize(Fts5Context *pCtx, int iPhrase){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + return sqlite3Fts5ExprPhraseSize(pCsr->pExpr, iPhrase); +} + +static int fts5CsrPoslist(Fts5Cursor *pCsr, int iPhrase, const u8 **pa){ + int n; + if( pCsr->pSorter ){ + Fts5Sorter *pSorter = pCsr->pSorter; + int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]); + n = pSorter->aIdx[iPhrase] - i1; + *pa = &pSorter->aPoslist[i1]; + }else{ + n = sqlite3Fts5ExprPoslist(pCsr->pExpr, iPhrase, pa); + } + return n; +} + +/* +** Ensure that the Fts5Cursor.nInstCount and aInst[] variables are populated +** correctly for the current view. Return SQLITE_OK if successful, or an +** SQLite error code otherwise. +*/ +static int fts5CacheInstArray(Fts5Cursor *pCsr){ + int rc = SQLITE_OK; + Fts5PoslistReader *aIter; /* One iterator for each phrase */ + int nIter; /* Number of iterators/phrases */ + + nIter = sqlite3Fts5ExprPhraseCount(pCsr->pExpr); + if( pCsr->aInstIter==0 ){ + int nByte = sizeof(Fts5PoslistReader) * nIter; + pCsr->aInstIter = (Fts5PoslistReader*)sqlite3Fts5MallocZero(&rc, nByte); + } + aIter = pCsr->aInstIter; + + if( aIter ){ + int nInst = 0; /* Number instances seen so far */ + int i; + + /* Initialize all iterators */ + for(i=0; i=pCsr->nInstAlloc ){ + pCsr->nInstAlloc = pCsr->nInstAlloc ? pCsr->nInstAlloc*2 : 32; + aInst = (int*)sqlite3_realloc( + pCsr->aInst, pCsr->nInstAlloc*sizeof(int)*3 + ); + if( aInst ){ + pCsr->aInst = aInst; + }else{ + rc = SQLITE_NOMEM; + break; + } + } + + aInst = &pCsr->aInst[3 * (nInst-1)]; + aInst[0] = iBest; + aInst[1] = FTS5_POS2COLUMN(aIter[iBest].iPos); + aInst[2] = FTS5_POS2OFFSET(aIter[iBest].iPos); + sqlite3Fts5PoslistReaderNext(&aIter[iBest]); + } + + pCsr->nInstCount = nInst; + CsrFlagClear(pCsr, FTS5CSR_REQUIRE_INST); + } + return rc; +} + +static int fts5ApiInstCount(Fts5Context *pCtx, int *pnInst){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + int rc = SQLITE_OK; + if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0 + || SQLITE_OK==(rc = fts5CacheInstArray(pCsr)) ){ + *pnInst = pCsr->nInstCount; + } + return rc; +} + +static int fts5ApiInst( + Fts5Context *pCtx, + int iIdx, + int *piPhrase, + int *piCol, + int *piOff +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + int rc = SQLITE_OK; + if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0 + || SQLITE_OK==(rc = fts5CacheInstArray(pCsr)) + ){ + if( iIdx<0 || iIdx>=pCsr->nInstCount ){ + rc = SQLITE_RANGE; + }else{ + *piPhrase = pCsr->aInst[iIdx*3]; + *piCol = pCsr->aInst[iIdx*3 + 1]; + *piOff = pCsr->aInst[iIdx*3 + 2]; + } + } + return rc; +} + +static sqlite3_int64 fts5ApiRowid(Fts5Context *pCtx){ + return fts5CursorRowid((Fts5Cursor*)pCtx); +} + +static int fts5ApiColumnText( + Fts5Context *pCtx, + int iCol, + const char **pz, + int *pn +){ + int rc = SQLITE_OK; + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + if( fts5IsContentless((Fts5Table*)(pCsr->base.pVtab)) ){ + *pz = 0; + *pn = 0; + }else{ + rc = fts5SeekCursor(pCsr, 0); + if( rc==SQLITE_OK ){ + *pz = (const char*)sqlite3_column_text(pCsr->pStmt, iCol+1); + *pn = sqlite3_column_bytes(pCsr->pStmt, iCol+1); + } + } + return rc; +} + +static int fts5ColumnSizeCb( + void *pContext, /* Pointer to int */ + int tflags, + const char *pToken, /* Buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStart, /* Start offset of token */ + int iEnd /* End offset of token */ +){ + int *pCnt = (int*)pContext; + if( (tflags & FTS5_TOKEN_COLOCATED)==0 ){ + (*pCnt)++; + } + return SQLITE_OK; +} + +static int fts5ApiColumnSize(Fts5Context *pCtx, int iCol, int *pnToken){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + Fts5Config *pConfig = pTab->pConfig; + int rc = SQLITE_OK; + + if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_DOCSIZE) ){ + if( pConfig->bColumnsize ){ + i64 iRowid = fts5CursorRowid(pCsr); + rc = sqlite3Fts5StorageDocsize(pTab->pStorage, iRowid, pCsr->aColumnSize); + }else if( pConfig->zContent==0 ){ + int i; + for(i=0; inCol; i++){ + if( pConfig->abUnindexed[i]==0 ){ + pCsr->aColumnSize[i] = -1; + } + } + }else{ + int i; + for(i=0; rc==SQLITE_OK && inCol; i++){ + if( pConfig->abUnindexed[i]==0 ){ + const char *z; int n; + void *p = (void*)(&pCsr->aColumnSize[i]); + pCsr->aColumnSize[i] = 0; + rc = fts5ApiColumnText(pCtx, i, &z, &n); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5Tokenize( + pConfig, FTS5_TOKENIZE_AUX, z, n, p, fts5ColumnSizeCb + ); + } + } + } + } + CsrFlagClear(pCsr, FTS5CSR_REQUIRE_DOCSIZE); + } + if( iCol<0 ){ + int i; + *pnToken = 0; + for(i=0; inCol; i++){ + *pnToken += pCsr->aColumnSize[i]; + } + }else if( iColnCol ){ + *pnToken = pCsr->aColumnSize[iCol]; + }else{ + *pnToken = 0; + rc = SQLITE_RANGE; + } + return rc; +} + +/* +** Implementation of the xSetAuxdata() method. +*/ +static int fts5ApiSetAuxdata( + Fts5Context *pCtx, /* Fts5 context */ + void *pPtr, /* Pointer to save as auxdata */ + void(*xDelete)(void*) /* Destructor for pPtr (or NULL) */ +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Auxdata *pData; + + /* Search through the cursors list of Fts5Auxdata objects for one that + ** corresponds to the currently executing auxiliary function. */ + for(pData=pCsr->pAuxdata; pData; pData=pData->pNext){ + if( pData->pAux==pCsr->pAux ) break; + } + + if( pData ){ + if( pData->xDelete ){ + pData->xDelete(pData->pPtr); + } + }else{ + int rc = SQLITE_OK; + pData = (Fts5Auxdata*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5Auxdata)); + if( pData==0 ){ + if( xDelete ) xDelete(pPtr); + return rc; + } + pData->pAux = pCsr->pAux; + pData->pNext = pCsr->pAuxdata; + pCsr->pAuxdata = pData; + } + + pData->xDelete = xDelete; + pData->pPtr = pPtr; + return SQLITE_OK; +} + +static void *fts5ApiGetAuxdata(Fts5Context *pCtx, int bClear){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Auxdata *pData; + void *pRet = 0; + + for(pData=pCsr->pAuxdata; pData; pData=pData->pNext){ + if( pData->pAux==pCsr->pAux ) break; + } + + if( pData ){ + pRet = pData->pPtr; + if( bClear ){ + pData->pPtr = 0; + pData->xDelete = 0; + } + } + + return pRet; +} + +static void fts5ApiPhraseNext( + Fts5Context *pCtx, + Fts5PhraseIter *pIter, + int *piCol, int *piOff +){ + if( pIter->a>=pIter->b ){ + *piCol = -1; + *piOff = -1; + }else{ + int iVal; + pIter->a += fts5GetVarint32(pIter->a, iVal); + if( iVal==1 ){ + pIter->a += fts5GetVarint32(pIter->a, iVal); + *piCol = iVal; + *piOff = 0; + pIter->a += fts5GetVarint32(pIter->a, iVal); + } + *piOff += (iVal-2); + } +} + +static void fts5ApiPhraseFirst( + Fts5Context *pCtx, + int iPhrase, + Fts5PhraseIter *pIter, + int *piCol, int *piOff +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + int n = fts5CsrPoslist(pCsr, iPhrase, &pIter->a); + pIter->b = &pIter->a[n]; + *piCol = 0; + *piOff = 0; + fts5ApiPhraseNext(pCtx, pIter, piCol, piOff); +} + +static int fts5ApiQueryPhrase(Fts5Context*, int, void*, + int(*)(const Fts5ExtensionApi*, Fts5Context*, void*) +); + +static const Fts5ExtensionApi sFts5Api = { + 2, /* iVersion */ + fts5ApiUserData, + fts5ApiColumnCount, + fts5ApiRowCount, + fts5ApiColumnTotalSize, + fts5ApiTokenize, + fts5ApiPhraseCount, + fts5ApiPhraseSize, + fts5ApiInstCount, + fts5ApiInst, + fts5ApiRowid, + fts5ApiColumnText, + fts5ApiColumnSize, + fts5ApiQueryPhrase, + fts5ApiSetAuxdata, + fts5ApiGetAuxdata, + fts5ApiPhraseFirst, + fts5ApiPhraseNext, +}; + + +/* +** Implementation of API function xQueryPhrase(). +*/ +static int fts5ApiQueryPhrase( + Fts5Context *pCtx, + int iPhrase, + void *pUserData, + int(*xCallback)(const Fts5ExtensionApi*, Fts5Context*, void*) +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + int rc; + Fts5Cursor *pNew = 0; + + rc = fts5OpenMethod(pCsr->base.pVtab, (sqlite3_vtab_cursor**)&pNew); + if( rc==SQLITE_OK ){ + Fts5Config *pConf = pTab->pConfig; + pNew->ePlan = FTS5_PLAN_MATCH; + pNew->iFirstRowid = SMALLEST_INT64; + pNew->iLastRowid = LARGEST_INT64; + pNew->base.pVtab = (sqlite3_vtab*)pTab; + rc = sqlite3Fts5ExprClonePhrase(pConf, pCsr->pExpr, iPhrase, &pNew->pExpr); + } + + if( rc==SQLITE_OK ){ + for(rc = fts5CursorFirst(pTab, pNew, 0); + rc==SQLITE_OK && CsrFlagTest(pNew, FTS5CSR_EOF)==0; + rc = fts5NextMethod((sqlite3_vtab_cursor*)pNew) + ){ + rc = xCallback(&sFts5Api, (Fts5Context*)pNew, pUserData); + if( rc!=SQLITE_OK ){ + if( rc==SQLITE_DONE ) rc = SQLITE_OK; + break; + } + } + } + + fts5CloseMethod((sqlite3_vtab_cursor*)pNew); + return rc; +} + +static void fts5ApiInvoke( + Fts5Auxiliary *pAux, + Fts5Cursor *pCsr, + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + assert( pCsr->pAux==0 ); + pCsr->pAux = pAux; + pAux->xFunc(&sFts5Api, (Fts5Context*)pCsr, context, argc, argv); + pCsr->pAux = 0; +} + +static Fts5Cursor *fts5CursorFromCsrid(Fts5Global *pGlobal, i64 iCsrId){ + Fts5Cursor *pCsr; + for(pCsr=pGlobal->pCsr; pCsr; pCsr=pCsr->pNext){ + if( pCsr->iCsrId==iCsrId ) break; + } + return pCsr; +} + +static void fts5ApiCallback( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + + Fts5Auxiliary *pAux; + Fts5Cursor *pCsr; + i64 iCsrId; + + assert( argc>=1 ); + pAux = (Fts5Auxiliary*)sqlite3_user_data(context); + iCsrId = sqlite3_value_int64(argv[0]); + + pCsr = fts5CursorFromCsrid(pAux->pGlobal, iCsrId); + if( pCsr==0 ){ + char *zErr = sqlite3_mprintf("no such cursor: %lld", iCsrId); + sqlite3_result_error(context, zErr, -1); + sqlite3_free(zErr); + }else{ + fts5ApiInvoke(pAux, pCsr, context, argc-1, &argv[1]); + } +} + + +/* +** Given cursor id iId, return a pointer to the corresponding Fts5Index +** object. Or NULL If the cursor id does not exist. +** +** If successful, set *pnCol to the number of indexed columns in the +** table before returning. +*/ +static Fts5Index *sqlite3Fts5IndexFromCsrid( + Fts5Global *pGlobal, + i64 iCsrId, + int *pnCol +){ + Fts5Cursor *pCsr; + Fts5Table *pTab; + + pCsr = fts5CursorFromCsrid(pGlobal, iCsrId); + pTab = (Fts5Table*)pCsr->base.pVtab; + *pnCol = pTab->pConfig->nCol; + + return pTab->pIndex; +} + +/* +** Return a "position-list blob" corresponding to the current position of +** cursor pCsr via sqlite3_result_blob(). A position-list blob contains +** the current position-list for each phrase in the query associated with +** cursor pCsr. +** +** A position-list blob begins with (nPhrase-1) varints, where nPhrase is +** the number of phrases in the query. Following the varints are the +** concatenated position lists for each phrase, in order. +** +** The first varint (if it exists) contains the size of the position list +** for phrase 0. The second (same disclaimer) contains the size of position +** list 1. And so on. There is no size field for the final position list, +** as it can be derived from the total size of the blob. +*/ +static int fts5PoslistBlob(sqlite3_context *pCtx, Fts5Cursor *pCsr){ + int i; + int rc = SQLITE_OK; + int nPhrase = sqlite3Fts5ExprPhraseCount(pCsr->pExpr); + Fts5Buffer val; + + memset(&val, 0, sizeof(Fts5Buffer)); + + /* Append the varints */ + for(i=0; i<(nPhrase-1); i++){ + const u8 *dummy; + int nByte = sqlite3Fts5ExprPoslist(pCsr->pExpr, i, &dummy); + sqlite3Fts5BufferAppendVarint(&rc, &val, nByte); + } + + /* Append the position lists */ + for(i=0; ipExpr, i, &pPoslist); + sqlite3Fts5BufferAppendBlob(&rc, &val, nPoslist, pPoslist); + } + + sqlite3_result_blob(pCtx, val.p, val.n, sqlite3_free); + return rc; +} + +/* +** This is the xColumn method, called by SQLite to request a value from +** the row that the supplied cursor currently points to. +*/ +static int fts5ColumnMethod( + sqlite3_vtab_cursor *pCursor, /* Cursor to retrieve value from */ + sqlite3_context *pCtx, /* Context for sqlite3_result_xxx() calls */ + int iCol /* Index of column to read value from */ +){ + Fts5Table *pTab = (Fts5Table*)(pCursor->pVtab); + Fts5Config *pConfig = pTab->pConfig; + Fts5Cursor *pCsr = (Fts5Cursor*)pCursor; + int rc = SQLITE_OK; + + assert( CsrFlagTest(pCsr, FTS5CSR_EOF)==0 ); + + if( pCsr->ePlan==FTS5_PLAN_SPECIAL ){ + if( iCol==pConfig->nCol ){ + sqlite3_result_int64(pCtx, pCsr->iSpecial); + } + }else + + if( iCol==pConfig->nCol ){ + /* User is requesting the value of the special column with the same name + ** as the table. Return the cursor integer id number. This value is only + ** useful in that it may be passed as the first argument to an FTS5 + ** auxiliary function. */ + sqlite3_result_int64(pCtx, pCsr->iCsrId); + }else if( iCol==pConfig->nCol+1 ){ + + /* The value of the "rank" column. */ + if( pCsr->ePlan==FTS5_PLAN_SOURCE ){ + fts5PoslistBlob(pCtx, pCsr); + }else if( + pCsr->ePlan==FTS5_PLAN_MATCH + || pCsr->ePlan==FTS5_PLAN_SORTED_MATCH + ){ + if( pCsr->pRank || SQLITE_OK==(rc = fts5FindRankFunction(pCsr)) ){ + fts5ApiInvoke(pCsr->pRank, pCsr, pCtx, pCsr->nRankArg, pCsr->apRankArg); + } + } + }else if( !fts5IsContentless(pTab) ){ + rc = fts5SeekCursor(pCsr, 1); + if( rc==SQLITE_OK ){ + sqlite3_result_value(pCtx, sqlite3_column_value(pCsr->pStmt, iCol+1)); + } + } + return rc; +} + + +/* +** This routine implements the xFindFunction method for the FTS3 +** virtual table. +*/ +static int fts5FindFunctionMethod( + sqlite3_vtab *pVtab, /* Virtual table handle */ + int nArg, /* Number of SQL function arguments */ + const char *zName, /* Name of SQL function */ + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), /* OUT: Result */ + void **ppArg /* OUT: User data for *pxFunc */ +){ + Fts5Table *pTab = (Fts5Table*)pVtab; + Fts5Auxiliary *pAux; + + pAux = fts5FindAuxiliary(pTab, zName); + if( pAux ){ + *pxFunc = fts5ApiCallback; + *ppArg = (void*)pAux; + return 1; + } + + /* No function of the specified name was found. Return 0. */ + return 0; +} + +/* +** Implementation of FTS5 xRename method. Rename an fts5 table. +*/ +static int fts5RenameMethod( + sqlite3_vtab *pVtab, /* Virtual table handle */ + const char *zName /* New name of table */ +){ + Fts5Table *pTab = (Fts5Table*)pVtab; + return sqlite3Fts5StorageRename(pTab->pStorage, zName); +} + +/* +** The xSavepoint() method. +** +** Flush the contents of the pending-terms table to disk. +*/ +static int fts5SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){ + Fts5Table *pTab = (Fts5Table*)pVtab; + fts5CheckTransactionState(pTab, FTS5_SAVEPOINT, iSavepoint); + fts5TripCursors(pTab); + return sqlite3Fts5StorageSync(pTab->pStorage, 0); +} + +/* +** The xRelease() method. +** +** This is a no-op. +*/ +static int fts5ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint){ + Fts5Table *pTab = (Fts5Table*)pVtab; + fts5CheckTransactionState(pTab, FTS5_RELEASE, iSavepoint); + fts5TripCursors(pTab); + return sqlite3Fts5StorageSync(pTab->pStorage, 0); +} + +/* +** The xRollbackTo() method. +** +** Discard the contents of the pending terms table. +*/ +static int fts5RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint){ + Fts5Table *pTab = (Fts5Table*)pVtab; + fts5CheckTransactionState(pTab, FTS5_ROLLBACKTO, iSavepoint); + fts5TripCursors(pTab); + return sqlite3Fts5StorageRollback(pTab->pStorage); +} + +/* +** Register a new auxiliary function with global context pGlobal. +*/ +static int fts5CreateAux( + fts5_api *pApi, /* Global context (one per db handle) */ + const char *zName, /* Name of new function */ + void *pUserData, /* User data for aux. function */ + fts5_extension_function xFunc, /* Aux. function implementation */ + void(*xDestroy)(void*) /* Destructor for pUserData */ +){ + Fts5Global *pGlobal = (Fts5Global*)pApi; + int rc = sqlite3_overload_function(pGlobal->db, zName, -1); + if( rc==SQLITE_OK ){ + Fts5Auxiliary *pAux; + int nName; /* Size of zName in bytes, including \0 */ + int nByte; /* Bytes of space to allocate */ + + nName = (int)strlen(zName) + 1; + nByte = sizeof(Fts5Auxiliary) + nName; + pAux = (Fts5Auxiliary*)sqlite3_malloc(nByte); + if( pAux ){ + memset(pAux, 0, nByte); + pAux->zFunc = (char*)&pAux[1]; + memcpy(pAux->zFunc, zName, nName); + pAux->pGlobal = pGlobal; + pAux->pUserData = pUserData; + pAux->xFunc = xFunc; + pAux->xDestroy = xDestroy; + pAux->pNext = pGlobal->pAux; + pGlobal->pAux = pAux; + }else{ + rc = SQLITE_NOMEM; + } + } + + return rc; +} + +/* +** Register a new tokenizer. This is the implementation of the +** fts5_api.xCreateTokenizer() method. +*/ +static int fts5CreateTokenizer( + fts5_api *pApi, /* Global context (one per db handle) */ + const char *zName, /* Name of new function */ + void *pUserData, /* User data for aux. function */ + fts5_tokenizer *pTokenizer, /* Tokenizer implementation */ + void(*xDestroy)(void*) /* Destructor for pUserData */ +){ + Fts5Global *pGlobal = (Fts5Global*)pApi; + Fts5TokenizerModule *pNew; + int nName; /* Size of zName and its \0 terminator */ + int nByte; /* Bytes of space to allocate */ + int rc = SQLITE_OK; + + nName = (int)strlen(zName) + 1; + nByte = sizeof(Fts5TokenizerModule) + nName; + pNew = (Fts5TokenizerModule*)sqlite3_malloc(nByte); + if( pNew ){ + memset(pNew, 0, nByte); + pNew->zName = (char*)&pNew[1]; + memcpy(pNew->zName, zName, nName); + pNew->pUserData = pUserData; + pNew->x = *pTokenizer; + pNew->xDestroy = xDestroy; + pNew->pNext = pGlobal->pTok; + pGlobal->pTok = pNew; + if( pNew->pNext==0 ){ + pGlobal->pDfltTok = pNew; + } + }else{ + rc = SQLITE_NOMEM; + } + + return rc; +} + +static Fts5TokenizerModule *fts5LocateTokenizer( + Fts5Global *pGlobal, + const char *zName +){ + Fts5TokenizerModule *pMod = 0; + + if( zName==0 ){ + pMod = pGlobal->pDfltTok; + }else{ + for(pMod=pGlobal->pTok; pMod; pMod=pMod->pNext){ + if( sqlite3_stricmp(zName, pMod->zName)==0 ) break; + } + } + + return pMod; +} + +/* +** Find a tokenizer. This is the implementation of the +** fts5_api.xFindTokenizer() method. +*/ +static int fts5FindTokenizer( + fts5_api *pApi, /* Global context (one per db handle) */ + const char *zName, /* Name of new function */ + void **ppUserData, + fts5_tokenizer *pTokenizer /* Populate this object */ +){ + int rc = SQLITE_OK; + Fts5TokenizerModule *pMod; + + pMod = fts5LocateTokenizer((Fts5Global*)pApi, zName); + if( pMod ){ + *pTokenizer = pMod->x; + *ppUserData = pMod->pUserData; + }else{ + memset(pTokenizer, 0, sizeof(fts5_tokenizer)); + rc = SQLITE_ERROR; + } + + return rc; +} + +static int sqlite3Fts5GetTokenizer( + Fts5Global *pGlobal, + const char **azArg, + int nArg, + Fts5Tokenizer **ppTok, + fts5_tokenizer **ppTokApi, + char **pzErr +){ + Fts5TokenizerModule *pMod; + int rc = SQLITE_OK; + + pMod = fts5LocateTokenizer(pGlobal, nArg==0 ? 0 : azArg[0]); + if( pMod==0 ){ + assert( nArg>0 ); + rc = SQLITE_ERROR; + *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); + }else{ + rc = pMod->x.xCreate(pMod->pUserData, &azArg[1], (nArg?nArg-1:0), ppTok); + *ppTokApi = &pMod->x; + if( rc!=SQLITE_OK && pzErr ){ + *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + } + } + + if( rc!=SQLITE_OK ){ + *ppTokApi = 0; + *ppTok = 0; + } + + return rc; +} + +static void fts5ModuleDestroy(void *pCtx){ + Fts5TokenizerModule *pTok, *pNextTok; + Fts5Auxiliary *pAux, *pNextAux; + Fts5Global *pGlobal = (Fts5Global*)pCtx; + + for(pAux=pGlobal->pAux; pAux; pAux=pNextAux){ + pNextAux = pAux->pNext; + if( pAux->xDestroy ) pAux->xDestroy(pAux->pUserData); + sqlite3_free(pAux); + } + + for(pTok=pGlobal->pTok; pTok; pTok=pNextTok){ + pNextTok = pTok->pNext; + if( pTok->xDestroy ) pTok->xDestroy(pTok->pUserData); + sqlite3_free(pTok); + } + + sqlite3_free(pGlobal); +} + +static void fts5Fts5Func( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal /* Function arguments */ +){ + Fts5Global *pGlobal = (Fts5Global*)sqlite3_user_data(pCtx); + char buf[8]; + assert( nArg==0 ); + assert( sizeof(buf)>=sizeof(pGlobal) ); + memcpy(buf, (void*)&pGlobal, sizeof(pGlobal)); + sqlite3_result_blob(pCtx, buf, sizeof(pGlobal), SQLITE_TRANSIENT); +} + +/* +** Implementation of fts5_source_id() function. +*/ +static void fts5SourceIdFunc( + sqlite3_context *pCtx, /* Function call context */ + int nArg, /* Number of args */ + sqlite3_value **apVal /* Function arguments */ +){ + assert( nArg==0 ); + sqlite3_result_text(pCtx, "fts5: 2015-11-02 18:31:45 bda77dda9697c463c3d0704014d51627fceee328", -1, SQLITE_TRANSIENT); +} + +static int fts5Init(sqlite3 *db){ + static const sqlite3_module fts5Mod = { + /* iVersion */ 2, + /* xCreate */ fts5CreateMethod, + /* xConnect */ fts5ConnectMethod, + /* xBestIndex */ fts5BestIndexMethod, + /* xDisconnect */ fts5DisconnectMethod, + /* xDestroy */ fts5DestroyMethod, + /* xOpen */ fts5OpenMethod, + /* xClose */ fts5CloseMethod, + /* xFilter */ fts5FilterMethod, + /* xNext */ fts5NextMethod, + /* xEof */ fts5EofMethod, + /* xColumn */ fts5ColumnMethod, + /* xRowid */ fts5RowidMethod, + /* xUpdate */ fts5UpdateMethod, + /* xBegin */ fts5BeginMethod, + /* xSync */ fts5SyncMethod, + /* xCommit */ fts5CommitMethod, + /* xRollback */ fts5RollbackMethod, + /* xFindFunction */ fts5FindFunctionMethod, + /* xRename */ fts5RenameMethod, + /* xSavepoint */ fts5SavepointMethod, + /* xRelease */ fts5ReleaseMethod, + /* xRollbackTo */ fts5RollbackToMethod, + }; + + int rc; + Fts5Global *pGlobal = 0; + + pGlobal = (Fts5Global*)sqlite3_malloc(sizeof(Fts5Global)); + if( pGlobal==0 ){ + rc = SQLITE_NOMEM; + }else{ + void *p = (void*)pGlobal; + memset(pGlobal, 0, sizeof(Fts5Global)); + pGlobal->db = db; + pGlobal->api.iVersion = 2; + pGlobal->api.xCreateFunction = fts5CreateAux; + pGlobal->api.xCreateTokenizer = fts5CreateTokenizer; + pGlobal->api.xFindTokenizer = fts5FindTokenizer; + rc = sqlite3_create_module_v2(db, "fts5", &fts5Mod, p, fts5ModuleDestroy); + if( rc==SQLITE_OK ) rc = sqlite3Fts5IndexInit(db); + if( rc==SQLITE_OK ) rc = sqlite3Fts5ExprInit(pGlobal, db); + if( rc==SQLITE_OK ) rc = sqlite3Fts5AuxInit(&pGlobal->api); + if( rc==SQLITE_OK ) rc = sqlite3Fts5TokenizerInit(&pGlobal->api); + if( rc==SQLITE_OK ) rc = sqlite3Fts5VocabInit(pGlobal, db); + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function( + db, "fts5", 0, SQLITE_UTF8, p, fts5Fts5Func, 0, 0 + ); + } + if( rc==SQLITE_OK ){ + rc = sqlite3_create_function( + db, "fts5_source_id", 0, SQLITE_UTF8, p, fts5SourceIdFunc, 0, 0 + ); + } + } + return rc; +} + +/* +** The following functions are used to register the module with SQLite. If +** this module is being built as part of the SQLite core (SQLITE_CORE is +** defined), then sqlite3_open() will call sqlite3Fts5Init() directly. +** +** Or, if this module is being built as a loadable extension, +** sqlite3Fts5Init() is omitted and the two standard entry points +** sqlite3_fts_init() and sqlite3_fts5_init() defined instead. +*/ +#ifndef SQLITE_CORE +#ifdef _WIN32 +__declspec(dllexport) +#endif +SQLITE_API int SQLITE_STDCALL sqlite3_fts_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + return fts5Init(db); +} + +#ifdef _WIN32 +__declspec(dllexport) +#endif +SQLITE_API int SQLITE_STDCALL sqlite3_fts5_init( + sqlite3 *db, + char **pzErrMsg, + const sqlite3_api_routines *pApi +){ + SQLITE_EXTENSION_INIT2(pApi); + (void)pzErrMsg; /* Unused parameter */ + return fts5Init(db); +} +#else +SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3 *db){ + return fts5Init(db); +} +#endif + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +*/ + + + + +struct Fts5Storage { + Fts5Config *pConfig; + Fts5Index *pIndex; + int bTotalsValid; /* True if nTotalRow/aTotalSize[] are valid */ + i64 nTotalRow; /* Total number of rows in FTS table */ + i64 *aTotalSize; /* Total sizes of each column */ + sqlite3_stmt *aStmt[11]; +}; + + +#if FTS5_STMT_SCAN_ASC!=0 +# error "FTS5_STMT_SCAN_ASC mismatch" +#endif +#if FTS5_STMT_SCAN_DESC!=1 +# error "FTS5_STMT_SCAN_DESC mismatch" +#endif +#if FTS5_STMT_LOOKUP!=2 +# error "FTS5_STMT_LOOKUP mismatch" +#endif + +#define FTS5_STMT_INSERT_CONTENT 3 +#define FTS5_STMT_REPLACE_CONTENT 4 +#define FTS5_STMT_DELETE_CONTENT 5 +#define FTS5_STMT_REPLACE_DOCSIZE 6 +#define FTS5_STMT_DELETE_DOCSIZE 7 +#define FTS5_STMT_LOOKUP_DOCSIZE 8 +#define FTS5_STMT_REPLACE_CONFIG 9 +#define FTS5_STMT_SCAN 10 + +/* +** Prepare the two insert statements - Fts5Storage.pInsertContent and +** Fts5Storage.pInsertDocsize - if they have not already been prepared. +** Return SQLITE_OK if successful, or an SQLite error code if an error +** occurs. +*/ +static int fts5StorageGetStmt( + Fts5Storage *p, /* Storage handle */ + int eStmt, /* FTS5_STMT_XXX constant */ + sqlite3_stmt **ppStmt, /* OUT: Prepared statement handle */ + char **pzErrMsg /* OUT: Error message (if any) */ +){ + int rc = SQLITE_OK; + + /* If there is no %_docsize table, there should be no requests for + ** statements to operate on it. */ + assert( p->pConfig->bColumnsize || ( + eStmt!=FTS5_STMT_REPLACE_DOCSIZE + && eStmt!=FTS5_STMT_DELETE_DOCSIZE + && eStmt!=FTS5_STMT_LOOKUP_DOCSIZE + )); + + assert( eStmt>=0 && eStmtaStmt) ); + if( p->aStmt[eStmt]==0 ){ + const char *azStmt[] = { + "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC", + "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC", + "SELECT %s FROM %s T WHERE T.%Q=?", /* LOOKUP */ + + "INSERT INTO %Q.'%q_content' VALUES(%s)", /* INSERT_CONTENT */ + "REPLACE INTO %Q.'%q_content' VALUES(%s)", /* REPLACE_CONTENT */ + "DELETE FROM %Q.'%q_content' WHERE id=?", /* DELETE_CONTENT */ + "REPLACE INTO %Q.'%q_docsize' VALUES(?,?)", /* REPLACE_DOCSIZE */ + "DELETE FROM %Q.'%q_docsize' WHERE id=?", /* DELETE_DOCSIZE */ + + "SELECT sz FROM %Q.'%q_docsize' WHERE id=?", /* LOOKUP_DOCSIZE */ + + "REPLACE INTO %Q.'%q_config' VALUES(?,?)", /* REPLACE_CONFIG */ + "SELECT %s FROM %s AS T", /* SCAN */ + }; + Fts5Config *pC = p->pConfig; + char *zSql = 0; + + switch( eStmt ){ + case FTS5_STMT_SCAN: + zSql = sqlite3_mprintf(azStmt[eStmt], + pC->zContentExprlist, pC->zContent + ); + break; + + case FTS5_STMT_SCAN_ASC: + case FTS5_STMT_SCAN_DESC: + zSql = sqlite3_mprintf(azStmt[eStmt], pC->zContentExprlist, + pC->zContent, pC->zContentRowid, pC->zContentRowid, + pC->zContentRowid + ); + break; + + case FTS5_STMT_LOOKUP: + zSql = sqlite3_mprintf(azStmt[eStmt], + pC->zContentExprlist, pC->zContent, pC->zContentRowid + ); + break; + + case FTS5_STMT_INSERT_CONTENT: + case FTS5_STMT_REPLACE_CONTENT: { + int nCol = pC->nCol + 1; + char *zBind; + int i; + + zBind = sqlite3_malloc(1 + nCol*2); + if( zBind ){ + for(i=0; izDb, pC->zName, zBind); + sqlite3_free(zBind); + } + break; + } + + default: + zSql = sqlite3_mprintf(azStmt[eStmt], pC->zDb, pC->zName); + break; + } + + if( zSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + rc = sqlite3_prepare_v2(pC->db, zSql, -1, &p->aStmt[eStmt], 0); + sqlite3_free(zSql); + if( rc!=SQLITE_OK && pzErrMsg ){ + *pzErrMsg = sqlite3_mprintf("%s", sqlite3_errmsg(pC->db)); + } + } + } + + *ppStmt = p->aStmt[eStmt]; + return rc; +} + + +static int fts5ExecPrintf( + sqlite3 *db, + char **pzErr, + const char *zFormat, + ... +){ + int rc; + va_list ap; /* ... printf arguments */ + char *zSql; + + va_start(ap, zFormat); + zSql = sqlite3_vmprintf(zFormat, ap); + + if( zSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + rc = sqlite3_exec(db, zSql, 0, 0, pzErr); + sqlite3_free(zSql); + } + + va_end(ap); + return rc; +} + +/* +** Drop all shadow tables. Return SQLITE_OK if successful or an SQLite error +** code otherwise. +*/ +static int sqlite3Fts5DropAll(Fts5Config *pConfig){ + int rc = fts5ExecPrintf(pConfig->db, 0, + "DROP TABLE IF EXISTS %Q.'%q_data';" + "DROP TABLE IF EXISTS %Q.'%q_idx';" + "DROP TABLE IF EXISTS %Q.'%q_config';", + pConfig->zDb, pConfig->zName, + pConfig->zDb, pConfig->zName, + pConfig->zDb, pConfig->zName + ); + if( rc==SQLITE_OK && pConfig->bColumnsize ){ + rc = fts5ExecPrintf(pConfig->db, 0, + "DROP TABLE IF EXISTS %Q.'%q_docsize';", + pConfig->zDb, pConfig->zName + ); + } + if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){ + rc = fts5ExecPrintf(pConfig->db, 0, + "DROP TABLE IF EXISTS %Q.'%q_content';", + pConfig->zDb, pConfig->zName + ); + } + return rc; +} + +static void fts5StorageRenameOne( + Fts5Config *pConfig, /* Current FTS5 configuration */ + int *pRc, /* IN/OUT: Error code */ + const char *zTail, /* Tail of table name e.g. "data", "config" */ + const char *zName /* New name of FTS5 table */ +){ + if( *pRc==SQLITE_OK ){ + *pRc = fts5ExecPrintf(pConfig->db, 0, + "ALTER TABLE %Q.'%q_%s' RENAME TO '%q_%s';", + pConfig->zDb, pConfig->zName, zTail, zName, zTail + ); + } +} + +static int sqlite3Fts5StorageRename(Fts5Storage *pStorage, const char *zName){ + Fts5Config *pConfig = pStorage->pConfig; + int rc = sqlite3Fts5StorageSync(pStorage, 1); + + fts5StorageRenameOne(pConfig, &rc, "data", zName); + fts5StorageRenameOne(pConfig, &rc, "idx", zName); + fts5StorageRenameOne(pConfig, &rc, "config", zName); + if( pConfig->bColumnsize ){ + fts5StorageRenameOne(pConfig, &rc, "docsize", zName); + } + if( pConfig->eContent==FTS5_CONTENT_NORMAL ){ + fts5StorageRenameOne(pConfig, &rc, "content", zName); + } + return rc; +} + +/* +** Create the shadow table named zPost, with definition zDefn. Return +** SQLITE_OK if successful, or an SQLite error code otherwise. +*/ +static int sqlite3Fts5CreateTable( + Fts5Config *pConfig, /* FTS5 configuration */ + const char *zPost, /* Shadow table to create (e.g. "content") */ + const char *zDefn, /* Columns etc. for shadow table */ + int bWithout, /* True for without rowid */ + char **pzErr /* OUT: Error message */ +){ + int rc; + char *zErr = 0; + + rc = fts5ExecPrintf(pConfig->db, &zErr, "CREATE TABLE %Q.'%q_%q'(%s)%s", + pConfig->zDb, pConfig->zName, zPost, zDefn, bWithout?" WITHOUT ROWID":"" + ); + if( zErr ){ + *pzErr = sqlite3_mprintf( + "fts5: error creating shadow table %q_%s: %s", + pConfig->zName, zPost, zErr + ); + sqlite3_free(zErr); + } + + return rc; +} + +/* +** Open a new Fts5Index handle. If the bCreate argument is true, create +** and initialize the underlying tables +** +** If successful, set *pp to point to the new object and return SQLITE_OK. +** Otherwise, set *pp to NULL and return an SQLite error code. +*/ +static int sqlite3Fts5StorageOpen( + Fts5Config *pConfig, + Fts5Index *pIndex, + int bCreate, + Fts5Storage **pp, + char **pzErr /* OUT: Error message */ +){ + int rc = SQLITE_OK; + Fts5Storage *p; /* New object */ + int nByte; /* Bytes of space to allocate */ + + nByte = sizeof(Fts5Storage) /* Fts5Storage object */ + + pConfig->nCol * sizeof(i64); /* Fts5Storage.aTotalSize[] */ + *pp = p = (Fts5Storage*)sqlite3_malloc(nByte); + if( !p ) return SQLITE_NOMEM; + + memset(p, 0, nByte); + p->aTotalSize = (i64*)&p[1]; + p->pConfig = pConfig; + p->pIndex = pIndex; + + if( bCreate ){ + if( pConfig->eContent==FTS5_CONTENT_NORMAL ){ + int nDefn = 32 + pConfig->nCol*10; + char *zDefn = sqlite3_malloc(32 + pConfig->nCol * 10); + if( zDefn==0 ){ + rc = SQLITE_NOMEM; + }else{ + int i; + int iOff; + sqlite3_snprintf(nDefn, zDefn, "id INTEGER PRIMARY KEY"); + iOff = strlen(zDefn); + for(i=0; inCol; i++){ + sqlite3_snprintf(nDefn-iOff, &zDefn[iOff], ", c%d", i); + iOff += strlen(&zDefn[iOff]); + } + rc = sqlite3Fts5CreateTable(pConfig, "content", zDefn, 0, pzErr); + } + sqlite3_free(zDefn); + } + + if( rc==SQLITE_OK && pConfig->bColumnsize ){ + rc = sqlite3Fts5CreateTable( + pConfig, "docsize", "id INTEGER PRIMARY KEY, sz BLOB", 0, pzErr + ); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5CreateTable( + pConfig, "config", "k PRIMARY KEY, v", 1, pzErr + ); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageConfigValue(p, "version", 0, FTS5_CURRENT_VERSION); + } + } + + if( rc ){ + sqlite3Fts5StorageClose(p); + *pp = 0; + } + return rc; +} + +/* +** Close a handle opened by an earlier call to sqlite3Fts5StorageOpen(). +*/ +static int sqlite3Fts5StorageClose(Fts5Storage *p){ + int rc = SQLITE_OK; + if( p ){ + int i; + + /* Finalize all SQL statements */ + for(i=0; iaStmt); i++){ + sqlite3_finalize(p->aStmt[i]); + } + + sqlite3_free(p); + } + return rc; +} + +typedef struct Fts5InsertCtx Fts5InsertCtx; +struct Fts5InsertCtx { + Fts5Storage *pStorage; + int iCol; + int szCol; /* Size of column value in tokens */ +}; + +/* +** Tokenization callback used when inserting tokens into the FTS index. +*/ +static int fts5StorageInsertCallback( + void *pContext, /* Pointer to Fts5InsertCtx object */ + int tflags, + const char *pToken, /* Buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStart, /* Start offset of token */ + int iEnd /* End offset of token */ +){ + Fts5InsertCtx *pCtx = (Fts5InsertCtx*)pContext; + Fts5Index *pIdx = pCtx->pStorage->pIndex; + if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){ + pCtx->szCol++; + } + return sqlite3Fts5IndexWrite(pIdx, pCtx->iCol, pCtx->szCol-1, pToken, nToken); +} + +/* +** If a row with rowid iDel is present in the %_content table, add the +** delete-markers to the FTS index necessary to delete it. Do not actually +** remove the %_content row at this time though. +*/ +static int fts5StorageDeleteFromIndex(Fts5Storage *p, i64 iDel){ + Fts5Config *pConfig = p->pConfig; + sqlite3_stmt *pSeek; /* SELECT to read row iDel from %_data */ + int rc; /* Return code */ + + rc = fts5StorageGetStmt(p, FTS5_STMT_LOOKUP, &pSeek, 0); + if( rc==SQLITE_OK ){ + int rc2; + sqlite3_bind_int64(pSeek, 1, iDel); + if( sqlite3_step(pSeek)==SQLITE_ROW ){ + int iCol; + Fts5InsertCtx ctx; + ctx.pStorage = p; + ctx.iCol = -1; + rc = sqlite3Fts5IndexBeginWrite(p->pIndex, 1, iDel); + for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){ + if( pConfig->abUnindexed[iCol-1] ) continue; + ctx.szCol = 0; + rc = sqlite3Fts5Tokenize(pConfig, + FTS5_TOKENIZE_DOCUMENT, + (const char*)sqlite3_column_text(pSeek, iCol), + sqlite3_column_bytes(pSeek, iCol), + (void*)&ctx, + fts5StorageInsertCallback + ); + p->aTotalSize[iCol-1] -= (i64)ctx.szCol; + } + p->nTotalRow--; + } + rc2 = sqlite3_reset(pSeek); + if( rc==SQLITE_OK ) rc = rc2; + } + + return rc; +} + + +/* +** Insert a record into the %_docsize table. Specifically, do: +** +** INSERT OR REPLACE INTO %_docsize(id, sz) VALUES(iRowid, pBuf); +** +** If there is no %_docsize table (as happens if the columnsize=0 option +** is specified when the FTS5 table is created), this function is a no-op. +*/ +static int fts5StorageInsertDocsize( + Fts5Storage *p, /* Storage module to write to */ + i64 iRowid, /* id value */ + Fts5Buffer *pBuf /* sz value */ +){ + int rc = SQLITE_OK; + if( p->pConfig->bColumnsize ){ + sqlite3_stmt *pReplace = 0; + rc = fts5StorageGetStmt(p, FTS5_STMT_REPLACE_DOCSIZE, &pReplace, 0); + if( rc==SQLITE_OK ){ + sqlite3_bind_int64(pReplace, 1, iRowid); + sqlite3_bind_blob(pReplace, 2, pBuf->p, pBuf->n, SQLITE_STATIC); + sqlite3_step(pReplace); + rc = sqlite3_reset(pReplace); + } + } + return rc; +} + +/* +** Load the contents of the "averages" record from disk into the +** p->nTotalRow and p->aTotalSize[] variables. If successful, and if +** argument bCache is true, set the p->bTotalsValid flag to indicate +** that the contents of aTotalSize[] and nTotalRow are valid until +** further notice. +** +** Return SQLITE_OK if successful, or an SQLite error code if an error +** occurs. +*/ +static int fts5StorageLoadTotals(Fts5Storage *p, int bCache){ + int rc = SQLITE_OK; + if( p->bTotalsValid==0 ){ + rc = sqlite3Fts5IndexGetAverages(p->pIndex, &p->nTotalRow, p->aTotalSize); + p->bTotalsValid = bCache; + } + return rc; +} + +/* +** Store the current contents of the p->nTotalRow and p->aTotalSize[] +** variables in the "averages" record on disk. +** +** Return SQLITE_OK if successful, or an SQLite error code if an error +** occurs. +*/ +static int fts5StorageSaveTotals(Fts5Storage *p){ + int nCol = p->pConfig->nCol; + int i; + Fts5Buffer buf; + int rc = SQLITE_OK; + memset(&buf, 0, sizeof(buf)); + + sqlite3Fts5BufferAppendVarint(&rc, &buf, p->nTotalRow); + for(i=0; iaTotalSize[i]); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexSetAverages(p->pIndex, buf.p, buf.n); + } + sqlite3_free(buf.p); + + return rc; +} + +/* +** Remove a row from the FTS table. +*/ +static int sqlite3Fts5StorageDelete(Fts5Storage *p, i64 iDel){ + Fts5Config *pConfig = p->pConfig; + int rc; + sqlite3_stmt *pDel = 0; + + rc = fts5StorageLoadTotals(p, 1); + + /* Delete the index records */ + if( rc==SQLITE_OK ){ + rc = fts5StorageDeleteFromIndex(p, iDel); + } + + /* Delete the %_docsize record */ + if( rc==SQLITE_OK && pConfig->bColumnsize ){ + rc = fts5StorageGetStmt(p, FTS5_STMT_DELETE_DOCSIZE, &pDel, 0); + if( rc==SQLITE_OK ){ + sqlite3_bind_int64(pDel, 1, iDel); + sqlite3_step(pDel); + rc = sqlite3_reset(pDel); + } + } + + /* Delete the %_content record */ + if( rc==SQLITE_OK ){ + rc = fts5StorageGetStmt(p, FTS5_STMT_DELETE_CONTENT, &pDel, 0); + } + if( rc==SQLITE_OK ){ + sqlite3_bind_int64(pDel, 1, iDel); + sqlite3_step(pDel); + rc = sqlite3_reset(pDel); + } + + /* Write the averages record */ + if( rc==SQLITE_OK ){ + rc = fts5StorageSaveTotals(p); + } + + return rc; +} + +static int sqlite3Fts5StorageSpecialDelete( + Fts5Storage *p, + i64 iDel, + sqlite3_value **apVal +){ + Fts5Config *pConfig = p->pConfig; + int rc; + sqlite3_stmt *pDel = 0; + + assert( pConfig->eContent!=FTS5_CONTENT_NORMAL ); + rc = fts5StorageLoadTotals(p, 1); + + /* Delete the index records */ + if( rc==SQLITE_OK ){ + int iCol; + Fts5InsertCtx ctx; + ctx.pStorage = p; + ctx.iCol = -1; + + rc = sqlite3Fts5IndexBeginWrite(p->pIndex, 1, iDel); + for(iCol=0; rc==SQLITE_OK && iColnCol; iCol++){ + if( pConfig->abUnindexed[iCol] ) continue; + ctx.szCol = 0; + rc = sqlite3Fts5Tokenize(pConfig, + FTS5_TOKENIZE_DOCUMENT, + (const char*)sqlite3_value_text(apVal[iCol]), + sqlite3_value_bytes(apVal[iCol]), + (void*)&ctx, + fts5StorageInsertCallback + ); + p->aTotalSize[iCol] -= (i64)ctx.szCol; + } + p->nTotalRow--; + } + + /* Delete the %_docsize record */ + if( pConfig->bColumnsize ){ + if( rc==SQLITE_OK ){ + rc = fts5StorageGetStmt(p, FTS5_STMT_DELETE_DOCSIZE, &pDel, 0); + } + if( rc==SQLITE_OK ){ + sqlite3_bind_int64(pDel, 1, iDel); + sqlite3_step(pDel); + rc = sqlite3_reset(pDel); + } + } + + /* Write the averages record */ + if( rc==SQLITE_OK ){ + rc = fts5StorageSaveTotals(p); + } + + return rc; +} + +/* +** Delete all entries in the FTS5 index. +*/ +static int sqlite3Fts5StorageDeleteAll(Fts5Storage *p){ + Fts5Config *pConfig = p->pConfig; + int rc; + + /* Delete the contents of the %_data and %_docsize tables. */ + rc = fts5ExecPrintf(pConfig->db, 0, + "DELETE FROM %Q.'%q_data';" + "DELETE FROM %Q.'%q_idx';", + pConfig->zDb, pConfig->zName, + pConfig->zDb, pConfig->zName + ); + if( rc==SQLITE_OK && pConfig->bColumnsize ){ + rc = fts5ExecPrintf(pConfig->db, 0, + "DELETE FROM %Q.'%q_docsize';", + pConfig->zDb, pConfig->zName + ); + } + + /* Reinitialize the %_data table. This call creates the initial structure + ** and averages records. */ + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexReinit(p->pIndex); + } + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5StorageConfigValue(p, "version", 0, FTS5_CURRENT_VERSION); + } + return rc; +} + +static int sqlite3Fts5StorageRebuild(Fts5Storage *p){ + Fts5Buffer buf = {0,0,0}; + Fts5Config *pConfig = p->pConfig; + sqlite3_stmt *pScan = 0; + Fts5InsertCtx ctx; + int rc; + + memset(&ctx, 0, sizeof(Fts5InsertCtx)); + ctx.pStorage = p; + rc = sqlite3Fts5StorageDeleteAll(p); + if( rc==SQLITE_OK ){ + rc = fts5StorageLoadTotals(p, 1); + } + + if( rc==SQLITE_OK ){ + rc = fts5StorageGetStmt(p, FTS5_STMT_SCAN, &pScan, 0); + } + + while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pScan) ){ + i64 iRowid = sqlite3_column_int64(pScan, 0); + + sqlite3Fts5BufferZero(&buf); + rc = sqlite3Fts5IndexBeginWrite(p->pIndex, 0, iRowid); + for(ctx.iCol=0; rc==SQLITE_OK && ctx.iColnCol; ctx.iCol++){ + ctx.szCol = 0; + if( pConfig->abUnindexed[ctx.iCol]==0 ){ + rc = sqlite3Fts5Tokenize(pConfig, + FTS5_TOKENIZE_DOCUMENT, + (const char*)sqlite3_column_text(pScan, ctx.iCol+1), + sqlite3_column_bytes(pScan, ctx.iCol+1), + (void*)&ctx, + fts5StorageInsertCallback + ); + } + sqlite3Fts5BufferAppendVarint(&rc, &buf, ctx.szCol); + p->aTotalSize[ctx.iCol] += (i64)ctx.szCol; + } + p->nTotalRow++; + + if( rc==SQLITE_OK ){ + rc = fts5StorageInsertDocsize(p, iRowid, &buf); + } + } + sqlite3_free(buf.p); + + /* Write the averages record */ + if( rc==SQLITE_OK ){ + rc = fts5StorageSaveTotals(p); + } + return rc; +} + +static int sqlite3Fts5StorageOptimize(Fts5Storage *p){ + return sqlite3Fts5IndexOptimize(p->pIndex); +} + +static int sqlite3Fts5StorageMerge(Fts5Storage *p, int nMerge){ + return sqlite3Fts5IndexMerge(p->pIndex, nMerge); +} + +/* +** Allocate a new rowid. This is used for "external content" tables when +** a NULL value is inserted into the rowid column. The new rowid is allocated +** by inserting a dummy row into the %_docsize table. The dummy will be +** overwritten later. +** +** If the %_docsize table does not exist, SQLITE_MISMATCH is returned. In +** this case the user is required to provide a rowid explicitly. +*/ +static int fts5StorageNewRowid(Fts5Storage *p, i64 *piRowid){ + int rc = SQLITE_MISMATCH; + if( p->pConfig->bColumnsize ){ + sqlite3_stmt *pReplace = 0; + rc = fts5StorageGetStmt(p, FTS5_STMT_REPLACE_DOCSIZE, &pReplace, 0); + if( rc==SQLITE_OK ){ + sqlite3_bind_null(pReplace, 1); + sqlite3_bind_null(pReplace, 2); + sqlite3_step(pReplace); + rc = sqlite3_reset(pReplace); + } + if( rc==SQLITE_OK ){ + *piRowid = sqlite3_last_insert_rowid(p->pConfig->db); + } + } + return rc; +} + +/* +** Insert a new row into the FTS content table. +*/ +static int sqlite3Fts5StorageContentInsert( + Fts5Storage *p, + sqlite3_value **apVal, + i64 *piRowid +){ + Fts5Config *pConfig = p->pConfig; + int rc = SQLITE_OK; + + /* Insert the new row into the %_content table. */ + if( pConfig->eContent!=FTS5_CONTENT_NORMAL ){ + if( sqlite3_value_type(apVal[1])==SQLITE_INTEGER ){ + *piRowid = sqlite3_value_int64(apVal[1]); + }else{ + rc = fts5StorageNewRowid(p, piRowid); + } + }else{ + sqlite3_stmt *pInsert = 0; /* Statement to write %_content table */ + int i; /* Counter variable */ +#if 0 + if( eConflict==SQLITE_REPLACE ){ + eStmt = FTS5_STMT_REPLACE_CONTENT; + rc = fts5StorageDeleteFromIndex(p, sqlite3_value_int64(apVal[1])); + }else{ + eStmt = FTS5_STMT_INSERT_CONTENT; + } +#endif + if( rc==SQLITE_OK ){ + rc = fts5StorageGetStmt(p, FTS5_STMT_INSERT_CONTENT, &pInsert, 0); + } + for(i=1; rc==SQLITE_OK && i<=pConfig->nCol+1; i++){ + rc = sqlite3_bind_value(pInsert, i, apVal[i]); + } + if( rc==SQLITE_OK ){ + sqlite3_step(pInsert); + rc = sqlite3_reset(pInsert); + } + *piRowid = sqlite3_last_insert_rowid(pConfig->db); + } + + return rc; +} + +/* +** Insert new entries into the FTS index and %_docsize table. +*/ +static int sqlite3Fts5StorageIndexInsert( + Fts5Storage *p, + sqlite3_value **apVal, + i64 iRowid +){ + Fts5Config *pConfig = p->pConfig; + int rc = SQLITE_OK; /* Return code */ + Fts5InsertCtx ctx; /* Tokenization callback context object */ + Fts5Buffer buf; /* Buffer used to build up %_docsize blob */ + + memset(&buf, 0, sizeof(Fts5Buffer)); + ctx.pStorage = p; + rc = fts5StorageLoadTotals(p, 1); + + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexBeginWrite(p->pIndex, 0, iRowid); + } + for(ctx.iCol=0; rc==SQLITE_OK && ctx.iColnCol; ctx.iCol++){ + ctx.szCol = 0; + if( pConfig->abUnindexed[ctx.iCol]==0 ){ + rc = sqlite3Fts5Tokenize(pConfig, + FTS5_TOKENIZE_DOCUMENT, + (const char*)sqlite3_value_text(apVal[ctx.iCol+2]), + sqlite3_value_bytes(apVal[ctx.iCol+2]), + (void*)&ctx, + fts5StorageInsertCallback + ); + } + sqlite3Fts5BufferAppendVarint(&rc, &buf, ctx.szCol); + p->aTotalSize[ctx.iCol] += (i64)ctx.szCol; + } + p->nTotalRow++; + + /* Write the %_docsize record */ + if( rc==SQLITE_OK ){ + rc = fts5StorageInsertDocsize(p, iRowid, &buf); + } + sqlite3_free(buf.p); + + /* Write the averages record */ + if( rc==SQLITE_OK ){ + rc = fts5StorageSaveTotals(p); + } + + return rc; +} + +static int fts5StorageCount(Fts5Storage *p, const char *zSuffix, i64 *pnRow){ + Fts5Config *pConfig = p->pConfig; + char *zSql; + int rc; + + zSql = sqlite3_mprintf("SELECT count(*) FROM %Q.'%q_%s'", + pConfig->zDb, pConfig->zName, zSuffix + ); + if( zSql==0 ){ + rc = SQLITE_NOMEM; + }else{ + sqlite3_stmt *pCnt = 0; + rc = sqlite3_prepare_v2(pConfig->db, zSql, -1, &pCnt, 0); + if( rc==SQLITE_OK ){ + if( SQLITE_ROW==sqlite3_step(pCnt) ){ + *pnRow = sqlite3_column_int64(pCnt, 0); + } + rc = sqlite3_finalize(pCnt); + } + } + + sqlite3_free(zSql); + return rc; +} + +/* +** Context object used by sqlite3Fts5StorageIntegrity(). +*/ +typedef struct Fts5IntegrityCtx Fts5IntegrityCtx; +struct Fts5IntegrityCtx { + i64 iRowid; + int iCol; + int szCol; + u64 cksum; + Fts5Config *pConfig; +}; + +/* +** Tokenization callback used by integrity check. +*/ +static int fts5StorageIntegrityCallback( + void *pContext, /* Pointer to Fts5InsertCtx object */ + int tflags, + const char *pToken, /* Buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStart, /* Start offset of token */ + int iEnd /* End offset of token */ +){ + Fts5IntegrityCtx *pCtx = (Fts5IntegrityCtx*)pContext; + if( (tflags & FTS5_TOKEN_COLOCATED)==0 || pCtx->szCol==0 ){ + pCtx->szCol++; + } + pCtx->cksum ^= sqlite3Fts5IndexCksum( + pCtx->pConfig, pCtx->iRowid, pCtx->iCol, pCtx->szCol-1, pToken, nToken + ); + return SQLITE_OK; +} + +/* +** Check that the contents of the FTS index match that of the %_content +** table. Return SQLITE_OK if they do, or SQLITE_CORRUPT if not. Return +** some other SQLite error code if an error occurs while attempting to +** determine this. +*/ +static int sqlite3Fts5StorageIntegrity(Fts5Storage *p){ + Fts5Config *pConfig = p->pConfig; + int rc; /* Return code */ + int *aColSize; /* Array of size pConfig->nCol */ + i64 *aTotalSize; /* Array of size pConfig->nCol */ + Fts5IntegrityCtx ctx; + sqlite3_stmt *pScan; + + memset(&ctx, 0, sizeof(Fts5IntegrityCtx)); + ctx.pConfig = p->pConfig; + aTotalSize = (i64*)sqlite3_malloc(pConfig->nCol * (sizeof(int)+sizeof(i64))); + if( !aTotalSize ) return SQLITE_NOMEM; + aColSize = (int*)&aTotalSize[pConfig->nCol]; + memset(aTotalSize, 0, sizeof(i64) * pConfig->nCol); + + /* Generate the expected index checksum based on the contents of the + ** %_content table. This block stores the checksum in ctx.cksum. */ + rc = fts5StorageGetStmt(p, FTS5_STMT_SCAN, &pScan, 0); + if( rc==SQLITE_OK ){ + int rc2; + while( SQLITE_ROW==sqlite3_step(pScan) ){ + int i; + ctx.iRowid = sqlite3_column_int64(pScan, 0); + ctx.szCol = 0; + if( pConfig->bColumnsize ){ + rc = sqlite3Fts5StorageDocsize(p, ctx.iRowid, aColSize); + } + for(i=0; rc==SQLITE_OK && inCol; i++){ + if( pConfig->abUnindexed[i] ) continue; + ctx.iCol = i; + ctx.szCol = 0; + rc = sqlite3Fts5Tokenize(pConfig, + FTS5_TOKENIZE_DOCUMENT, + (const char*)sqlite3_column_text(pScan, i+1), + sqlite3_column_bytes(pScan, i+1), + (void*)&ctx, + fts5StorageIntegrityCallback + ); + if( pConfig->bColumnsize && ctx.szCol!=aColSize[i] ){ + rc = FTS5_CORRUPT; + } + aTotalSize[i] += ctx.szCol; + } + if( rc!=SQLITE_OK ) break; + } + rc2 = sqlite3_reset(pScan); + if( rc==SQLITE_OK ) rc = rc2; + } + + /* Test that the "totals" (sometimes called "averages") record looks Ok */ + if( rc==SQLITE_OK ){ + int i; + rc = fts5StorageLoadTotals(p, 0); + for(i=0; rc==SQLITE_OK && inCol; i++){ + if( p->aTotalSize[i]!=aTotalSize[i] ) rc = FTS5_CORRUPT; + } + } + + /* Check that the %_docsize and %_content tables contain the expected + ** number of rows. */ + if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){ + i64 nRow; + rc = fts5StorageCount(p, "content", &nRow); + if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT; + } + if( rc==SQLITE_OK && pConfig->bColumnsize ){ + i64 nRow; + rc = fts5StorageCount(p, "docsize", &nRow); + if( rc==SQLITE_OK && nRow!=p->nTotalRow ) rc = FTS5_CORRUPT; + } + + /* Pass the expected checksum down to the FTS index module. It will + ** verify, amongst other things, that it matches the checksum generated by + ** inspecting the index itself. */ + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexIntegrityCheck(p->pIndex, ctx.cksum); + } + + sqlite3_free(aTotalSize); + return rc; +} + +/* +** Obtain an SQLite statement handle that may be used to read data from the +** %_content table. +*/ +static int sqlite3Fts5StorageStmt( + Fts5Storage *p, + int eStmt, + sqlite3_stmt **pp, + char **pzErrMsg +){ + int rc; + assert( eStmt==FTS5_STMT_SCAN_ASC + || eStmt==FTS5_STMT_SCAN_DESC + || eStmt==FTS5_STMT_LOOKUP + ); + rc = fts5StorageGetStmt(p, eStmt, pp, pzErrMsg); + if( rc==SQLITE_OK ){ + assert( p->aStmt[eStmt]==*pp ); + p->aStmt[eStmt] = 0; + } + return rc; +} + +/* +** Release an SQLite statement handle obtained via an earlier call to +** sqlite3Fts5StorageStmt(). The eStmt parameter passed to this function +** must match that passed to the sqlite3Fts5StorageStmt() call. +*/ +static void sqlite3Fts5StorageStmtRelease( + Fts5Storage *p, + int eStmt, + sqlite3_stmt *pStmt +){ + assert( eStmt==FTS5_STMT_SCAN_ASC + || eStmt==FTS5_STMT_SCAN_DESC + || eStmt==FTS5_STMT_LOOKUP + ); + if( p->aStmt[eStmt]==0 ){ + sqlite3_reset(pStmt); + p->aStmt[eStmt] = pStmt; + }else{ + sqlite3_finalize(pStmt); + } +} + +static int fts5StorageDecodeSizeArray( + int *aCol, int nCol, /* Array to populate */ + const u8 *aBlob, int nBlob /* Record to read varints from */ +){ + int i; + int iOff = 0; + for(i=0; i=nBlob ) return 1; + iOff += fts5GetVarint32(&aBlob[iOff], aCol[i]); + } + return (iOff!=nBlob); +} + +/* +** Argument aCol points to an array of integers containing one entry for +** each table column. This function reads the %_docsize record for the +** specified rowid and populates aCol[] with the results. +** +** An SQLite error code is returned if an error occurs, or SQLITE_OK +** otherwise. +*/ +static int sqlite3Fts5StorageDocsize(Fts5Storage *p, i64 iRowid, int *aCol){ + int nCol = p->pConfig->nCol; /* Number of user columns in table */ + sqlite3_stmt *pLookup = 0; /* Statement to query %_docsize */ + int rc; /* Return Code */ + + assert( p->pConfig->bColumnsize ); + rc = fts5StorageGetStmt(p, FTS5_STMT_LOOKUP_DOCSIZE, &pLookup, 0); + if( rc==SQLITE_OK ){ + int bCorrupt = 1; + sqlite3_bind_int64(pLookup, 1, iRowid); + if( SQLITE_ROW==sqlite3_step(pLookup) ){ + const u8 *aBlob = sqlite3_column_blob(pLookup, 0); + int nBlob = sqlite3_column_bytes(pLookup, 0); + if( 0==fts5StorageDecodeSizeArray(aCol, nCol, aBlob, nBlob) ){ + bCorrupt = 0; + } + } + rc = sqlite3_reset(pLookup); + if( bCorrupt && rc==SQLITE_OK ){ + rc = FTS5_CORRUPT; + } + } + + return rc; +} + +static int sqlite3Fts5StorageSize(Fts5Storage *p, int iCol, i64 *pnToken){ + int rc = fts5StorageLoadTotals(p, 0); + if( rc==SQLITE_OK ){ + *pnToken = 0; + if( iCol<0 ){ + int i; + for(i=0; ipConfig->nCol; i++){ + *pnToken += p->aTotalSize[i]; + } + }else if( iColpConfig->nCol ){ + *pnToken = p->aTotalSize[iCol]; + }else{ + rc = SQLITE_RANGE; + } + } + return rc; +} + +static int sqlite3Fts5StorageRowCount(Fts5Storage *p, i64 *pnRow){ + int rc = fts5StorageLoadTotals(p, 0); + if( rc==SQLITE_OK ){ + *pnRow = p->nTotalRow; + } + return rc; +} + +/* +** Flush any data currently held in-memory to disk. +*/ +static int sqlite3Fts5StorageSync(Fts5Storage *p, int bCommit){ + if( bCommit && p->bTotalsValid ){ + int rc = fts5StorageSaveTotals(p); + p->bTotalsValid = 0; + if( rc!=SQLITE_OK ) return rc; + } + return sqlite3Fts5IndexSync(p->pIndex, bCommit); +} + +static int sqlite3Fts5StorageRollback(Fts5Storage *p){ + p->bTotalsValid = 0; + return sqlite3Fts5IndexRollback(p->pIndex); +} + +static int sqlite3Fts5StorageConfigValue( + Fts5Storage *p, + const char *z, + sqlite3_value *pVal, + int iVal +){ + sqlite3_stmt *pReplace = 0; + int rc = fts5StorageGetStmt(p, FTS5_STMT_REPLACE_CONFIG, &pReplace, 0); + if( rc==SQLITE_OK ){ + sqlite3_bind_text(pReplace, 1, z, -1, SQLITE_STATIC); + if( pVal ){ + sqlite3_bind_value(pReplace, 2, pVal); + }else{ + sqlite3_bind_int(pReplace, 2, iVal); + } + sqlite3_step(pReplace); + rc = sqlite3_reset(pReplace); + } + if( rc==SQLITE_OK && pVal ){ + int iNew = p->pConfig->iCookie + 1; + rc = sqlite3Fts5IndexSetCookie(p->pIndex, iNew); + if( rc==SQLITE_OK ){ + p->pConfig->iCookie = iNew; + } + } + return rc; +} + + + +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +*/ + + + +/************************************************************************** +** Start of ascii tokenizer implementation. +*/ + +/* +** For tokenizers with no "unicode" modifier, the set of token characters +** is the same as the set of ASCII range alphanumeric characters. +*/ +static unsigned char aAsciiTokenChar[128] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00..0x0F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10..0x1F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20..0x2F */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 0x30..0x3F */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x40..0x4F */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 0x50..0x5F */ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x60..0x6F */ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 0x70..0x7F */ +}; + +typedef struct AsciiTokenizer AsciiTokenizer; +struct AsciiTokenizer { + unsigned char aTokenChar[128]; +}; + +static void fts5AsciiAddExceptions( + AsciiTokenizer *p, + const char *zArg, + int bTokenChars +){ + int i; + for(i=0; zArg[i]; i++){ + if( (zArg[i] & 0x80)==0 ){ + p->aTokenChar[(int)zArg[i]] = (unsigned char)bTokenChars; + } + } +} + +/* +** Delete a "ascii" tokenizer. +*/ +static void fts5AsciiDelete(Fts5Tokenizer *p){ + sqlite3_free(p); +} + +/* +** Create an "ascii" tokenizer. +*/ +static int fts5AsciiCreate( + void *pCtx, + const char **azArg, int nArg, + Fts5Tokenizer **ppOut +){ + int rc = SQLITE_OK; + AsciiTokenizer *p = 0; + if( nArg%2 ){ + rc = SQLITE_ERROR; + }else{ + p = sqlite3_malloc(sizeof(AsciiTokenizer)); + if( p==0 ){ + rc = SQLITE_NOMEM; + }else{ + int i; + memset(p, 0, sizeof(AsciiTokenizer)); + memcpy(p->aTokenChar, aAsciiTokenChar, sizeof(aAsciiTokenChar)); + for(i=0; rc==SQLITE_OK && i='A' && c<='Z' ) c += 32; + aOut[i] = c; + } +} + +/* +** Tokenize some text using the ascii tokenizer. +*/ +static int fts5AsciiTokenize( + Fts5Tokenizer *pTokenizer, + void *pCtx, + int flags, + const char *pText, int nText, + int (*xToken)(void*, int, const char*, int nToken, int iStart, int iEnd) +){ + AsciiTokenizer *p = (AsciiTokenizer*)pTokenizer; + int rc = SQLITE_OK; + int ie; + int is = 0; + + char aFold[64]; + int nFold = sizeof(aFold); + char *pFold = aFold; + unsigned char *a = p->aTokenChar; + + while( isnFold ){ + if( pFold!=aFold ) sqlite3_free(pFold); + pFold = sqlite3_malloc(nByte*2); + if( pFold==0 ){ + rc = SQLITE_NOMEM; + break; + } + nFold = nByte*2; + } + asciiFold(pFold, &pText[is], nByte); + + /* Invoke the token callback */ + rc = xToken(pCtx, 0, pFold, nByte, is, ie); + is = ie+1; + } + + if( pFold!=aFold ) sqlite3_free(pFold); + if( rc==SQLITE_DONE ) rc = SQLITE_OK; + return rc; +} + +/************************************************************************** +** Start of unicode61 tokenizer implementation. +*/ + + +/* +** The following two macros - READ_UTF8 and WRITE_UTF8 - have been copied +** from the sqlite3 source file utf.c. If this file is compiled as part +** of the amalgamation, they are not required. +*/ +#ifndef SQLITE_AMALGAMATION + +static const unsigned char sqlite3Utf8Trans1[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x00, 0x01, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, +}; + +#define READ_UTF8(zIn, zTerm, c) \ + c = *(zIn++); \ + if( c>=0xc0 ){ \ + c = sqlite3Utf8Trans1[c-0xc0]; \ + while( zIn!=zTerm && (*zIn & 0xc0)==0x80 ){ \ + c = (c<<6) + (0x3f & *(zIn++)); \ + } \ + if( c<0x80 \ + || (c&0xFFFFF800)==0xD800 \ + || (c&0xFFFFFFFE)==0xFFFE ){ c = 0xFFFD; } \ + } + + +#define WRITE_UTF8(zOut, c) { \ + if( c<0x00080 ){ \ + *zOut++ = (unsigned char)(c&0xFF); \ + } \ + else if( c<0x00800 ){ \ + *zOut++ = 0xC0 + (unsigned char)((c>>6)&0x1F); \ + *zOut++ = 0x80 + (unsigned char)(c & 0x3F); \ + } \ + else if( c<0x10000 ){ \ + *zOut++ = 0xE0 + (unsigned char)((c>>12)&0x0F); \ + *zOut++ = 0x80 + (unsigned char)((c>>6) & 0x3F); \ + *zOut++ = 0x80 + (unsigned char)(c & 0x3F); \ + }else{ \ + *zOut++ = 0xF0 + (unsigned char)((c>>18) & 0x07); \ + *zOut++ = 0x80 + (unsigned char)((c>>12) & 0x3F); \ + *zOut++ = 0x80 + (unsigned char)((c>>6) & 0x3F); \ + *zOut++ = 0x80 + (unsigned char)(c & 0x3F); \ + } \ +} + +#endif /* ifndef SQLITE_AMALGAMATION */ + +typedef struct Unicode61Tokenizer Unicode61Tokenizer; +struct Unicode61Tokenizer { + unsigned char aTokenChar[128]; /* ASCII range token characters */ + char *aFold; /* Buffer to fold text into */ + int nFold; /* Size of aFold[] in bytes */ + int bRemoveDiacritic; /* True if remove_diacritics=1 is set */ + int nException; + int *aiException; +}; + +static int fts5UnicodeAddExceptions( + Unicode61Tokenizer *p, /* Tokenizer object */ + const char *z, /* Characters to treat as exceptions */ + int bTokenChars /* 1 for 'tokenchars', 0 for 'separators' */ +){ + int rc = SQLITE_OK; + int n = strlen(z); + int *aNew; + + if( n>0 ){ + aNew = (int*)sqlite3_realloc(p->aiException, (n+p->nException)*sizeof(int)); + if( aNew ){ + int nNew = p->nException; + const unsigned char *zCsr = (const unsigned char*)z; + const unsigned char *zTerm = (const unsigned char*)&z[n]; + while( zCsraTokenChar[iCode] = bTokenChars; + }else{ + bToken = sqlite3Fts5UnicodeIsalnum(iCode); + assert( (bToken==0 || bToken==1) ); + assert( (bTokenChars==0 || bTokenChars==1) ); + if( bToken!=bTokenChars && sqlite3Fts5UnicodeIsdiacritic(iCode)==0 ){ + int i; + for(i=0; iiCode ) break; + } + memmove(&aNew[i+1], &aNew[i], (nNew-i)*sizeof(int)); + aNew[i] = iCode; + nNew++; + } + } + } + p->aiException = aNew; + p->nException = nNew; + }else{ + rc = SQLITE_NOMEM; + } + } + + return rc; +} + +/* +** Return true if the p->aiException[] array contains the value iCode. +*/ +static int fts5UnicodeIsException(Unicode61Tokenizer *p, int iCode){ + if( p->nException>0 ){ + int *a = p->aiException; + int iLo = 0; + int iHi = p->nException-1; + + while( iHi>=iLo ){ + int iTest = (iHi + iLo) / 2; + if( iCode==a[iTest] ){ + return 1; + }else if( iCode>a[iTest] ){ + iLo = iTest+1; + }else{ + iHi = iTest-1; + } + } + } + + return 0; +} + +/* +** Delete a "unicode61" tokenizer. +*/ +static void fts5UnicodeDelete(Fts5Tokenizer *pTok){ + if( pTok ){ + Unicode61Tokenizer *p = (Unicode61Tokenizer*)pTok; + sqlite3_free(p->aiException); + sqlite3_free(p->aFold); + sqlite3_free(p); + } + return; +} + +/* +** Create a "unicode61" tokenizer. +*/ +static int fts5UnicodeCreate( + void *pCtx, + const char **azArg, int nArg, + Fts5Tokenizer **ppOut +){ + int rc = SQLITE_OK; /* Return code */ + Unicode61Tokenizer *p = 0; /* New tokenizer object */ + + if( nArg%2 ){ + rc = SQLITE_ERROR; + }else{ + p = (Unicode61Tokenizer*)sqlite3_malloc(sizeof(Unicode61Tokenizer)); + if( p ){ + int i; + memset(p, 0, sizeof(Unicode61Tokenizer)); + memcpy(p->aTokenChar, aAsciiTokenChar, sizeof(aAsciiTokenChar)); + p->bRemoveDiacritic = 1; + p->nFold = 64; + p->aFold = sqlite3_malloc(p->nFold * sizeof(char)); + if( p->aFold==0 ){ + rc = SQLITE_NOMEM; + } + for(i=0; rc==SQLITE_OK && ibRemoveDiacritic = (zArg[0]=='1'); + }else + if( 0==sqlite3_stricmp(azArg[i], "tokenchars") ){ + rc = fts5UnicodeAddExceptions(p, zArg, 1); + }else + if( 0==sqlite3_stricmp(azArg[i], "separators") ){ + rc = fts5UnicodeAddExceptions(p, zArg, 0); + }else{ + rc = SQLITE_ERROR; + } + } + }else{ + rc = SQLITE_NOMEM; + } + if( rc!=SQLITE_OK ){ + fts5UnicodeDelete((Fts5Tokenizer*)p); + p = 0; + } + *ppOut = (Fts5Tokenizer*)p; + } + return rc; +} + +/* +** Return true if, for the purposes of tokenizing with the tokenizer +** passed as the first argument, codepoint iCode is considered a token +** character (not a separator). +*/ +static int fts5UnicodeIsAlnum(Unicode61Tokenizer *p, int iCode){ + assert( (sqlite3Fts5UnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 ); + return sqlite3Fts5UnicodeIsalnum(iCode) ^ fts5UnicodeIsException(p, iCode); +} + +static int fts5UnicodeTokenize( + Fts5Tokenizer *pTokenizer, + void *pCtx, + int flags, + const char *pText, int nText, + int (*xToken)(void*, int, const char*, int nToken, int iStart, int iEnd) +){ + Unicode61Tokenizer *p = (Unicode61Tokenizer*)pTokenizer; + int rc = SQLITE_OK; + unsigned char *a = p->aTokenChar; + + unsigned char *zTerm = (unsigned char*)&pText[nText]; + unsigned char *zCsr = (unsigned char *)pText; + + /* Output buffer */ + char *aFold = p->aFold; + int nFold = p->nFold; + const char *pEnd = &aFold[nFold-6]; + + /* Each iteration of this loop gobbles up a contiguous run of separators, + ** then the next token. */ + while( rc==SQLITE_OK ){ + int iCode; /* non-ASCII codepoint read from input */ + char *zOut = aFold; + int is; + int ie; + + /* Skip any separator characters. */ + while( 1 ){ + if( zCsr>=zTerm ) goto tokenize_done; + if( *zCsr & 0x80 ) { + /* A character outside of the ascii range. Skip past it if it is + ** a separator character. Or break out of the loop if it is not. */ + is = zCsr - (unsigned char*)pText; + READ_UTF8(zCsr, zTerm, iCode); + if( fts5UnicodeIsAlnum(p, iCode) ){ + goto non_ascii_tokenchar; + } + }else{ + if( a[*zCsr] ){ + is = zCsr - (unsigned char*)pText; + goto ascii_tokenchar; + } + zCsr++; + } + } + + /* Run through the tokenchars. Fold them into the output buffer along + ** the way. */ + while( zCsrpEnd ){ + aFold = sqlite3_malloc(nFold*2); + if( aFold==0 ){ + rc = SQLITE_NOMEM; + goto tokenize_done; + } + zOut = &aFold[zOut - p->aFold]; + memcpy(aFold, p->aFold, nFold); + sqlite3_free(p->aFold); + p->aFold = aFold; + p->nFold = nFold = nFold*2; + pEnd = &aFold[nFold-6]; + } + + if( *zCsr & 0x80 ){ + /* An non-ascii-range character. Fold it into the output buffer if + ** it is a token character, or break out of the loop if it is not. */ + READ_UTF8(zCsr, zTerm, iCode); + if( fts5UnicodeIsAlnum(p,iCode)||sqlite3Fts5UnicodeIsdiacritic(iCode) ){ + non_ascii_tokenchar: + iCode = sqlite3Fts5UnicodeFold(iCode, p->bRemoveDiacritic); + if( iCode ) WRITE_UTF8(zOut, iCode); + }else{ + break; + } + }else if( a[*zCsr]==0 ){ + /* An ascii-range separator character. End of token. */ + break; + }else{ + ascii_tokenchar: + if( *zCsr>='A' && *zCsr<='Z' ){ + *zOut++ = *zCsr + 32; + }else{ + *zOut++ = *zCsr; + } + zCsr++; + } + ie = zCsr - (unsigned char*)pText; + } + + /* Invoke the token callback */ + rc = xToken(pCtx, 0, aFold, zOut-aFold, is, ie); + } + + tokenize_done: + if( rc==SQLITE_DONE ) rc = SQLITE_OK; + return rc; +} + +/************************************************************************** +** Start of porter stemmer implementation. +*/ + +/* Any tokens larger than this (in bytes) are passed through without +** stemming. */ +#define FTS5_PORTER_MAX_TOKEN 64 + +typedef struct PorterTokenizer PorterTokenizer; +struct PorterTokenizer { + fts5_tokenizer tokenizer; /* Parent tokenizer module */ + Fts5Tokenizer *pTokenizer; /* Parent tokenizer instance */ + char aBuf[FTS5_PORTER_MAX_TOKEN + 64]; +}; + +/* +** Delete a "porter" tokenizer. +*/ +static void fts5PorterDelete(Fts5Tokenizer *pTok){ + if( pTok ){ + PorterTokenizer *p = (PorterTokenizer*)pTok; + if( p->pTokenizer ){ + p->tokenizer.xDelete(p->pTokenizer); + } + sqlite3_free(p); + } +} + +/* +** Create a "porter" tokenizer. +*/ +static int fts5PorterCreate( + void *pCtx, + const char **azArg, int nArg, + Fts5Tokenizer **ppOut +){ + fts5_api *pApi = (fts5_api*)pCtx; + int rc = SQLITE_OK; + PorterTokenizer *pRet; + void *pUserdata = 0; + const char *zBase = "unicode61"; + + if( nArg>0 ){ + zBase = azArg[0]; + } + + pRet = (PorterTokenizer*)sqlite3_malloc(sizeof(PorterTokenizer)); + if( pRet ){ + memset(pRet, 0, sizeof(PorterTokenizer)); + rc = pApi->xFindTokenizer(pApi, zBase, &pUserdata, &pRet->tokenizer); + }else{ + rc = SQLITE_NOMEM; + } + if( rc==SQLITE_OK ){ + int nArg2 = (nArg>0 ? nArg-1 : 0); + const char **azArg2 = (nArg2 ? &azArg[1] : 0); + rc = pRet->tokenizer.xCreate(pUserdata, azArg2, nArg2, &pRet->pTokenizer); + } + + if( rc!=SQLITE_OK ){ + fts5PorterDelete((Fts5Tokenizer*)pRet); + pRet = 0; + } + *ppOut = (Fts5Tokenizer*)pRet; + return rc; +} + +typedef struct PorterContext PorterContext; +struct PorterContext { + void *pCtx; + int (*xToken)(void*, int, const char*, int, int, int); + char *aBuf; +}; + +typedef struct PorterRule PorterRule; +struct PorterRule { + const char *zSuffix; + int nSuffix; + int (*xCond)(char *zStem, int nStem); + const char *zOutput; + int nOutput; +}; + +#if 0 +static int fts5PorterApply(char *aBuf, int *pnBuf, PorterRule *aRule){ + int ret = -1; + int nBuf = *pnBuf; + PorterRule *p; + + for(p=aRule; p->zSuffix; p++){ + assert( strlen(p->zSuffix)==p->nSuffix ); + assert( strlen(p->zOutput)==p->nOutput ); + if( nBufnSuffix ) continue; + if( 0==memcmp(&aBuf[nBuf - p->nSuffix], p->zSuffix, p->nSuffix) ) break; + } + + if( p->zSuffix ){ + int nStem = nBuf - p->nSuffix; + if( p->xCond==0 || p->xCond(aBuf, nStem) ){ + memcpy(&aBuf[nStem], p->zOutput, p->nOutput); + *pnBuf = nStem + p->nOutput; + ret = p - aRule; + } + } + + return ret; +} +#endif + +static int fts5PorterIsVowel(char c, int bYIsVowel){ + return ( + c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || (bYIsVowel && c=='y') + ); +} + +static int fts5PorterGobbleVC(char *zStem, int nStem, int bPrevCons){ + int i; + int bCons = bPrevCons; + + /* Scan for a vowel */ + for(i=0; i 0) */ +static int fts5Porter_MGt0(char *zStem, int nStem){ + return !!fts5PorterGobbleVC(zStem, nStem, 0); +} + +/* porter rule condition: (m > 1) */ +static int fts5Porter_MGt1(char *zStem, int nStem){ + int n; + n = fts5PorterGobbleVC(zStem, nStem, 0); + if( n && fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){ + return 1; + } + return 0; +} + +/* porter rule condition: (m = 1) */ +static int fts5Porter_MEq1(char *zStem, int nStem){ + int n; + n = fts5PorterGobbleVC(zStem, nStem, 0); + if( n && 0==fts5PorterGobbleVC(&zStem[n], nStem-n, 1) ){ + return 1; + } + return 0; +} + +/* porter rule condition: (*o) */ +static int fts5Porter_Ostar(char *zStem, int nStem){ + if( zStem[nStem-1]=='w' || zStem[nStem-1]=='x' || zStem[nStem-1]=='y' ){ + return 0; + }else{ + int i; + int mask = 0; + int bCons = 0; + for(i=0; i 1 and (*S or *T)) */ +static int fts5Porter_MGt1_and_S_or_T(char *zStem, int nStem){ + assert( nStem>0 ); + return (zStem[nStem-1]=='s' || zStem[nStem-1]=='t') + && fts5Porter_MGt1(zStem, nStem); +} + +/* porter rule condition: (*v*) */ +static int fts5Porter_Vowel(char *zStem, int nStem){ + int i; + for(i=0; i0) ){ + return 1; + } + } + return 0; +} + + +/************************************************************************** +*************************************************************************** +** GENERATED CODE STARTS HERE (mkportersteps.tcl) +*/ + +static int fts5PorterStep4(char *aBuf, int *pnBuf){ + int ret = 0; + int nBuf = *pnBuf; + switch( aBuf[nBuf-2] ){ + + case 'a': + if( nBuf>2 && 0==memcmp("al", &aBuf[nBuf-2], 2) ){ + if( fts5Porter_MGt1(aBuf, nBuf-2) ){ + *pnBuf = nBuf - 2; + } + } + break; + + case 'c': + if( nBuf>4 && 0==memcmp("ance", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt1(aBuf, nBuf-4) ){ + *pnBuf = nBuf - 4; + } + }else if( nBuf>4 && 0==memcmp("ence", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt1(aBuf, nBuf-4) ){ + *pnBuf = nBuf - 4; + } + } + break; + + case 'e': + if( nBuf>2 && 0==memcmp("er", &aBuf[nBuf-2], 2) ){ + if( fts5Porter_MGt1(aBuf, nBuf-2) ){ + *pnBuf = nBuf - 2; + } + } + break; + + case 'i': + if( nBuf>2 && 0==memcmp("ic", &aBuf[nBuf-2], 2) ){ + if( fts5Porter_MGt1(aBuf, nBuf-2) ){ + *pnBuf = nBuf - 2; + } + } + break; + + case 'l': + if( nBuf>4 && 0==memcmp("able", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt1(aBuf, nBuf-4) ){ + *pnBuf = nBuf - 4; + } + }else if( nBuf>4 && 0==memcmp("ible", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt1(aBuf, nBuf-4) ){ + *pnBuf = nBuf - 4; + } + } + break; + + case 'n': + if( nBuf>3 && 0==memcmp("ant", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + }else if( nBuf>5 && 0==memcmp("ement", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt1(aBuf, nBuf-5) ){ + *pnBuf = nBuf - 5; + } + }else if( nBuf>4 && 0==memcmp("ment", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt1(aBuf, nBuf-4) ){ + *pnBuf = nBuf - 4; + } + }else if( nBuf>3 && 0==memcmp("ent", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + case 'o': + if( nBuf>3 && 0==memcmp("ion", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1_and_S_or_T(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + }else if( nBuf>2 && 0==memcmp("ou", &aBuf[nBuf-2], 2) ){ + if( fts5Porter_MGt1(aBuf, nBuf-2) ){ + *pnBuf = nBuf - 2; + } + } + break; + + case 's': + if( nBuf>3 && 0==memcmp("ism", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + case 't': + if( nBuf>3 && 0==memcmp("ate", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + }else if( nBuf>3 && 0==memcmp("iti", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + case 'u': + if( nBuf>3 && 0==memcmp("ous", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + case 'v': + if( nBuf>3 && 0==memcmp("ive", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + case 'z': + if( nBuf>3 && 0==memcmp("ize", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt1(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + } + return ret; +} + + +static int fts5PorterStep1B2(char *aBuf, int *pnBuf){ + int ret = 0; + int nBuf = *pnBuf; + switch( aBuf[nBuf-2] ){ + + case 'a': + if( nBuf>2 && 0==memcmp("at", &aBuf[nBuf-2], 2) ){ + memcpy(&aBuf[nBuf-2], "ate", 3); + *pnBuf = nBuf - 2 + 3; + ret = 1; + } + break; + + case 'b': + if( nBuf>2 && 0==memcmp("bl", &aBuf[nBuf-2], 2) ){ + memcpy(&aBuf[nBuf-2], "ble", 3); + *pnBuf = nBuf - 2 + 3; + ret = 1; + } + break; + + case 'i': + if( nBuf>2 && 0==memcmp("iz", &aBuf[nBuf-2], 2) ){ + memcpy(&aBuf[nBuf-2], "ize", 3); + *pnBuf = nBuf - 2 + 3; + ret = 1; + } + break; + + } + return ret; +} + + +static int fts5PorterStep2(char *aBuf, int *pnBuf){ + int ret = 0; + int nBuf = *pnBuf; + switch( aBuf[nBuf-2] ){ + + case 'a': + if( nBuf>7 && 0==memcmp("ational", &aBuf[nBuf-7], 7) ){ + if( fts5Porter_MGt0(aBuf, nBuf-7) ){ + memcpy(&aBuf[nBuf-7], "ate", 3); + *pnBuf = nBuf - 7 + 3; + } + }else if( nBuf>6 && 0==memcmp("tional", &aBuf[nBuf-6], 6) ){ + if( fts5Porter_MGt0(aBuf, nBuf-6) ){ + memcpy(&aBuf[nBuf-6], "tion", 4); + *pnBuf = nBuf - 6 + 4; + } + } + break; + + case 'c': + if( nBuf>4 && 0==memcmp("enci", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "ence", 4); + *pnBuf = nBuf - 4 + 4; + } + }else if( nBuf>4 && 0==memcmp("anci", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "ance", 4); + *pnBuf = nBuf - 4 + 4; + } + } + break; + + case 'e': + if( nBuf>4 && 0==memcmp("izer", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "ize", 3); + *pnBuf = nBuf - 4 + 3; + } + } + break; + + case 'g': + if( nBuf>4 && 0==memcmp("logi", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "log", 3); + *pnBuf = nBuf - 4 + 3; + } + } + break; + + case 'l': + if( nBuf>3 && 0==memcmp("bli", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt0(aBuf, nBuf-3) ){ + memcpy(&aBuf[nBuf-3], "ble", 3); + *pnBuf = nBuf - 3 + 3; + } + }else if( nBuf>4 && 0==memcmp("alli", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "al", 2); + *pnBuf = nBuf - 4 + 2; + } + }else if( nBuf>5 && 0==memcmp("entli", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "ent", 3); + *pnBuf = nBuf - 5 + 3; + } + }else if( nBuf>3 && 0==memcmp("eli", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt0(aBuf, nBuf-3) ){ + memcpy(&aBuf[nBuf-3], "e", 1); + *pnBuf = nBuf - 3 + 1; + } + }else if( nBuf>5 && 0==memcmp("ousli", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "ous", 3); + *pnBuf = nBuf - 5 + 3; + } + } + break; + + case 'o': + if( nBuf>7 && 0==memcmp("ization", &aBuf[nBuf-7], 7) ){ + if( fts5Porter_MGt0(aBuf, nBuf-7) ){ + memcpy(&aBuf[nBuf-7], "ize", 3); + *pnBuf = nBuf - 7 + 3; + } + }else if( nBuf>5 && 0==memcmp("ation", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "ate", 3); + *pnBuf = nBuf - 5 + 3; + } + }else if( nBuf>4 && 0==memcmp("ator", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "ate", 3); + *pnBuf = nBuf - 4 + 3; + } + } + break; + + case 's': + if( nBuf>5 && 0==memcmp("alism", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "al", 2); + *pnBuf = nBuf - 5 + 2; + } + }else if( nBuf>7 && 0==memcmp("iveness", &aBuf[nBuf-7], 7) ){ + if( fts5Porter_MGt0(aBuf, nBuf-7) ){ + memcpy(&aBuf[nBuf-7], "ive", 3); + *pnBuf = nBuf - 7 + 3; + } + }else if( nBuf>7 && 0==memcmp("fulness", &aBuf[nBuf-7], 7) ){ + if( fts5Porter_MGt0(aBuf, nBuf-7) ){ + memcpy(&aBuf[nBuf-7], "ful", 3); + *pnBuf = nBuf - 7 + 3; + } + }else if( nBuf>7 && 0==memcmp("ousness", &aBuf[nBuf-7], 7) ){ + if( fts5Porter_MGt0(aBuf, nBuf-7) ){ + memcpy(&aBuf[nBuf-7], "ous", 3); + *pnBuf = nBuf - 7 + 3; + } + } + break; + + case 't': + if( nBuf>5 && 0==memcmp("aliti", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "al", 2); + *pnBuf = nBuf - 5 + 2; + } + }else if( nBuf>5 && 0==memcmp("iviti", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "ive", 3); + *pnBuf = nBuf - 5 + 3; + } + }else if( nBuf>6 && 0==memcmp("biliti", &aBuf[nBuf-6], 6) ){ + if( fts5Porter_MGt0(aBuf, nBuf-6) ){ + memcpy(&aBuf[nBuf-6], "ble", 3); + *pnBuf = nBuf - 6 + 3; + } + } + break; + + } + return ret; +} + + +static int fts5PorterStep3(char *aBuf, int *pnBuf){ + int ret = 0; + int nBuf = *pnBuf; + switch( aBuf[nBuf-2] ){ + + case 'a': + if( nBuf>4 && 0==memcmp("ical", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + memcpy(&aBuf[nBuf-4], "ic", 2); + *pnBuf = nBuf - 4 + 2; + } + } + break; + + case 's': + if( nBuf>4 && 0==memcmp("ness", &aBuf[nBuf-4], 4) ){ + if( fts5Porter_MGt0(aBuf, nBuf-4) ){ + *pnBuf = nBuf - 4; + } + } + break; + + case 't': + if( nBuf>5 && 0==memcmp("icate", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "ic", 2); + *pnBuf = nBuf - 5 + 2; + } + }else if( nBuf>5 && 0==memcmp("iciti", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "ic", 2); + *pnBuf = nBuf - 5 + 2; + } + } + break; + + case 'u': + if( nBuf>3 && 0==memcmp("ful", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt0(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + } + } + break; + + case 'v': + if( nBuf>5 && 0==memcmp("ative", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + *pnBuf = nBuf - 5; + } + } + break; + + case 'z': + if( nBuf>5 && 0==memcmp("alize", &aBuf[nBuf-5], 5) ){ + if( fts5Porter_MGt0(aBuf, nBuf-5) ){ + memcpy(&aBuf[nBuf-5], "al", 2); + *pnBuf = nBuf - 5 + 2; + } + } + break; + + } + return ret; +} + + +static int fts5PorterStep1B(char *aBuf, int *pnBuf){ + int ret = 0; + int nBuf = *pnBuf; + switch( aBuf[nBuf-2] ){ + + case 'e': + if( nBuf>3 && 0==memcmp("eed", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_MGt0(aBuf, nBuf-3) ){ + memcpy(&aBuf[nBuf-3], "ee", 2); + *pnBuf = nBuf - 3 + 2; + } + }else if( nBuf>2 && 0==memcmp("ed", &aBuf[nBuf-2], 2) ){ + if( fts5Porter_Vowel(aBuf, nBuf-2) ){ + *pnBuf = nBuf - 2; + ret = 1; + } + } + break; + + case 'n': + if( nBuf>3 && 0==memcmp("ing", &aBuf[nBuf-3], 3) ){ + if( fts5Porter_Vowel(aBuf, nBuf-3) ){ + *pnBuf = nBuf - 3; + ret = 1; + } + } + break; + + } + return ret; +} + +/* +** GENERATED CODE ENDS HERE (mkportersteps.tcl) +*************************************************************************** +**************************************************************************/ + +static void fts5PorterStep1A(char *aBuf, int *pnBuf){ + int nBuf = *pnBuf; + if( aBuf[nBuf-1]=='s' ){ + if( aBuf[nBuf-2]=='e' ){ + if( (nBuf>4 && aBuf[nBuf-4]=='s' && aBuf[nBuf-3]=='s') + || (nBuf>3 && aBuf[nBuf-3]=='i' ) + ){ + *pnBuf = nBuf-2; + }else{ + *pnBuf = nBuf-1; + } + } + else if( aBuf[nBuf-2]!='s' ){ + *pnBuf = nBuf-1; + } + } +} + +static int fts5PorterCb( + void *pCtx, + int tflags, + const char *pToken, + int nToken, + int iStart, + int iEnd +){ + PorterContext *p = (PorterContext*)pCtx; + + char *aBuf; + int nBuf; + + if( nToken>FTS5_PORTER_MAX_TOKEN || nToken<3 ) goto pass_through; + aBuf = p->aBuf; + nBuf = nToken; + memcpy(aBuf, pToken, nBuf); + + /* Step 1. */ + fts5PorterStep1A(aBuf, &nBuf); + if( fts5PorterStep1B(aBuf, &nBuf) ){ + if( fts5PorterStep1B2(aBuf, &nBuf)==0 ){ + char c = aBuf[nBuf-1]; + if( fts5PorterIsVowel(c, 0)==0 + && c!='l' && c!='s' && c!='z' && c==aBuf[nBuf-2] + ){ + nBuf--; + }else if( fts5Porter_MEq1(aBuf, nBuf) && fts5Porter_Ostar(aBuf, nBuf) ){ + aBuf[nBuf++] = 'e'; + } + } + } + + /* Step 1C. */ + if( aBuf[nBuf-1]=='y' && fts5Porter_Vowel(aBuf, nBuf-1) ){ + aBuf[nBuf-1] = 'i'; + } + + /* Steps 2 through 4. */ + fts5PorterStep2(aBuf, &nBuf); + fts5PorterStep3(aBuf, &nBuf); + fts5PorterStep4(aBuf, &nBuf); + + /* Step 5a. */ + assert( nBuf>0 ); + if( aBuf[nBuf-1]=='e' ){ + if( fts5Porter_MGt1(aBuf, nBuf-1) + || (fts5Porter_MEq1(aBuf, nBuf-1) && !fts5Porter_Ostar(aBuf, nBuf-1)) + ){ + nBuf--; + } + } + + /* Step 5b. */ + if( nBuf>1 && aBuf[nBuf-1]=='l' + && aBuf[nBuf-2]=='l' && fts5Porter_MGt1(aBuf, nBuf-1) + ){ + nBuf--; + } + + return p->xToken(p->pCtx, tflags, aBuf, nBuf, iStart, iEnd); + + pass_through: + return p->xToken(p->pCtx, tflags, pToken, nToken, iStart, iEnd); +} + +/* +** Tokenize using the porter tokenizer. +*/ +static int fts5PorterTokenize( + Fts5Tokenizer *pTokenizer, + void *pCtx, + int flags, + const char *pText, int nText, + int (*xToken)(void*, int, const char*, int nToken, int iStart, int iEnd) +){ + PorterTokenizer *p = (PorterTokenizer*)pTokenizer; + PorterContext sCtx; + sCtx.xToken = xToken; + sCtx.pCtx = pCtx; + sCtx.aBuf = p->aBuf; + return p->tokenizer.xTokenize( + p->pTokenizer, (void*)&sCtx, flags, pText, nText, fts5PorterCb + ); +} + +/* +** Register all built-in tokenizers with FTS5. +*/ +static int sqlite3Fts5TokenizerInit(fts5_api *pApi){ + struct BuiltinTokenizer { + const char *zName; + fts5_tokenizer x; + } aBuiltin[] = { + { "unicode61", {fts5UnicodeCreate, fts5UnicodeDelete, fts5UnicodeTokenize}}, + { "ascii", {fts5AsciiCreate, fts5AsciiDelete, fts5AsciiTokenize }}, + { "porter", {fts5PorterCreate, fts5PorterDelete, fts5PorterTokenize }}, + }; + + int rc = SQLITE_OK; /* Return code */ + int i; /* To iterate through builtin functions */ + + for(i=0; rc==SQLITE_OK && ixCreateTokenizer(pApi, + aBuiltin[i].zName, + (void*)pApi, + &aBuiltin[i].x, + 0 + ); + } + + return rc; +} + + + +/* +** 2012 May 25 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +*/ + +/* +** DO NOT EDIT THIS MACHINE GENERATED FILE. +*/ + + +/* #include */ + +/* +** Return true if the argument corresponds to a unicode codepoint +** classified as either a letter or a number. Otherwise false. +** +** The results are undefined if the value passed to this function +** is less than zero. +*/ +static int sqlite3Fts5UnicodeIsalnum(int c){ + /* Each unsigned integer in the following array corresponds to a contiguous + ** range of unicode codepoints that are not either letters or numbers (i.e. + ** codepoints for which this function should return 0). + ** + ** The most significant 22 bits in each 32-bit value contain the first + ** codepoint in the range. The least significant 10 bits are used to store + ** the size of the range (always at least 1). In other words, the value + ** ((C<<22) + N) represents a range of N codepoints starting with codepoint + ** C. It is not possible to represent a range larger than 1023 codepoints + ** using this format. + */ + static const unsigned int aEntry[] = { + 0x00000030, 0x0000E807, 0x00016C06, 0x0001EC2F, 0x0002AC07, + 0x0002D001, 0x0002D803, 0x0002EC01, 0x0002FC01, 0x00035C01, + 0x0003DC01, 0x000B0804, 0x000B480E, 0x000B9407, 0x000BB401, + 0x000BBC81, 0x000DD401, 0x000DF801, 0x000E1002, 0x000E1C01, + 0x000FD801, 0x00120808, 0x00156806, 0x00162402, 0x00163C01, + 0x00164437, 0x0017CC02, 0x00180005, 0x00181816, 0x00187802, + 0x00192C15, 0x0019A804, 0x0019C001, 0x001B5001, 0x001B580F, + 0x001B9C07, 0x001BF402, 0x001C000E, 0x001C3C01, 0x001C4401, + 0x001CC01B, 0x001E980B, 0x001FAC09, 0x001FD804, 0x00205804, + 0x00206C09, 0x00209403, 0x0020A405, 0x0020C00F, 0x00216403, + 0x00217801, 0x0023901B, 0x00240004, 0x0024E803, 0x0024F812, + 0x00254407, 0x00258804, 0x0025C001, 0x00260403, 0x0026F001, + 0x0026F807, 0x00271C02, 0x00272C03, 0x00275C01, 0x00278802, + 0x0027C802, 0x0027E802, 0x00280403, 0x0028F001, 0x0028F805, + 0x00291C02, 0x00292C03, 0x00294401, 0x0029C002, 0x0029D401, + 0x002A0403, 0x002AF001, 0x002AF808, 0x002B1C03, 0x002B2C03, + 0x002B8802, 0x002BC002, 0x002C0403, 0x002CF001, 0x002CF807, + 0x002D1C02, 0x002D2C03, 0x002D5802, 0x002D8802, 0x002DC001, + 0x002E0801, 0x002EF805, 0x002F1803, 0x002F2804, 0x002F5C01, + 0x002FCC08, 0x00300403, 0x0030F807, 0x00311803, 0x00312804, + 0x00315402, 0x00318802, 0x0031FC01, 0x00320802, 0x0032F001, + 0x0032F807, 0x00331803, 0x00332804, 0x00335402, 0x00338802, + 0x00340802, 0x0034F807, 0x00351803, 0x00352804, 0x00355C01, + 0x00358802, 0x0035E401, 0x00360802, 0x00372801, 0x00373C06, + 0x00375801, 0x00376008, 0x0037C803, 0x0038C401, 0x0038D007, + 0x0038FC01, 0x00391C09, 0x00396802, 0x003AC401, 0x003AD006, + 0x003AEC02, 0x003B2006, 0x003C041F, 0x003CD00C, 0x003DC417, + 0x003E340B, 0x003E6424, 0x003EF80F, 0x003F380D, 0x0040AC14, + 0x00412806, 0x00415804, 0x00417803, 0x00418803, 0x00419C07, + 0x0041C404, 0x0042080C, 0x00423C01, 0x00426806, 0x0043EC01, + 0x004D740C, 0x004E400A, 0x00500001, 0x0059B402, 0x005A0001, + 0x005A6C02, 0x005BAC03, 0x005C4803, 0x005CC805, 0x005D4802, + 0x005DC802, 0x005ED023, 0x005F6004, 0x005F7401, 0x0060000F, + 0x0062A401, 0x0064800C, 0x0064C00C, 0x00650001, 0x00651002, + 0x0066C011, 0x00672002, 0x00677822, 0x00685C05, 0x00687802, + 0x0069540A, 0x0069801D, 0x0069FC01, 0x006A8007, 0x006AA006, + 0x006C0005, 0x006CD011, 0x006D6823, 0x006E0003, 0x006E840D, + 0x006F980E, 0x006FF004, 0x00709014, 0x0070EC05, 0x0071F802, + 0x00730008, 0x00734019, 0x0073B401, 0x0073C803, 0x00770027, + 0x0077F004, 0x007EF401, 0x007EFC03, 0x007F3403, 0x007F7403, + 0x007FB403, 0x007FF402, 0x00800065, 0x0081A806, 0x0081E805, + 0x00822805, 0x0082801A, 0x00834021, 0x00840002, 0x00840C04, + 0x00842002, 0x00845001, 0x00845803, 0x00847806, 0x00849401, + 0x00849C01, 0x0084A401, 0x0084B801, 0x0084E802, 0x00850005, + 0x00852804, 0x00853C01, 0x00864264, 0x00900027, 0x0091000B, + 0x0092704E, 0x00940200, 0x009C0475, 0x009E53B9, 0x00AD400A, + 0x00B39406, 0x00B3BC03, 0x00B3E404, 0x00B3F802, 0x00B5C001, + 0x00B5FC01, 0x00B7804F, 0x00B8C00C, 0x00BA001A, 0x00BA6C59, + 0x00BC00D6, 0x00BFC00C, 0x00C00005, 0x00C02019, 0x00C0A807, + 0x00C0D802, 0x00C0F403, 0x00C26404, 0x00C28001, 0x00C3EC01, + 0x00C64002, 0x00C6580A, 0x00C70024, 0x00C8001F, 0x00C8A81E, + 0x00C94001, 0x00C98020, 0x00CA2827, 0x00CB003F, 0x00CC0100, + 0x01370040, 0x02924037, 0x0293F802, 0x02983403, 0x0299BC10, + 0x029A7C01, 0x029BC008, 0x029C0017, 0x029C8002, 0x029E2402, + 0x02A00801, 0x02A01801, 0x02A02C01, 0x02A08C09, 0x02A0D804, + 0x02A1D004, 0x02A20002, 0x02A2D011, 0x02A33802, 0x02A38012, + 0x02A3E003, 0x02A4980A, 0x02A51C0D, 0x02A57C01, 0x02A60004, + 0x02A6CC1B, 0x02A77802, 0x02A8A40E, 0x02A90C01, 0x02A93002, + 0x02A97004, 0x02A9DC03, 0x02A9EC01, 0x02AAC001, 0x02AAC803, + 0x02AADC02, 0x02AAF802, 0x02AB0401, 0x02AB7802, 0x02ABAC07, + 0x02ABD402, 0x02AF8C0B, 0x03600001, 0x036DFC02, 0x036FFC02, + 0x037FFC01, 0x03EC7801, 0x03ECA401, 0x03EEC810, 0x03F4F802, + 0x03F7F002, 0x03F8001A, 0x03F88007, 0x03F8C023, 0x03F95013, + 0x03F9A004, 0x03FBFC01, 0x03FC040F, 0x03FC6807, 0x03FCEC06, + 0x03FD6C0B, 0x03FF8007, 0x03FFA007, 0x03FFE405, 0x04040003, + 0x0404DC09, 0x0405E411, 0x0406400C, 0x0407402E, 0x040E7C01, + 0x040F4001, 0x04215C01, 0x04247C01, 0x0424FC01, 0x04280403, + 0x04281402, 0x04283004, 0x0428E003, 0x0428FC01, 0x04294009, + 0x0429FC01, 0x042CE407, 0x04400003, 0x0440E016, 0x04420003, + 0x0442C012, 0x04440003, 0x04449C0E, 0x04450004, 0x04460003, + 0x0446CC0E, 0x04471404, 0x045AAC0D, 0x0491C004, 0x05BD442E, + 0x05BE3C04, 0x074000F6, 0x07440027, 0x0744A4B5, 0x07480046, + 0x074C0057, 0x075B0401, 0x075B6C01, 0x075BEC01, 0x075C5401, + 0x075CD401, 0x075D3C01, 0x075DBC01, 0x075E2401, 0x075EA401, + 0x075F0C01, 0x07BBC002, 0x07C0002C, 0x07C0C064, 0x07C2800F, + 0x07C2C40E, 0x07C3040F, 0x07C3440F, 0x07C4401F, 0x07C4C03C, + 0x07C5C02B, 0x07C7981D, 0x07C8402B, 0x07C90009, 0x07C94002, + 0x07CC0021, 0x07CCC006, 0x07CCDC46, 0x07CE0014, 0x07CE8025, + 0x07CF1805, 0x07CF8011, 0x07D0003F, 0x07D10001, 0x07D108B6, + 0x07D3E404, 0x07D4003E, 0x07D50004, 0x07D54018, 0x07D7EC46, + 0x07D9140B, 0x07DA0046, 0x07DC0074, 0x38000401, 0x38008060, + 0x380400F0, + }; + static const unsigned int aAscii[4] = { + 0xFFFFFFFF, 0xFC00FFFF, 0xF8000001, 0xF8000001, + }; + + if( c<128 ){ + return ( (aAscii[c >> 5] & (1 << (c & 0x001F)))==0 ); + }else if( c<(1<<22) ){ + unsigned int key = (((unsigned int)c)<<10) | 0x000003FF; + int iRes = 0; + int iHi = sizeof(aEntry)/sizeof(aEntry[0]) - 1; + int iLo = 0; + while( iHi>=iLo ){ + int iTest = (iHi + iLo) / 2; + if( key >= aEntry[iTest] ){ + iRes = iTest; + iLo = iTest+1; + }else{ + iHi = iTest-1; + } + } + assert( aEntry[0]=aEntry[iRes] ); + return (((unsigned int)c) >= ((aEntry[iRes]>>10) + (aEntry[iRes]&0x3FF))); + } + return 1; +} + + +/* +** If the argument is a codepoint corresponding to a lowercase letter +** in the ASCII range with a diacritic added, return the codepoint +** of the ASCII letter only. For example, if passed 235 - "LATIN +** SMALL LETTER E WITH DIAERESIS" - return 65 ("LATIN SMALL LETTER +** E"). The resuls of passing a codepoint that corresponds to an +** uppercase letter are undefined. +*/ +static int fts5_remove_diacritic(int c){ + unsigned short aDia[] = { + 0, 1797, 1848, 1859, 1891, 1928, 1940, 1995, + 2024, 2040, 2060, 2110, 2168, 2206, 2264, 2286, + 2344, 2383, 2472, 2488, 2516, 2596, 2668, 2732, + 2782, 2842, 2894, 2954, 2984, 3000, 3028, 3336, + 3456, 3696, 3712, 3728, 3744, 3896, 3912, 3928, + 3968, 4008, 4040, 4106, 4138, 4170, 4202, 4234, + 4266, 4296, 4312, 4344, 4408, 4424, 4472, 4504, + 6148, 6198, 6264, 6280, 6360, 6429, 6505, 6529, + 61448, 61468, 61534, 61592, 61642, 61688, 61704, 61726, + 61784, 61800, 61836, 61880, 61914, 61948, 61998, 62122, + 62154, 62200, 62218, 62302, 62364, 62442, 62478, 62536, + 62554, 62584, 62604, 62640, 62648, 62656, 62664, 62730, + 62924, 63050, 63082, 63274, 63390, + }; + char aChar[] = { + '\0', 'a', 'c', 'e', 'i', 'n', 'o', 'u', 'y', 'y', 'a', 'c', + 'd', 'e', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'n', 'o', 'r', + 's', 't', 'u', 'u', 'w', 'y', 'z', 'o', 'u', 'a', 'i', 'o', + 'u', 'g', 'k', 'o', 'j', 'g', 'n', 'a', 'e', 'i', 'o', 'r', + 'u', 's', 't', 'h', 'a', 'e', 'o', 'y', '\0', '\0', '\0', '\0', + '\0', '\0', '\0', '\0', 'a', 'b', 'd', 'd', 'e', 'f', 'g', 'h', + 'h', 'i', 'k', 'l', 'l', 'm', 'n', 'p', 'r', 'r', 's', 't', + 'u', 'v', 'w', 'w', 'x', 'y', 'z', 'h', 't', 'w', 'y', 'a', + 'e', 'i', 'o', 'u', 'y', + }; + + unsigned int key = (((unsigned int)c)<<3) | 0x00000007; + int iRes = 0; + int iHi = sizeof(aDia)/sizeof(aDia[0]) - 1; + int iLo = 0; + while( iHi>=iLo ){ + int iTest = (iHi + iLo) / 2; + if( key >= aDia[iTest] ){ + iRes = iTest; + iLo = iTest+1; + }else{ + iHi = iTest-1; + } + } + assert( key>=aDia[iRes] ); + return ((c > (aDia[iRes]>>3) + (aDia[iRes]&0x07)) ? c : (int)aChar[iRes]); +} + + +/* +** Return true if the argument interpreted as a unicode codepoint +** is a diacritical modifier character. +*/ +static int sqlite3Fts5UnicodeIsdiacritic(int c){ + unsigned int mask0 = 0x08029FDF; + unsigned int mask1 = 0x000361F8; + if( c<768 || c>817 ) return 0; + return (c < 768+32) ? + (mask0 & (1 << (c-768))) : + (mask1 & (1 << (c-768-32))); +} + + +/* +** Interpret the argument as a unicode codepoint. If the codepoint +** is an upper case character that has a lower case equivalent, +** return the codepoint corresponding to the lower case version. +** Otherwise, return a copy of the argument. +** +** The results are undefined if the value passed to this function +** is less than zero. +*/ +static int sqlite3Fts5UnicodeFold(int c, int bRemoveDiacritic){ + /* Each entry in the following array defines a rule for folding a range + ** of codepoints to lower case. The rule applies to a range of nRange + ** codepoints starting at codepoint iCode. + ** + ** If the least significant bit in flags is clear, then the rule applies + ** to all nRange codepoints (i.e. all nRange codepoints are upper case and + ** need to be folded). Or, if it is set, then the rule only applies to + ** every second codepoint in the range, starting with codepoint C. + ** + ** The 7 most significant bits in flags are an index into the aiOff[] + ** array. If a specific codepoint C does require folding, then its lower + ** case equivalent is ((C + aiOff[flags>>1]) & 0xFFFF). + ** + ** The contents of this array are generated by parsing the CaseFolding.txt + ** file distributed as part of the "Unicode Character Database". See + ** http://www.unicode.org for details. + */ + static const struct TableEntry { + unsigned short iCode; + unsigned char flags; + unsigned char nRange; + } aEntry[] = { + {65, 14, 26}, {181, 64, 1}, {192, 14, 23}, + {216, 14, 7}, {256, 1, 48}, {306, 1, 6}, + {313, 1, 16}, {330, 1, 46}, {376, 116, 1}, + {377, 1, 6}, {383, 104, 1}, {385, 50, 1}, + {386, 1, 4}, {390, 44, 1}, {391, 0, 1}, + {393, 42, 2}, {395, 0, 1}, {398, 32, 1}, + {399, 38, 1}, {400, 40, 1}, {401, 0, 1}, + {403, 42, 1}, {404, 46, 1}, {406, 52, 1}, + {407, 48, 1}, {408, 0, 1}, {412, 52, 1}, + {413, 54, 1}, {415, 56, 1}, {416, 1, 6}, + {422, 60, 1}, {423, 0, 1}, {425, 60, 1}, + {428, 0, 1}, {430, 60, 1}, {431, 0, 1}, + {433, 58, 2}, {435, 1, 4}, {439, 62, 1}, + {440, 0, 1}, {444, 0, 1}, {452, 2, 1}, + {453, 0, 1}, {455, 2, 1}, {456, 0, 1}, + {458, 2, 1}, {459, 1, 18}, {478, 1, 18}, + {497, 2, 1}, {498, 1, 4}, {502, 122, 1}, + {503, 134, 1}, {504, 1, 40}, {544, 110, 1}, + {546, 1, 18}, {570, 70, 1}, {571, 0, 1}, + {573, 108, 1}, {574, 68, 1}, {577, 0, 1}, + {579, 106, 1}, {580, 28, 1}, {581, 30, 1}, + {582, 1, 10}, {837, 36, 1}, {880, 1, 4}, + {886, 0, 1}, {902, 18, 1}, {904, 16, 3}, + {908, 26, 1}, {910, 24, 2}, {913, 14, 17}, + {931, 14, 9}, {962, 0, 1}, {975, 4, 1}, + {976, 140, 1}, {977, 142, 1}, {981, 146, 1}, + {982, 144, 1}, {984, 1, 24}, {1008, 136, 1}, + {1009, 138, 1}, {1012, 130, 1}, {1013, 128, 1}, + {1015, 0, 1}, {1017, 152, 1}, {1018, 0, 1}, + {1021, 110, 3}, {1024, 34, 16}, {1040, 14, 32}, + {1120, 1, 34}, {1162, 1, 54}, {1216, 6, 1}, + {1217, 1, 14}, {1232, 1, 88}, {1329, 22, 38}, + {4256, 66, 38}, {4295, 66, 1}, {4301, 66, 1}, + {7680, 1, 150}, {7835, 132, 1}, {7838, 96, 1}, + {7840, 1, 96}, {7944, 150, 8}, {7960, 150, 6}, + {7976, 150, 8}, {7992, 150, 8}, {8008, 150, 6}, + {8025, 151, 8}, {8040, 150, 8}, {8072, 150, 8}, + {8088, 150, 8}, {8104, 150, 8}, {8120, 150, 2}, + {8122, 126, 2}, {8124, 148, 1}, {8126, 100, 1}, + {8136, 124, 4}, {8140, 148, 1}, {8152, 150, 2}, + {8154, 120, 2}, {8168, 150, 2}, {8170, 118, 2}, + {8172, 152, 1}, {8184, 112, 2}, {8186, 114, 2}, + {8188, 148, 1}, {8486, 98, 1}, {8490, 92, 1}, + {8491, 94, 1}, {8498, 12, 1}, {8544, 8, 16}, + {8579, 0, 1}, {9398, 10, 26}, {11264, 22, 47}, + {11360, 0, 1}, {11362, 88, 1}, {11363, 102, 1}, + {11364, 90, 1}, {11367, 1, 6}, {11373, 84, 1}, + {11374, 86, 1}, {11375, 80, 1}, {11376, 82, 1}, + {11378, 0, 1}, {11381, 0, 1}, {11390, 78, 2}, + {11392, 1, 100}, {11499, 1, 4}, {11506, 0, 1}, + {42560, 1, 46}, {42624, 1, 24}, {42786, 1, 14}, + {42802, 1, 62}, {42873, 1, 4}, {42877, 76, 1}, + {42878, 1, 10}, {42891, 0, 1}, {42893, 74, 1}, + {42896, 1, 4}, {42912, 1, 10}, {42922, 72, 1}, + {65313, 14, 26}, + }; + static const unsigned short aiOff[] = { + 1, 2, 8, 15, 16, 26, 28, 32, + 37, 38, 40, 48, 63, 64, 69, 71, + 79, 80, 116, 202, 203, 205, 206, 207, + 209, 210, 211, 213, 214, 217, 218, 219, + 775, 7264, 10792, 10795, 23228, 23256, 30204, 54721, + 54753, 54754, 54756, 54787, 54793, 54809, 57153, 57274, + 57921, 58019, 58363, 61722, 65268, 65341, 65373, 65406, + 65408, 65410, 65415, 65424, 65436, 65439, 65450, 65462, + 65472, 65476, 65478, 65480, 65482, 65488, 65506, 65511, + 65514, 65521, 65527, 65528, 65529, + }; + + int ret = c; + + assert( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 ); + + if( c<128 ){ + if( c>='A' && c<='Z' ) ret = c + ('a' - 'A'); + }else if( c<65536 ){ + const struct TableEntry *p; + int iHi = sizeof(aEntry)/sizeof(aEntry[0]) - 1; + int iLo = 0; + int iRes = -1; + + assert( c>aEntry[0].iCode ); + while( iHi>=iLo ){ + int iTest = (iHi + iLo) / 2; + int cmp = (c - aEntry[iTest].iCode); + if( cmp>=0 ){ + iRes = iTest; + iLo = iTest+1; + }else{ + iHi = iTest-1; + } + } + + assert( iRes>=0 && c>=aEntry[iRes].iCode ); + p = &aEntry[iRes]; + if( c<(p->iCode + p->nRange) && 0==(0x01 & p->flags & (p->iCode ^ c)) ){ + ret = (c + (aiOff[p->flags>>1])) & 0x0000FFFF; + assert( ret>0 ); + } + + if( bRemoveDiacritic ) ret = fts5_remove_diacritic(ret); + } + + else if( c>=66560 && c<66600 ){ + ret = c + 40; + } + + return ret; +} + +/* +** 2015 May 30 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** Routines for varint serialization and deserialization. +*/ + + + +/* +** This is a copy of the sqlite3GetVarint32() routine from the SQLite core. +** Except, this version does handle the single byte case that the core +** version depends on being handled before its function is called. +*/ +static int sqlite3Fts5GetVarint32(const unsigned char *p, u32 *v){ + u32 a,b; + + /* The 1-byte case. Overwhelmingly the most common. */ + a = *p; + /* a: p0 (unmasked) */ + if (!(a&0x80)) + { + /* Values between 0 and 127 */ + *v = a; + return 1; + } + + /* The 2-byte case */ + p++; + b = *p; + /* b: p1 (unmasked) */ + if (!(b&0x80)) + { + /* Values between 128 and 16383 */ + a &= 0x7f; + a = a<<7; + *v = a | b; + return 2; + } + + /* The 3-byte case */ + p++; + a = a<<14; + a |= *p; + /* a: p0<<14 | p2 (unmasked) */ + if (!(a&0x80)) + { + /* Values between 16384 and 2097151 */ + a &= (0x7f<<14)|(0x7f); + b &= 0x7f; + b = b<<7; + *v = a | b; + return 3; + } + + /* A 32-bit varint is used to store size information in btrees. + ** Objects are rarely larger than 2MiB limit of a 3-byte varint. + ** A 3-byte varint is sufficient, for example, to record the size + ** of a 1048569-byte BLOB or string. + ** + ** We only unroll the first 1-, 2-, and 3- byte cases. The very + ** rare larger cases can be handled by the slower 64-bit varint + ** routine. + */ + { + u64 v64; + u8 n; + p -= 2; + n = sqlite3Fts5GetVarint(p, &v64); + *v = (u32)v64; + assert( n>3 && n<=9 ); + return n; + } +} + + +/* +** Bitmasks used by sqlite3GetVarint(). These precomputed constants +** are defined here rather than simply putting the constant expressions +** inline in order to work around bugs in the RVT compiler. +** +** SLOT_2_0 A mask for (0x7f<<14) | 0x7f +** +** SLOT_4_2_0 A mask for (0x7f<<28) | SLOT_2_0 +*/ +#define SLOT_2_0 0x001fc07f +#define SLOT_4_2_0 0xf01fc07f + +/* +** Read a 64-bit variable-length integer from memory starting at p[0]. +** Return the number of bytes read. The value is stored in *v. +*/ +static u8 sqlite3Fts5GetVarint(const unsigned char *p, u64 *v){ + u32 a,b,s; + + a = *p; + /* a: p0 (unmasked) */ + if (!(a&0x80)) + { + *v = a; + return 1; + } + + p++; + b = *p; + /* b: p1 (unmasked) */ + if (!(b&0x80)) + { + a &= 0x7f; + a = a<<7; + a |= b; + *v = a; + return 2; + } + + /* Verify that constants are precomputed correctly */ + assert( SLOT_2_0 == ((0x7f<<14) | (0x7f)) ); + assert( SLOT_4_2_0 == ((0xfU<<28) | (0x7f<<14) | (0x7f)) ); + + p++; + a = a<<14; + a |= *p; + /* a: p0<<14 | p2 (unmasked) */ + if (!(a&0x80)) + { + a &= SLOT_2_0; + b &= 0x7f; + b = b<<7; + a |= b; + *v = a; + return 3; + } + + /* CSE1 from below */ + a &= SLOT_2_0; + p++; + b = b<<14; + b |= *p; + /* b: p1<<14 | p3 (unmasked) */ + if (!(b&0x80)) + { + b &= SLOT_2_0; + /* moved CSE1 up */ + /* a &= (0x7f<<14)|(0x7f); */ + a = a<<7; + a |= b; + *v = a; + return 4; + } + + /* a: p0<<14 | p2 (masked) */ + /* b: p1<<14 | p3 (unmasked) */ + /* 1:save off p0<<21 | p1<<14 | p2<<7 | p3 (masked) */ + /* moved CSE1 up */ + /* a &= (0x7f<<14)|(0x7f); */ + b &= SLOT_2_0; + s = a; + /* s: p0<<14 | p2 (masked) */ + + p++; + a = a<<14; + a |= *p; + /* a: p0<<28 | p2<<14 | p4 (unmasked) */ + if (!(a&0x80)) + { + /* we can skip these cause they were (effectively) done above in calc'ing s */ + /* a &= (0x7f<<28)|(0x7f<<14)|(0x7f); */ + /* b &= (0x7f<<14)|(0x7f); */ + b = b<<7; + a |= b; + s = s>>18; + *v = ((u64)s)<<32 | a; + return 5; + } + + /* 2:save off p0<<21 | p1<<14 | p2<<7 | p3 (masked) */ + s = s<<7; + s |= b; + /* s: p0<<21 | p1<<14 | p2<<7 | p3 (masked) */ + + p++; + b = b<<14; + b |= *p; + /* b: p1<<28 | p3<<14 | p5 (unmasked) */ + if (!(b&0x80)) + { + /* we can skip this cause it was (effectively) done above in calc'ing s */ + /* b &= (0x7f<<28)|(0x7f<<14)|(0x7f); */ + a &= SLOT_2_0; + a = a<<7; + a |= b; + s = s>>18; + *v = ((u64)s)<<32 | a; + return 6; + } + + p++; + a = a<<14; + a |= *p; + /* a: p2<<28 | p4<<14 | p6 (unmasked) */ + if (!(a&0x80)) + { + a &= SLOT_4_2_0; + b &= SLOT_2_0; + b = b<<7; + a |= b; + s = s>>11; + *v = ((u64)s)<<32 | a; + return 7; + } + + /* CSE2 from below */ + a &= SLOT_2_0; + p++; + b = b<<14; + b |= *p; + /* b: p3<<28 | p5<<14 | p7 (unmasked) */ + if (!(b&0x80)) + { + b &= SLOT_4_2_0; + /* moved CSE2 up */ + /* a &= (0x7f<<14)|(0x7f); */ + a = a<<7; + a |= b; + s = s>>4; + *v = ((u64)s)<<32 | a; + return 8; + } + + p++; + a = a<<15; + a |= *p; + /* a: p4<<29 | p6<<15 | p8 (unmasked) */ + + /* moved CSE2 up */ + /* a &= (0x7f<<29)|(0x7f<<15)|(0xff); */ + b &= SLOT_2_0; + b = b<<8; + a |= b; + + s = s<<4; + b = p[-4]; + b &= 0x7f; + b = b>>3; + s |= b; + + *v = ((u64)s)<<32 | a; + + return 9; +} + +/* +** The variable-length integer encoding is as follows: +** +** KEY: +** A = 0xxxxxxx 7 bits of data and one flag bit +** B = 1xxxxxxx 7 bits of data and one flag bit +** C = xxxxxxxx 8 bits of data +** +** 7 bits - A +** 14 bits - BA +** 21 bits - BBA +** 28 bits - BBBA +** 35 bits - BBBBA +** 42 bits - BBBBBA +** 49 bits - BBBBBBA +** 56 bits - BBBBBBBA +** 64 bits - BBBBBBBBC +*/ + +#ifdef SQLITE_NOINLINE +# define FTS5_NOINLINE SQLITE_NOINLINE +#else +# define FTS5_NOINLINE +#endif + +/* +** Write a 64-bit variable-length integer to memory starting at p[0]. +** The length of data write will be between 1 and 9 bytes. The number +** of bytes written is returned. +** +** A variable-length integer consists of the lower 7 bits of each byte +** for all bytes that have the 8th bit set and one byte with the 8th +** bit clear. Except, if we get to the 9th byte, it stores the full +** 8 bits and is the last byte. +*/ +static int FTS5_NOINLINE fts5PutVarint64(unsigned char *p, u64 v){ + int i, j, n; + u8 buf[10]; + if( v & (((u64)0xff000000)<<32) ){ + p[8] = (u8)v; + v >>= 8; + for(i=7; i>=0; i--){ + p[i] = (u8)((v & 0x7f) | 0x80); + v >>= 7; + } + return 9; + } + n = 0; + do{ + buf[n++] = (u8)((v & 0x7f) | 0x80); + v >>= 7; + }while( v!=0 ); + buf[0] &= 0x7f; + assert( n<=9 ); + for(i=0, j=n-1; j>=0; j--, i++){ + p[i] = buf[j]; + } + return n; +} + +static int sqlite3Fts5PutVarint(unsigned char *p, u64 v){ + if( v<=0x7f ){ + p[0] = v&0x7f; + return 1; + } + if( v<=0x3fff ){ + p[0] = ((v>>7)&0x7f)|0x80; + p[1] = v&0x7f; + return 2; + } + return fts5PutVarint64(p,v); +} + + +static int sqlite3Fts5GetVarintLen(u32 iVal){ + if( iVal<(1 << 7 ) ) return 1; + if( iVal<(1 << 14) ) return 2; + if( iVal<(1 << 21) ) return 3; + if( iVal<(1 << 28) ) return 4; + return 5; +} + + +/* +** 2015 May 08 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This is an SQLite virtual table module implementing direct access to an +** existing FTS5 index. The module may create several different types of +** tables: +** +** col: +** CREATE TABLE vocab(term, col, doc, cnt, PRIMARY KEY(term, col)); +** +** One row for each term/column combination. The value of $doc is set to +** the number of fts5 rows that contain at least one instance of term +** $term within column $col. Field $cnt is set to the total number of +** instances of term $term in column $col (in any row of the fts5 table). +** +** row: +** CREATE TABLE vocab(term, doc, cnt, PRIMARY KEY(term)); +** +** One row for each term in the database. The value of $doc is set to +** the number of fts5 rows that contain at least one instance of term +** $term. Field $cnt is set to the total number of instances of term +** $term in the database. +*/ + + + + +typedef struct Fts5VocabTable Fts5VocabTable; +typedef struct Fts5VocabCursor Fts5VocabCursor; + +struct Fts5VocabTable { + sqlite3_vtab base; + char *zFts5Tbl; /* Name of fts5 table */ + char *zFts5Db; /* Db containing fts5 table */ + sqlite3 *db; /* Database handle */ + Fts5Global *pGlobal; /* FTS5 global object for this database */ + int eType; /* FTS5_VOCAB_COL or ROW */ +}; + +struct Fts5VocabCursor { + sqlite3_vtab_cursor base; + sqlite3_stmt *pStmt; /* Statement holding lock on pIndex */ + Fts5Index *pIndex; /* Associated FTS5 index */ + + int bEof; /* True if this cursor is at EOF */ + Fts5IndexIter *pIter; /* Term/rowid iterator object */ + + /* These are used by 'col' tables only */ + int nCol; + int iCol; + i64 *aCnt; + i64 *aDoc; + + /* Output values */ + i64 rowid; /* This table's current rowid value */ + Fts5Buffer term; /* Current value of 'term' column */ + i64 aVal[3]; /* Up to three columns left of 'term' */ +}; + +#define FTS5_VOCAB_COL 0 +#define FTS5_VOCAB_ROW 1 + +#define FTS5_VOCAB_COL_SCHEMA "term, col, doc, cnt" +#define FTS5_VOCAB_ROW_SCHEMA "term, doc, cnt" + +/* +** Translate a string containing an fts5vocab table type to an +** FTS5_VOCAB_XXX constant. If successful, set *peType to the output +** value and return SQLITE_OK. Otherwise, set *pzErr to an error message +** and return SQLITE_ERROR. +*/ +static int fts5VocabTableType(const char *zType, char **pzErr, int *peType){ + int rc = SQLITE_OK; + char *zCopy = sqlite3Fts5Strndup(&rc, zType, -1); + if( rc==SQLITE_OK ){ + sqlite3Fts5Dequote(zCopy); + if( sqlite3_stricmp(zCopy, "col")==0 ){ + *peType = FTS5_VOCAB_COL; + }else + + if( sqlite3_stricmp(zCopy, "row")==0 ){ + *peType = FTS5_VOCAB_ROW; + }else + { + *pzErr = sqlite3_mprintf("fts5vocab: unknown table type: %Q", zCopy); + rc = SQLITE_ERROR; + } + sqlite3_free(zCopy); + } + + return rc; +} + + +/* +** The xDisconnect() virtual table method. +*/ +static int fts5VocabDisconnectMethod(sqlite3_vtab *pVtab){ + Fts5VocabTable *pTab = (Fts5VocabTable*)pVtab; + sqlite3_free(pTab); + return SQLITE_OK; +} + +/* +** The xDestroy() virtual table method. +*/ +static int fts5VocabDestroyMethod(sqlite3_vtab *pVtab){ + Fts5VocabTable *pTab = (Fts5VocabTable*)pVtab; + sqlite3_free(pTab); + return SQLITE_OK; +} + +/* +** This function is the implementation of both the xConnect and xCreate +** methods of the FTS3 virtual table. +** +** The argv[] array contains the following: +** +** argv[0] -> module name ("fts5vocab") +** argv[1] -> database name +** argv[2] -> table name +** +** then: +** +** argv[3] -> name of fts5 table +** argv[4] -> type of fts5vocab table +** +** or, for tables in the TEMP schema only. +** +** argv[3] -> name of fts5 tables database +** argv[4] -> name of fts5 table +** argv[5] -> type of fts5vocab table +*/ +static int fts5VocabInitVtab( + sqlite3 *db, /* The SQLite database connection */ + void *pAux, /* Pointer to Fts5Global object */ + int argc, /* Number of elements in argv array */ + const char * const *argv, /* xCreate/xConnect argument array */ + sqlite3_vtab **ppVTab, /* Write the resulting vtab structure here */ + char **pzErr /* Write any error message here */ +){ + const char *azSchema[] = { + "CREATE TABlE vocab(" FTS5_VOCAB_COL_SCHEMA ")", + "CREATE TABlE vocab(" FTS5_VOCAB_ROW_SCHEMA ")" + }; + + Fts5VocabTable *pRet = 0; + int rc = SQLITE_OK; /* Return code */ + int bDb; + + bDb = (argc==6 && strlen(argv[1])==4 && memcmp("temp", argv[1], 4)==0); + + if( argc!=5 && bDb==0 ){ + *pzErr = sqlite3_mprintf("wrong number of vtable arguments"); + rc = SQLITE_ERROR; + }else{ + int nByte; /* Bytes of space to allocate */ + const char *zDb = bDb ? argv[3] : argv[1]; + const char *zTab = bDb ? argv[4] : argv[3]; + const char *zType = bDb ? argv[5] : argv[4]; + int nDb = strlen(zDb)+1; + int nTab = strlen(zTab)+1; + int eType; + + rc = fts5VocabTableType(zType, pzErr, &eType); + if( rc==SQLITE_OK ){ + assert( eType>=0 && eTypepGlobal = (Fts5Global*)pAux; + pRet->eType = eType; + pRet->db = db; + pRet->zFts5Tbl = (char*)&pRet[1]; + pRet->zFts5Db = &pRet->zFts5Tbl[nTab]; + memcpy(pRet->zFts5Tbl, zTab, nTab); + memcpy(pRet->zFts5Db, zDb, nDb); + sqlite3Fts5Dequote(pRet->zFts5Tbl); + sqlite3Fts5Dequote(pRet->zFts5Db); + } + } + + *ppVTab = (sqlite3_vtab*)pRet; + return rc; +} + + +/* +** The xConnect() and xCreate() methods for the virtual table. All the +** work is done in function fts5VocabInitVtab(). +*/ +static int fts5VocabConnectMethod( + sqlite3 *db, /* Database connection */ + void *pAux, /* Pointer to tokenizer hash table */ + int argc, /* Number of elements in argv array */ + const char * const *argv, /* xCreate/xConnect argument array */ + sqlite3_vtab **ppVtab, /* OUT: New sqlite3_vtab object */ + char **pzErr /* OUT: sqlite3_malloc'd error message */ +){ + return fts5VocabInitVtab(db, pAux, argc, argv, ppVtab, pzErr); +} +static int fts5VocabCreateMethod( + sqlite3 *db, /* Database connection */ + void *pAux, /* Pointer to tokenizer hash table */ + int argc, /* Number of elements in argv array */ + const char * const *argv, /* xCreate/xConnect argument array */ + sqlite3_vtab **ppVtab, /* OUT: New sqlite3_vtab object */ + char **pzErr /* OUT: sqlite3_malloc'd error message */ +){ + return fts5VocabInitVtab(db, pAux, argc, argv, ppVtab, pzErr); +} + +/* +** Implementation of the xBestIndex method. +*/ +static int fts5VocabBestIndexMethod( + sqlite3_vtab *pVTab, + sqlite3_index_info *pInfo +){ + return SQLITE_OK; +} + +/* +** Implementation of xOpen method. +*/ +static int fts5VocabOpenMethod( + sqlite3_vtab *pVTab, + sqlite3_vtab_cursor **ppCsr +){ + Fts5VocabTable *pTab = (Fts5VocabTable*)pVTab; + Fts5Index *pIndex = 0; + int nCol = 0; + Fts5VocabCursor *pCsr = 0; + int rc = SQLITE_OK; + sqlite3_stmt *pStmt = 0; + char *zSql = 0; + int nByte; + + zSql = sqlite3Fts5Mprintf(&rc, + "SELECT t.%Q FROM %Q.%Q AS t WHERE t.%Q MATCH '*id'", + pTab->zFts5Tbl, pTab->zFts5Db, pTab->zFts5Tbl, pTab->zFts5Tbl + ); + if( zSql ){ + rc = sqlite3_prepare_v2(pTab->db, zSql, -1, &pStmt, 0); + } + sqlite3_free(zSql); + assert( rc==SQLITE_OK || pStmt==0 ); + if( rc==SQLITE_ERROR ) rc = SQLITE_OK; + + if( pStmt && sqlite3_step(pStmt)==SQLITE_ROW ){ + i64 iId = sqlite3_column_int64(pStmt, 0); + pIndex = sqlite3Fts5IndexFromCsrid(pTab->pGlobal, iId, &nCol); + } + + if( rc==SQLITE_OK && pIndex==0 ){ + rc = sqlite3_finalize(pStmt); + pStmt = 0; + if( rc==SQLITE_OK ){ + pVTab->zErrMsg = sqlite3_mprintf( + "no such fts5 table: %s.%s", pTab->zFts5Db, pTab->zFts5Tbl + ); + rc = SQLITE_ERROR; + } + } + + nByte = nCol * sizeof(i64) * 2 + sizeof(Fts5VocabCursor); + pCsr = (Fts5VocabCursor*)sqlite3Fts5MallocZero(&rc, nByte); + if( pCsr ){ + pCsr->pIndex = pIndex; + pCsr->pStmt = pStmt; + pCsr->nCol = nCol; + pCsr->aCnt = (i64*)&pCsr[1]; + pCsr->aDoc = &pCsr->aCnt[nCol]; + }else{ + sqlite3_finalize(pStmt); + } + + *ppCsr = (sqlite3_vtab_cursor*)pCsr; + return rc; +} + +static void fts5VocabResetCursor(Fts5VocabCursor *pCsr){ + pCsr->rowid = 0; + sqlite3Fts5IterClose(pCsr->pIter); + pCsr->pIter = 0; +} + +/* +** Close the cursor. For additional information see the documentation +** on the xClose method of the virtual table interface. +*/ +static int fts5VocabCloseMethod(sqlite3_vtab_cursor *pCursor){ + Fts5VocabCursor *pCsr = (Fts5VocabCursor*)pCursor; + fts5VocabResetCursor(pCsr); + sqlite3Fts5BufferFree(&pCsr->term); + sqlite3_finalize(pCsr->pStmt); + sqlite3_free(pCsr); + return SQLITE_OK; +} + + +/* +** Advance the cursor to the next row in the table. +*/ +static int fts5VocabNextMethod(sqlite3_vtab_cursor *pCursor){ + Fts5VocabCursor *pCsr = (Fts5VocabCursor*)pCursor; + Fts5VocabTable *pTab = (Fts5VocabTable*)pCursor->pVtab; + int rc = SQLITE_OK; + + pCsr->rowid++; + + if( pTab->eType==FTS5_VOCAB_COL ){ + for(pCsr->iCol++; pCsr->iColnCol; pCsr->iCol++){ + if( pCsr->aCnt[pCsr->iCol] ) break; + } + } + + if( pTab->eType==FTS5_VOCAB_ROW || pCsr->iCol>=pCsr->nCol ){ + if( sqlite3Fts5IterEof(pCsr->pIter) ){ + pCsr->bEof = 1; + }else{ + const char *zTerm; + int nTerm; + + zTerm = sqlite3Fts5IterTerm(pCsr->pIter, &nTerm); + sqlite3Fts5BufferSet(&rc, &pCsr->term, nTerm, (const u8*)zTerm); + memset(pCsr->aVal, 0, sizeof(pCsr->aVal)); + memset(pCsr->aCnt, 0, pCsr->nCol * sizeof(i64)); + memset(pCsr->aDoc, 0, pCsr->nCol * sizeof(i64)); + pCsr->iCol = 0; + + assert( pTab->eType==FTS5_VOCAB_COL || pTab->eType==FTS5_VOCAB_ROW ); + while( rc==SQLITE_OK ){ + i64 dummy; + const u8 *pPos; int nPos; /* Position list */ + i64 iPos = 0; /* 64-bit position read from poslist */ + int iOff = 0; /* Current offset within position list */ + + rc = sqlite3Fts5IterPoslist(pCsr->pIter, 0, &pPos, &nPos, &dummy); + if( rc==SQLITE_OK ){ + if( pTab->eType==FTS5_VOCAB_ROW ){ + while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff, &iPos) ){ + pCsr->aVal[1]++; + } + pCsr->aVal[0]++; + }else{ + int iCol = -1; + while( 0==sqlite3Fts5PoslistNext64(pPos, nPos, &iOff, &iPos) ){ + int ii = FTS5_POS2COLUMN(iPos); + pCsr->aCnt[ii]++; + if( iCol!=ii ){ + pCsr->aDoc[ii]++; + iCol = ii; + } + } + } + rc = sqlite3Fts5IterNextScan(pCsr->pIter); + } + if( rc==SQLITE_OK ){ + zTerm = sqlite3Fts5IterTerm(pCsr->pIter, &nTerm); + if( nTerm!=pCsr->term.n || memcmp(zTerm, pCsr->term.p, nTerm) ) break; + if( sqlite3Fts5IterEof(pCsr->pIter) ) break; + } + } + } + } + + if( pCsr->bEof==0 && pTab->eType==FTS5_VOCAB_COL ){ + while( pCsr->aCnt[pCsr->iCol]==0 ) pCsr->iCol++; + pCsr->aVal[0] = pCsr->iCol; + pCsr->aVal[1] = pCsr->aDoc[pCsr->iCol]; + pCsr->aVal[2] = pCsr->aCnt[pCsr->iCol]; + } + return rc; +} + +/* +** This is the xFilter implementation for the virtual table. +*/ +static int fts5VocabFilterMethod( + sqlite3_vtab_cursor *pCursor, /* The cursor used for this query */ + int idxNum, /* Strategy index */ + const char *idxStr, /* Unused */ + int nVal, /* Number of elements in apVal */ + sqlite3_value **apVal /* Arguments for the indexing scheme */ +){ + Fts5VocabCursor *pCsr = (Fts5VocabCursor*)pCursor; + int rc; + const int flags = FTS5INDEX_QUERY_SCAN; + + fts5VocabResetCursor(pCsr); + rc = sqlite3Fts5IndexQuery(pCsr->pIndex, 0, 0, flags, 0, &pCsr->pIter); + if( rc==SQLITE_OK ){ + rc = fts5VocabNextMethod(pCursor); + } + + return rc; +} + +/* +** This is the xEof method of the virtual table. SQLite calls this +** routine to find out if it has reached the end of a result set. +*/ +static int fts5VocabEofMethod(sqlite3_vtab_cursor *pCursor){ + Fts5VocabCursor *pCsr = (Fts5VocabCursor*)pCursor; + return pCsr->bEof; +} + +static int fts5VocabColumnMethod( + sqlite3_vtab_cursor *pCursor, /* Cursor to retrieve value from */ + sqlite3_context *pCtx, /* Context for sqlite3_result_xxx() calls */ + int iCol /* Index of column to read value from */ +){ + Fts5VocabCursor *pCsr = (Fts5VocabCursor*)pCursor; + switch( iCol ){ + case 0: /* term */ + sqlite3_result_text( + pCtx, (const char*)pCsr->term.p, pCsr->term.n, SQLITE_TRANSIENT + ); + break; + + default: + assert( iCol<4 && iCol>0 ); + sqlite3_result_int64(pCtx, pCsr->aVal[iCol-1]); + break; + } + return SQLITE_OK; +} + +/* +** This is the xRowid method. The SQLite core calls this routine to +** retrieve the rowid for the current row of the result set. The +** rowid should be written to *pRowid. +*/ +static int fts5VocabRowidMethod( + sqlite3_vtab_cursor *pCursor, + sqlite_int64 *pRowid +){ + Fts5VocabCursor *pCsr = (Fts5VocabCursor*)pCursor; + *pRowid = pCsr->rowid; + return SQLITE_OK; +} + +static int sqlite3Fts5VocabInit(Fts5Global *pGlobal, sqlite3 *db){ + static const sqlite3_module fts5Vocab = { + /* iVersion */ 2, + /* xCreate */ fts5VocabCreateMethod, + /* xConnect */ fts5VocabConnectMethod, + /* xBestIndex */ fts5VocabBestIndexMethod, + /* xDisconnect */ fts5VocabDisconnectMethod, + /* xDestroy */ fts5VocabDestroyMethod, + /* xOpen */ fts5VocabOpenMethod, + /* xClose */ fts5VocabCloseMethod, + /* xFilter */ fts5VocabFilterMethod, + /* xNext */ fts5VocabNextMethod, + /* xEof */ fts5VocabEofMethod, + /* xColumn */ fts5VocabColumnMethod, + /* xRowid */ fts5VocabRowidMethod, + /* xUpdate */ 0, + /* xBegin */ 0, + /* xSync */ 0, + /* xCommit */ 0, + /* xRollback */ 0, + /* xFindFunction */ 0, + /* xRename */ 0, + /* xSavepoint */ 0, + /* xRelease */ 0, + /* xRollbackTo */ 0, + }; + void *p = (void*)pGlobal; + + return sqlite3_create_module_v2(db, "fts5vocab", &fts5Vocab, p, 0); +} + + + + + +#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5) */ + +/************** End of fts5.c ************************************************/ diff --git a/TMessagesProj/jni/sqlite/sqlite3.h b/TMessagesProj/jni/sqlite/sqlite3.h index d3f272c2b..928b43077 100644 --- a/TMessagesProj/jni/sqlite/sqlite3.h +++ b/TMessagesProj/jni/sqlite/sqlite3.h @@ -31,7 +31,7 @@ ** part of the build process. */ #ifndef _SQLITE3_H_ -#define _SQLITE3_H_ +#define _SQLITE3_H_ #include /* Needed for the definition of va_list */ /* @@ -111,9 +111,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.8.11.1" -#define SQLITE_VERSION_NUMBER 3008011 -#define SQLITE_SOURCE_ID "2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f" +#define SQLITE_VERSION "3.9.2" +#define SQLITE_VERSION_NUMBER 3009002 +#define SQLITE_SOURCE_ID "2015-11-02 18:31:45 bda77dda9697c463c3d0704014d51627fceee328" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -124,7 +124,7 @@ extern "C" { ** but are associated with the library instead of the header file. ^(Cautious ** programmers might include assert() statements in their application to ** verify that values returned by these interfaces match the macros in -** the header, and thus insure that the application is +** the header, and thus ensure that the application is ** compiled with matching library and header files. ** **
@@ -374,7 +374,7 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**);
 ** Restrictions:
 **
 ** 
    -**
  • The application must insure that the 1st parameter to sqlite3_exec() +**
  • The application must ensure that the 1st parameter to sqlite3_exec() ** is a valid and open [database connection]. **
  • The application must not close the [database connection] specified by ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. @@ -477,6 +477,7 @@ SQLITE_API int SQLITE_STDCALL sqlite3_exec( #define SQLITE_IOERR_MMAP (SQLITE_IOERR | (24<<8)) #define SQLITE_IOERR_GETTEMPPATH (SQLITE_IOERR | (25<<8)) #define SQLITE_IOERR_CONVPATH (SQLITE_IOERR | (26<<8)) +#define SQLITE_IOERR_VNODE (SQLITE_IOERR | (27<<8)) #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) #define SQLITE_BUSY_SNAPSHOT (SQLITE_BUSY | (2<<8)) @@ -1366,9 +1367,11 @@ SQLITE_API int SQLITE_STDCALL sqlite3_os_end(void); ** applications and so this routine is usually not necessary. It is ** provided to support rare applications with unusual needs. ** -** The sqlite3_config() interface is not threadsafe. The application -** must insure that no other SQLite interfaces are invoked by other -** threads while sqlite3_config() is running. Furthermore, sqlite3_config() +** The sqlite3_config() interface is not threadsafe. The application +** must ensure that no other SQLite interfaces are invoked by other +** threads while sqlite3_config() is running. +** +** The sqlite3_config() interface ** may only be invoked prior to library initialization using ** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. ** ^If sqlite3_config() is called after [sqlite3_initialize()] and before @@ -3373,7 +3376,8 @@ SQLITE_API int SQLITE_STDCALL sqlite3_stmt_readonly(sqlite3_stmt *pStmt); ** ** ^The sqlite3_stmt_busy(S) interface returns true (non-zero) if the ** [prepared statement] S has been stepped at least once using -** [sqlite3_step(S)] but has not run to completion and/or has not +** [sqlite3_step(S)] but has neither run to completion (returned +** [SQLITE_DONE] from [sqlite3_step(S)]) nor ** been reset using [sqlite3_reset(S)]. ^The sqlite3_stmt_busy(S) ** interface returns false if S is a NULL pointer. If S is not a ** NULL pointer and is not a pointer to a valid [prepared statement] @@ -3626,7 +3630,7 @@ SQLITE_API const char *SQLITE_STDCALL sqlite3_bind_parameter_name(sqlite3_stmt*, ** ** See also: [sqlite3_bind_blob|sqlite3_bind()], ** [sqlite3_bind_parameter_count()], and -** [sqlite3_bind_parameter_index()]. +** [sqlite3_bind_parameter_name()]. */ SQLITE_API int SQLITE_STDCALL sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); @@ -4355,6 +4359,22 @@ SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16be(sqlite3_value*); SQLITE_API int SQLITE_STDCALL sqlite3_value_type(sqlite3_value*); SQLITE_API int SQLITE_STDCALL sqlite3_value_numeric_type(sqlite3_value*); +/* +** CAPI3REF: Finding The Subtype Of SQL Values +** METHOD: sqlite3_value +** +** The sqlite3_value_subtype(V) function returns the subtype for +** an [application-defined SQL function] argument V. The subtype +** information can be used to pass a limited amount of context from +** one SQL function to another. Use the [sqlite3_result_subtype()] +** routine to set the subtype for the return value of an SQL function. +** +** SQLite makes no use of subtype itself. It merely passes the subtype +** from the result of one [application-defined SQL function] into the +** input of another. +*/ +SQLITE_API unsigned int SQLITE_STDCALL sqlite3_value_subtype(sqlite3_value*); + /* ** CAPI3REF: Copy And Free SQL Values ** METHOD: sqlite3_value @@ -4654,6 +4674,21 @@ SQLITE_API void SQLITE_STDCALL sqlite3_result_value(sqlite3_context*, sqlite3_va SQLITE_API void SQLITE_STDCALL sqlite3_result_zeroblob(sqlite3_context*, int n); SQLITE_API int SQLITE_STDCALL sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n); + +/* +** CAPI3REF: Setting The Subtype Of An SQL Function +** METHOD: sqlite3_context +** +** The sqlite3_result_subtype(C,T) function causes the subtype of +** the result from the [application-defined SQL function] with +** [sqlite3_context] C to be the value T. Only the lower 8 bits +** of the subtype T are preserved in current versions of SQLite; +** higher order bits are discarded. +** The number of subtype bytes preserved by SQLite might increase +** in future releases of SQLite. +*/ +SQLITE_API void SQLITE_STDCALL sqlite3_result_subtype(sqlite3_context*,unsigned int); + /* ** CAPI3REF: Define New Collating Sequences ** METHOD: sqlite3 @@ -5599,13 +5634,31 @@ struct sqlite3_module { ** ^The estimatedRows value is an estimate of the number of rows that ** will be returned by the strategy. ** +** The xBestIndex method may optionally populate the idxFlags field with a +** mask of SQLITE_INDEX_SCAN_* flags. Currently there is only one such flag - +** SQLITE_INDEX_SCAN_UNIQUE. If the xBestIndex method sets this flag, SQLite +** assumes that the strategy may visit at most one row. +** +** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then +** SQLite also assumes that if a call to the xUpdate() method is made as +** part of the same statement to delete or update a virtual table row and the +** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback +** any database changes. In other words, if the xUpdate() returns +** SQLITE_CONSTRAINT, the database contents must be exactly as they were +** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not +** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by +** the xUpdate method are automatically rolled back by SQLite. +** ** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info ** structure for SQLite version 3.8.2. If a virtual table extension is ** used with an SQLite version earlier than 3.8.2, the results of attempting ** to read or write the estimatedRows field are undefined (but are likely ** to included crashing the application). The estimatedRows field should ** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. +** value greater than or equal to 3008002. Similarly, the idxFlags field +** was added for version 3.9.0. It may therefore only be used if +** sqlite3_libversion_number() returns a value greater than or equal to +** 3009000. */ struct sqlite3_index_info { /* Inputs */ @@ -5633,8 +5686,15 @@ struct sqlite3_index_info { double estimatedCost; /* Estimated cost of using this index */ /* Fields below are only available in SQLite 3.8.2 and later */ sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + /* Fields below are only available in SQLite 3.9.0 and later */ + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ }; +/* +** CAPI3REF: Virtual Table Scan Flags +*/ +#define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + /* ** CAPI3REF: Virtual Table Constraint Operator Codes ** @@ -6092,6 +6152,9 @@ SQLITE_API int SQLITE_STDCALL sqlite3_vfs_unregister(sqlite3_vfs*); **
  • SQLITE_MUTEX_STATIC_APP1 **
  • SQLITE_MUTEX_STATIC_APP2 **
  • SQLITE_MUTEX_STATIC_APP3 +**
  • SQLITE_MUTEX_STATIC_VFS1 +**
  • SQLITE_MUTEX_STATIC_VFS2 +**
  • SQLITE_MUTEX_STATIC_VFS3 **
** ** ^The first two constants (SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) @@ -7858,3 +7921,523 @@ struct sqlite3_rtree_query_info { #endif /* ifndef _SQLITE3RTREE_H_ */ +/* +** 2014 May 31 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** Interfaces to extend FTS5. Using the interfaces defined in this file, +** FTS5 may be extended with: +** +** * custom tokenizers, and +** * custom auxiliary functions. +*/ + + +#ifndef _FTS5_H +#define _FTS5_H + + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************* +** CUSTOM AUXILIARY FUNCTIONS +** +** Virtual table implementations may overload SQL functions by implementing +** the sqlite3_module.xFindFunction() method. +*/ + +typedef struct Fts5ExtensionApi Fts5ExtensionApi; +typedef struct Fts5Context Fts5Context; +typedef struct Fts5PhraseIter Fts5PhraseIter; + +typedef void (*fts5_extension_function)( + const Fts5ExtensionApi *pApi, /* API offered by current FTS version */ + Fts5Context *pFts, /* First arg to pass to pApi functions */ + sqlite3_context *pCtx, /* Context for returning result/error */ + int nVal, /* Number of values in apVal[] array */ + sqlite3_value **apVal /* Array of trailing arguments */ +); + +struct Fts5PhraseIter { + const unsigned char *a; + const unsigned char *b; +}; + +/* +** EXTENSION API FUNCTIONS +** +** xUserData(pFts): +** Return a copy of the context pointer the extension function was +** registered with. +** +** xColumnTotalSize(pFts, iCol, pnToken): +** If parameter iCol is less than zero, set output variable *pnToken +** to the total number of tokens in the FTS5 table. Or, if iCol is +** non-negative but less than the number of columns in the table, return +** the total number of tokens in column iCol, considering all rows in +** the FTS5 table. +** +** If parameter iCol is greater than or equal to the number of columns +** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. +** an OOM condition or IO error), an appropriate SQLite error code is +** returned. +** +** xColumnCount(pFts): +** Return the number of columns in the table. +** +** xColumnSize(pFts, iCol, pnToken): +** If parameter iCol is less than zero, set output variable *pnToken +** to the total number of tokens in the current row. Or, if iCol is +** non-negative but less than the number of columns in the table, set +** *pnToken to the number of tokens in column iCol of the current row. +** +** If parameter iCol is greater than or equal to the number of columns +** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. +** an OOM condition or IO error), an appropriate SQLite error code is +** returned. +** +** xColumnText: +** This function attempts to retrieve the text of column iCol of the +** current document. If successful, (*pz) is set to point to a buffer +** containing the text in utf-8 encoding, (*pn) is set to the size in bytes +** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, +** if an error occurs, an SQLite error code is returned and the final values +** of (*pz) and (*pn) are undefined. +** +** xPhraseCount: +** Returns the number of phrases in the current query expression. +** +** xPhraseSize: +** Returns the number of tokens in phrase iPhrase of the query. Phrases +** are numbered starting from zero. +** +** xInstCount: +** Set *pnInst to the total number of occurrences of all phrases within +** the query within the current row. Return SQLITE_OK if successful, or +** an error code (i.e. SQLITE_NOMEM) if an error occurs. +** +** xInst: +** Query for the details of phrase match iIdx within the current row. +** Phrase matches are numbered starting from zero, so the iIdx argument +** should be greater than or equal to zero and smaller than the value +** output by xInstCount(). +** +** Returns SQLITE_OK if successful, or an error code (i.e. SQLITE_NOMEM) +** if an error occurs. +** +** xRowid: +** Returns the rowid of the current row. +** +** xTokenize: +** Tokenize text using the tokenizer belonging to the FTS5 table. +** +** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): +** This API function is used to query the FTS table for phrase iPhrase +** of the current query. Specifically, a query equivalent to: +** +** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid +** +** with $p set to a phrase equivalent to the phrase iPhrase of the +** current query is executed. For each row visited, the callback function +** passed as the fourth argument is invoked. The context and API objects +** passed to the callback function may be used to access the properties of +** each matched row. Invoking Api.xUserData() returns a copy of the pointer +** passed as the third argument to pUserData. +** +** If the callback function returns any value other than SQLITE_OK, the +** query is abandoned and the xQueryPhrase function returns immediately. +** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. +** Otherwise, the error code is propagated upwards. +** +** If the query runs to completion without incident, SQLITE_OK is returned. +** Or, if some error occurs before the query completes or is aborted by +** the callback, an SQLite error code is returned. +** +** +** xSetAuxdata(pFts5, pAux, xDelete) +** +** Save the pointer passed as the second argument as the extension functions +** "auxiliary data". The pointer may then be retrieved by the current or any +** future invocation of the same fts5 extension function made as part of +** of the same MATCH query using the xGetAuxdata() API. +** +** Each extension function is allocated a single auxiliary data slot for +** each FTS query (MATCH expression). If the extension function is invoked +** more than once for a single FTS query, then all invocations share a +** single auxiliary data context. +** +** If there is already an auxiliary data pointer when this function is +** invoked, then it is replaced by the new pointer. If an xDelete callback +** was specified along with the original pointer, it is invoked at this +** point. +** +** The xDelete callback, if one is specified, is also invoked on the +** auxiliary data pointer after the FTS5 query has finished. +** +** If an error (e.g. an OOM condition) occurs within this function, an +** the auxiliary data is set to NULL and an error code returned. If the +** xDelete parameter was not NULL, it is invoked on the auxiliary data +** pointer before returning. +** +** +** xGetAuxdata(pFts5, bClear) +** +** Returns the current auxiliary data pointer for the fts5 extension +** function. See the xSetAuxdata() method for details. +** +** If the bClear argument is non-zero, then the auxiliary data is cleared +** (set to NULL) before this function returns. In this case the xDelete, +** if any, is not invoked. +** +** +** xRowCount(pFts5, pnRow) +** +** This function is used to retrieve the total number of rows in the table. +** In other words, the same value that would be returned by: +** +** SELECT count(*) FROM ftstable; +** +** xPhraseFirst() +** This function is used, along with type Fts5PhraseIter and the xPhraseNext +** method, to iterate through all instances of a single query phrase within +** the current row. This is the same information as is accessible via the +** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient +** to use, this API may be faster under some circumstances. To iterate +** through instances of phrase iPhrase, use the following code: +** +** Fts5PhraseIter iter; +** int iCol, iOff; +** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); +** iOff>=0; +** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) +** ){ +** // An instance of phrase iPhrase at offset iOff of column iCol +** } +** +** The Fts5PhraseIter structure is defined above. Applications should not +** modify this structure directly - it should only be used as shown above +** with the xPhraseFirst() and xPhraseNext() API methods. +** +** xPhraseNext() +** See xPhraseFirst above. +*/ +struct Fts5ExtensionApi { + int iVersion; /* Currently always set to 1 */ + + void *(*xUserData)(Fts5Context*); + + int (*xColumnCount)(Fts5Context*); + int (*xRowCount)(Fts5Context*, sqlite3_int64 *pnRow); + int (*xColumnTotalSize)(Fts5Context*, int iCol, sqlite3_int64 *pnToken); + + int (*xTokenize)(Fts5Context*, + const char *pText, int nText, /* Text to tokenize */ + void *pCtx, /* Context passed to xToken() */ + int (*xToken)(void*, int, const char*, int, int, int) /* Callback */ + ); + + int (*xPhraseCount)(Fts5Context*); + int (*xPhraseSize)(Fts5Context*, int iPhrase); + + int (*xInstCount)(Fts5Context*, int *pnInst); + int (*xInst)(Fts5Context*, int iIdx, int *piPhrase, int *piCol, int *piOff); + + sqlite3_int64 (*xRowid)(Fts5Context*); + int (*xColumnText)(Fts5Context*, int iCol, const char **pz, int *pn); + int (*xColumnSize)(Fts5Context*, int iCol, int *pnToken); + + int (*xQueryPhrase)(Fts5Context*, int iPhrase, void *pUserData, + int(*)(const Fts5ExtensionApi*,Fts5Context*,void*) + ); + int (*xSetAuxdata)(Fts5Context*, void *pAux, void(*xDelete)(void*)); + void *(*xGetAuxdata)(Fts5Context*, int bClear); + + void (*xPhraseFirst)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*, int*); + void (*xPhraseNext)(Fts5Context*, Fts5PhraseIter*, int *piCol, int *piOff); +}; + +/* +** CUSTOM AUXILIARY FUNCTIONS +*************************************************************************/ + +/************************************************************************* +** CUSTOM TOKENIZERS +** +** Applications may also register custom tokenizer types. A tokenizer +** is registered by providing fts5 with a populated instance of the +** following structure. All structure methods must be defined, setting +** any member of the fts5_tokenizer struct to NULL leads to undefined +** behaviour. The structure methods are expected to function as follows: +** +** xCreate: +** This function is used to allocate and inititalize a tokenizer instance. +** A tokenizer instance is required to actually tokenize text. +** +** The first argument passed to this function is a copy of the (void*) +** pointer provided by the application when the fts5_tokenizer object +** was registered with FTS5 (the third argument to xCreateTokenizer()). +** The second and third arguments are an array of nul-terminated strings +** containing the tokenizer arguments, if any, specified following the +** tokenizer name as part of the CREATE VIRTUAL TABLE statement used +** to create the FTS5 table. +** +** The final argument is an output variable. If successful, (*ppOut) +** should be set to point to the new tokenizer handle and SQLITE_OK +** returned. If an error occurs, some value other than SQLITE_OK should +** be returned. In this case, fts5 assumes that the final value of *ppOut +** is undefined. +** +** xDelete: +** This function is invoked to delete a tokenizer handle previously +** allocated using xCreate(). Fts5 guarantees that this function will +** be invoked exactly once for each successful call to xCreate(). +** +** xTokenize: +** This function is expected to tokenize the nText byte string indicated +** by argument pText. pText may or may not be nul-terminated. The first +** argument passed to this function is a pointer to an Fts5Tokenizer object +** returned by an earlier call to xCreate(). +** +** The second argument indicates the reason that FTS5 is requesting +** tokenization of the supplied text. This is always one of the following +** four values: +** +**
  • FTS5_TOKENIZE_DOCUMENT - A document is being inserted into +** or removed from the FTS table. The tokenizer is being invoked to +** determine the set of tokens to add to (or delete from) the +** FTS index. +** +**
  • FTS5_TOKENIZE_QUERY - A MATCH query is being executed +** against the FTS index. The tokenizer is being called to tokenize +** a bareword or quoted string specified as part of the query. +** +**
  • (FTS5_TOKENIZE_QUERY | FTS5_TOKENIZE_PREFIX) - Same as +** FTS5_TOKENIZE_QUERY, except that the bareword or quoted string is +** followed by a "*" character, indicating that the last token +** returned by the tokenizer will be treated as a token prefix. +** +**
  • FTS5_TOKENIZE_AUX - The tokenizer is being invoked to +** satisfy an fts5_api.xTokenize() request made by an auxiliary +** function. Or an fts5_api.xColumnSize() request made by the same +** on a columnsize=0 database. +**
+** +** For each token in the input string, the supplied callback xToken() must +** be invoked. The first argument to it should be a copy of the pointer +** passed as the second argument to xTokenize(). The third and fourth +** arguments are a pointer to a buffer containing the token text, and the +** size of the token in bytes. The 4th and 5th arguments are the byte offsets +** of the first byte of and first byte immediately following the text from +** which the token is derived within the input. +** +** The second argument passed to the xToken() callback ("tflags") should +** normally be set to 0. The exception is if the tokenizer supports +** synonyms. In this case see the discussion below for details. +** +** FTS5 assumes the xToken() callback is invoked for each token in the +** order that they occur within the input text. +** +** If an xToken() callback returns any value other than SQLITE_OK, then +** the tokenization should be abandoned and the xTokenize() method should +** immediately return a copy of the xToken() return value. Or, if the +** input buffer is exhausted, xTokenize() should return SQLITE_OK. Finally, +** if an error occurs with the xTokenize() implementation itself, it +** may abandon the tokenization and return any error code other than +** SQLITE_OK or SQLITE_DONE. +** +** SYNONYM SUPPORT +** +** Custom tokenizers may also support synonyms. Consider a case in which a +** user wishes to query for a phrase such as "first place". Using the +** built-in tokenizers, the FTS5 query 'first + place' will match instances +** of "first place" within the document set, but not alternative forms +** such as "1st place". In some applications, it would be better to match +** all instances of "first place" or "1st place" regardless of which form +** the user specified in the MATCH query text. +** +** There are several ways to approach this in FTS5: +** +**
  1. By mapping all synonyms to a single token. In this case, the +** In the above example, this means that the tokenizer returns the +** same token for inputs "first" and "1st". Say that token is in +** fact "first", so that when the user inserts the document "I won +** 1st place" entries are added to the index for tokens "i", "won", +** "first" and "place". If the user then queries for '1st + place', +** the tokenizer substitutes "first" for "1st" and the query works +** as expected. +** +**
  2. By adding multiple synonyms for a single term to the FTS index. +** In this case, when tokenizing query text, the tokenizer may +** provide multiple synonyms for a single term within the document. +** FTS5 then queries the index for each synonym individually. For +** example, faced with the query: +** +** +** ... MATCH 'first place' +** +** the tokenizer offers both "1st" and "first" as synonyms for the +** first token in the MATCH query and FTS5 effectively runs a query +** similar to: +** +** +** ... MATCH '(first OR 1st) place' +** +** except that, for the purposes of auxiliary functions, the query +** still appears to contain just two phrases - "(first OR 1st)" +** being treated as a single phrase. +** +**
  3. By adding multiple synonyms for a single term to the FTS index. +** Using this method, when tokenizing document text, the tokenizer +** provides multiple synonyms for each token. So that when a +** document such as "I won first place" is tokenized, entries are +** added to the FTS index for "i", "won", "first", "1st" and +** "place". +** +** This way, even if the tokenizer does not provide synonyms +** when tokenizing query text (it should not - to do would be +** inefficient), it doesn't matter if the user queries for +** 'first + place' or '1st + place', as there are entires in the +** FTS index corresponding to both forms of the first token. +**
+** +** Whether it is parsing document or query text, any call to xToken that +** specifies a tflags argument with the FTS5_TOKEN_COLOCATED bit +** is considered to supply a synonym for the previous token. For example, +** when parsing the document "I won first place", a tokenizer that supports +** synonyms would call xToken() 5 times, as follows: +** +** +** xToken(pCtx, 0, "i", 1, 0, 1); +** xToken(pCtx, 0, "won", 3, 2, 5); +** xToken(pCtx, 0, "first", 5, 6, 11); +** xToken(pCtx, FTS5_TOKEN_COLOCATED, "1st", 3, 6, 11); +** xToken(pCtx, 0, "place", 5, 12, 17); +** +** +** It is an error to specify the FTS5_TOKEN_COLOCATED flag the first time +** xToken() is called. Multiple synonyms may be specified for a single token +** by making multiple calls to xToken(FTS5_TOKEN_COLOCATED) in sequence. +** There is no limit to the number of synonyms that may be provided for a +** single token. +** +** In many cases, method (1) above is the best approach. It does not add +** extra data to the FTS index or require FTS5 to query for multiple terms, +** so it is efficient in terms of disk space and query speed. However, it +** does not support prefix queries very well. If, as suggested above, the +** token "first" is subsituted for "1st" by the tokenizer, then the query: +** +** +** ... MATCH '1s*' +** +** will not match documents that contain the token "1st" (as the tokenizer +** will probably not map "1s" to any prefix of "first"). +** +** For full prefix support, method (3) may be preferred. In this case, +** because the index contains entries for both "first" and "1st", prefix +** queries such as 'fi*' or '1s*' will match correctly. However, because +** extra entries are added to the FTS index, this method uses more space +** within the database. +** +** Method (2) offers a midpoint between (1) and (3). Using this method, +** a query such as '1s*' will match documents that contain the literal +** token "1st", but not "first" (assuming the tokenizer is not able to +** provide synonyms for prefixes). However, a non-prefix query like '1st' +** will match against "1st" and "first". This method does not require +** extra disk space, as no extra entries are added to the FTS index. +** On the other hand, it may require more CPU cycles to run MATCH queries, +** as separate queries of the FTS index are required for each synonym. +** +** When using methods (2) or (3), it is important that the tokenizer only +** provide synonyms when tokenizing document text (method (2)) or query +** text (method (3)), not both. Doing so will not cause any errors, but is +** inefficient. +*/ +typedef struct Fts5Tokenizer Fts5Tokenizer; +typedef struct fts5_tokenizer fts5_tokenizer; +struct fts5_tokenizer { + int (*xCreate)(void*, const char **azArg, int nArg, Fts5Tokenizer **ppOut); + void (*xDelete)(Fts5Tokenizer*); + int (*xTokenize)(Fts5Tokenizer*, + void *pCtx, + int flags, /* Mask of FTS5_TOKENIZE_* flags */ + const char *pText, int nText, + int (*xToken)( + void *pCtx, /* Copy of 2nd argument to xTokenize() */ + int tflags, /* Mask of FTS5_TOKEN_* flags */ + const char *pToken, /* Pointer to buffer containing token */ + int nToken, /* Size of token in bytes */ + int iStart, /* Byte offset of token within input text */ + int iEnd /* Byte offset of end of token within input text */ + ) + ); +}; + +/* Flags that may be passed as the third argument to xTokenize() */ +#define FTS5_TOKENIZE_QUERY 0x0001 +#define FTS5_TOKENIZE_PREFIX 0x0002 +#define FTS5_TOKENIZE_DOCUMENT 0x0004 +#define FTS5_TOKENIZE_AUX 0x0008 + +/* Flags that may be passed by the tokenizer implementation back to FTS5 +** as the third argument to the supplied xToken callback. */ +#define FTS5_TOKEN_COLOCATED 0x0001 /* Same position as prev. token */ + +/* +** END OF CUSTOM TOKENIZERS +*************************************************************************/ + +/************************************************************************* +** FTS5 EXTENSION REGISTRATION API +*/ +typedef struct fts5_api fts5_api; +struct fts5_api { + int iVersion; /* Currently always set to 2 */ + + /* Create a new tokenizer */ + int (*xCreateTokenizer)( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_tokenizer *pTokenizer, + void (*xDestroy)(void*) + ); + + /* Find an existing tokenizer */ + int (*xFindTokenizer)( + fts5_api *pApi, + const char *zName, + void **ppContext, + fts5_tokenizer *pTokenizer + ); + + /* Create a new auxiliary function */ + int (*xCreateFunction)( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_extension_function xFunction, + void (*xDestroy)(void*) + ); +}; + +/* +** END OF REGISTRATION API +*************************************************************************/ + +#ifdef __cplusplus +} /* end of the 'extern "C"' block */ +#endif + +#endif /* _FTS5_H */ + + diff --git a/TMessagesProj/jni/tgnet/Config.cpp b/TMessagesProj/jni/tgnet/Config.cpp index 83e94be76..2e86d8668 100644 --- a/TMessagesProj/jni/tgnet/Config.cpp +++ b/TMessagesProj/jni/tgnet/Config.cpp @@ -6,6 +6,7 @@ * Copyright Nikolai Kudashov, 2015. */ +#include #include "Config.h" #include "ConnectionsManager.h" #include "FileLog.h" @@ -16,9 +17,10 @@ Config::Config(std::string fileName) { backupPath = configPath + ".bak"; FILE *backup = fopen(backupPath.c_str(), "rb"); if (backup != nullptr) { + DEBUG_D("Config(%p, %s) backup file found %s", this, configPath.c_str(), backupPath.c_str()); + fclose(backup); remove(configPath.c_str()); rename(backupPath.c_str(), configPath.c_str()); - fclose(backup); } } @@ -28,10 +30,14 @@ NativeByteBuffer *Config::readConfig() { if (file != nullptr) { fseek(file, 0, SEEK_END); long fileSize = ftell(file); - fseek(file, 0, SEEK_SET); + if (fseek(file, 0, SEEK_SET)) { + DEBUG_E("Config(%p, %s) failed fseek to begin, reopen it", this, configPath.c_str()); + fclose(file); + file = fopen(configPath.c_str(), "rb"); + } uint32_t size = 0; int bytesRead = fread(&size, sizeof(uint32_t), 1, file); - DEBUG_D("Config(%p, %s) load, size = %u", this, configPath.c_str(), size); + DEBUG_D("Config(%p, %s) load, size = %u, fileSize = %u", this, configPath.c_str(), size, (uint32_t) fileSize); if (bytesRead > 0 && size > 0 && (int32_t) size < fileSize) { buffer = BuffersStorage::getInstance().getFreeBuffer(size); if (fread(buffer->bytes(), sizeof(uint8_t), size, file) != size) { @@ -45,6 +51,7 @@ NativeByteBuffer *Config::readConfig() { } void Config::writeConfig(NativeByteBuffer *buffer) { + DEBUG_D("Config(%p, %s) start write config", this, configPath.c_str()); FILE *file = fopen(configPath.c_str(), "rb"); FILE *backup = fopen(backupPath.c_str(), "rb"); bool error = false; @@ -65,21 +72,53 @@ void Config::writeConfig(NativeByteBuffer *buffer) { return; } file = fopen(configPath.c_str(), "wb"); + if (chmod(configPath.c_str(), 0660)) { + DEBUG_E("Config(%p, %s) chmod failed", this, configPath.c_str()); + } if (file == nullptr) { + DEBUG_E("Config(%p, %s) unable to open file for writing", this, configPath.c_str()); return; } uint32_t size = buffer->position(); if (fwrite(&size, sizeof(uint32_t), 1, file) == 1) { if (fwrite(buffer->bytes(), sizeof(uint8_t), size, file) != size) { + DEBUG_E("Config(%p, %s) failed to write config data to file", this, configPath.c_str()); error = true; } } else { + DEBUG_E("Config(%p, %s) failed to write config size to file", this, configPath.c_str()); error = true; } - fclose(file); - if (error) { - remove(configPath.c_str()); + if (fflush(file)) { + DEBUG_E("Config(%p, %s) fflush failed", this, configPath.c_str()); + error = true; + } + int fd = fileno(file); + if (fd == -1) { + DEBUG_E("Config(%p, %s) fileno failed", this, configPath.c_str()); + error = true; } else { - remove(backupPath.c_str()); + DEBUG_D("Config(%p, %s) fileno = %d", this, configPath.c_str(), fd); + } + if (fd != -1 && fsync(fd) == -1) { + DEBUG_E("Config(%p, %s) fsync failed", this, configPath.c_str()); + error = true; + } + if (fclose(file)) { + DEBUG_E("Config(%p, %s) fclose failed", this, configPath.c_str()); + error = true; + } + if (error) { + DEBUG_E("Config(%p, %s) failed to write config", this, configPath.c_str()); + if (remove(configPath.c_str())) { + DEBUG_E("Config(%p, %s) remove config failed", this, configPath.c_str()); + } + } else { + if (remove(backupPath.c_str())) { + DEBUG_E("Config(%p, %s) remove backup failed failed", this, configPath.c_str()); + } + } + if (!error) { + DEBUG_D("Config(%p, %s) config write ok", this, configPath.c_str()); } } diff --git a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp index fc6567d2f..eed99950d 100644 --- a/TMessagesProj/jni/tgnet/ConnectionsManager.cpp +++ b/TMessagesProj/jni/tgnet/ConnectionsManager.cpp @@ -220,7 +220,7 @@ void ConnectionsManager::select() { return; } else { lastPauseTime = now; - DEBUG_D("don't sleep 10 seconds because of salt, upload or download request"); + DEBUG_D("don't sleep 30 seconds because of salt, upload or download request"); } } if (networkPaused) { @@ -595,7 +595,7 @@ void ConnectionsManager::onConnectionConnected(Connection *connection) { } else { if (networkPaused && lastPauseTime != 0) { lastPauseTime = getCurrentTimeMillis(); - nextSleepTimeout = 10000; + nextSleepTimeout = 30000; } processRequestQueue(connection->getConnectionType(), datacenter->getDatacenterId()); } @@ -821,6 +821,7 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag Request *request = iter->get(); Datacenter *requestDatacenter = getDatacenterWithId(request->datacenterId); if (request->messageId < response->first_msg_id && request->connectionType & connection->getConnectionType() && requestDatacenter != nullptr && requestDatacenter->getDatacenterId() == datacenter->getDatacenterId()) { + DEBUG_D("clear request %p - %s", request->rawRequest, typeid(*request->rawRequest).name()); request->clear(true); } } @@ -943,6 +944,7 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag for (requestsIter iter = runningRequests.begin(); iter != runningRequests.end(); iter++) { Request *request = iter->get(); if (request->respondsToMessageId(resultMid)) { + DEBUG_D("got response for request %p - %s", request->rawRequest, typeid(*request->rawRequest).name()); bool discardResponse = false; bool isError = false; bool allowInitConnection = true; @@ -984,8 +986,16 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag } discardResponse = true; - request->failedByFloodWait = true; + request->failedByFloodWait = waitTime; + request->startTime = 0; request->minStartTime = (int32_t) (getCurrentTimeMillis() / 1000 + waitTime); + } else if (error->error_code == 400) { + static std::string waitFailed = "MSG_WAIT_FAILED"; + if (error->error_message.find(waitFailed) != std::string::npos) { + discardResponse = true; + request->minStartTime = (int32_t) (getCurrentTimeMillis() / 1000 + 1); + request->startTime = 0; + } } } if (!discardResponse) { @@ -1124,10 +1134,10 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag if ((request->connectionType & ConnectionTypeDownload) == 0) { continue; } - if (request->respondsToMessageId(resultMid)) { + Datacenter *requestDatacenter = getDatacenterWithId(request->datacenterId); + if (requestDatacenter != nullptr && requestDatacenter->getDatacenterId() == datacenter->getDatacenterId()) { request->retryCount = 0; request->failedBySalt = true; - break; } } } @@ -1208,7 +1218,7 @@ void ConnectionsManager::processServerResponse(TLObject *message, int64_t messag } else if (connection->connectionType == ConnectionTypePush && typeInfo == typeid(TL_updatesTooLong)) { if (networkPaused) { lastPauseTime = getCurrentTimeMillis(); - nextSleepTimeout = 10000; + nextSleepTimeout = 30000; DEBUG_D("received internal push: wakeup network in background"); } else if (lastPauseTime != 0) { lastPauseTime = getCurrentTimeMillis(); @@ -1364,12 +1374,6 @@ void ConnectionsManager::sendRequest(TLObject *object, onCompleteFunc onComplete } #ifdef ANDROID -int32_t ConnectionsManager::sendRequest(TLObject *object, onCompleteFunc onComplete, onQuickAckFunc onQuickAck, uint32_t flags, uint32_t datacenterId, ConnectionType connetionType, bool immediate, jobject ptr1, jobject ptr2) { - int32_t requestToken = lastRequestToken++; - sendRequest(object, onComplete, onQuickAck, flags, datacenterId, connetionType, immediate, requestToken, ptr1, ptr2); - return requestToken; -} - void ConnectionsManager::sendRequest(TLObject *object, onCompleteFunc onComplete, onQuickAckFunc onQuickAck, uint32_t flags, uint32_t datacenterId, ConnectionType connetionType, bool immediate, int32_t requestToken, jobject ptr1, jobject ptr2) { if (!currentUserId && !(flags & RequestFlagWithoutLogin)) { DEBUG_D("can't do request without login %s", typeid(*object).name()); @@ -1489,7 +1493,7 @@ void ConnectionsManager::cancelRequestInternal(int32_t token, bool notifyServer, Request *request = iter->get(); if (request->requestToken == token) { request->cancelled = true; - DEBUG_D("cancelled queued rpc request %s", typeid(*request->rawRequest).name()); + DEBUG_D("cancelled queued rpc request %p - %s", request->rawRequest, typeid(*request->rawRequest).name()); requestsQueue.erase(iter); if (removeFromClass) { removeRequestFromGuid(token); @@ -1507,7 +1511,7 @@ void ConnectionsManager::cancelRequestInternal(int32_t token, bool notifyServer, sendRequest(dropAnswer, nullptr, nullptr, RequestFlagEnableUnauthorized | RequestFlagWithoutLogin | RequestFlagFailOnServerErrors, request->datacenterId, request->connectionType, true); } request->cancelled = true; - DEBUG_D("cancelled running rpc request %s", typeid(*request->rawRequest).name()); + DEBUG_D("cancelled running rpc request %p - %s", request->rawRequest, typeid(*request->rawRequest).name()); runningRequests.erase(iter); if (removeFromClass) { removeRequestFromGuid(token); @@ -1795,7 +1799,12 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t forceThisRequest = false; } - if (forceThisRequest || (abs(currentTime - request->startTime) > maxTimeout && (currentTime > request->minStartTime || abs(currentTime - request->minStartTime) > 60))) { + if (forceThisRequest || (abs(currentTime - request->startTime) > maxTimeout && + (currentTime >= request->minStartTime || + (request->failedByFloodWait != 0 && (request->minStartTime - currentTime) > request->failedByFloodWait) || + (request->failedByFloodWait == 0 && abs(currentTime - request->minStartTime) >= 60)) + ) + ) { if (!forceThisRequest && request->connectionToken > 0) { if (request->connectionType & ConnectionTypeGeneric && request->connectionToken == connection->getConnectionToken()) { DEBUG_D("request token is valid, not retrying %s", typeInfo.name()); @@ -1816,25 +1825,29 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t request->retryCount++; - if (!request->failedBySalt && request->connectionType & ConnectionTypeDownload) { - uint32_t retryMax = 10; - if (!(request->requestFlags & RequestFlagForceDownload)) { - if (request->failedByFloodWait) { - retryMax = 1; - } else { - retryMax = 6; + if (!request->failedBySalt) { + if (request->connectionType & ConnectionTypeDownload) { + uint32_t retryMax = 10; + if (!(request->requestFlags & RequestFlagForceDownload)) { + if (request->failedByFloodWait) { + retryMax = 1; + } else { + retryMax = 6; + } + } + if (request->retryCount >= retryMax) { + DEBUG_E("timed out %s", typeInfo.name()); + TL_error *error = new TL_error(); + error->code = -123; + error->text = "RETRY_LIMIT"; + request->onComplete(nullptr, error); + delete error; + iter = runningRequests.erase(iter); + continue; } } - if (request->retryCount >= retryMax) { - DEBUG_E("timed out %s", typeInfo.name()); - TL_error *error = new TL_error(); - error->code = -123; - error->text = "RETRY_LIMIT"; - request->onComplete(nullptr, error); - delete error; - iter = runningRequests.erase(iter); - continue; - } + } else { + request->failedBySalt = false; } if (request->messageSeqNo == 0) { @@ -2103,9 +2116,11 @@ void ConnectionsManager::processRequestQueue(uint32_t connectionTypes, uint32_t TL_invokeAfterMsg *request = new TL_invokeAfterMsg(); request->msg_id = lastSentMessageRpcId; if (message->outgoingBody != nullptr) { + DEBUG_D("wrap outgoingBody(%p, %s) to TL_invokeAfterMsg", message->outgoingBody, typeid(*message->outgoingBody).name()); request->outgoingQuery = message->outgoingBody; message->outgoingBody = nullptr; } else { + DEBUG_D("wrap body(%p, %s) to TL_invokeAfterMsg", message->body.get(), typeid(*message->body.get()).name()); request->query = std::move(message->body); } message->body = std::unique_ptr(request); @@ -2407,7 +2422,7 @@ void ConnectionsManager::resumeNetwork(bool partial) { if (partial) { if (networkPaused) { lastPauseTime = getCurrentTimeMillis(); - nextSleepTimeout = 10000; + nextSleepTimeout = 30000; networkPaused = false; DEBUG_D("wakeup network in background"); } else if (lastPauseTime != 0) { diff --git a/TMessagesProj/jni/tgnet/ConnectionsManager.h b/TMessagesProj/jni/tgnet/ConnectionsManager.h index 549a4644f..d389cb32f 100644 --- a/TMessagesProj/jni/tgnet/ConnectionsManager.h +++ b/TMessagesProj/jni/tgnet/ConnectionsManager.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "Defines.h" @@ -63,7 +64,6 @@ public: void updateDcSettings(uint32_t datacenterId); #ifdef ANDROID - int32_t sendRequest(TLObject *object, onCompleteFunc onComplete, onQuickAckFunc onQuickAck, uint32_t flags, uint32_t datacenterId, ConnectionType connetionType, bool immediate, jobject ptr1, jobject ptr2); void sendRequest(TLObject *object, onCompleteFunc onComplete, onQuickAckFunc onQuickAck, uint32_t flags, uint32_t datacenterId, ConnectionType connetionType, bool immediate, int32_t requestToken, jobject ptr1, jobject ptr2); static void useJavaVM(JavaVM *vm, bool useJavaByteBuffers); #endif @@ -120,7 +120,7 @@ private: std::map> quickAckIdToRequestIds; int32_t pingTime; bool testBackend = false; - volatile uint32_t lastRequestToken = 1; + std::atomic lastRequestToken{1}; uint32_t currentDatacenterId = 0; uint32_t movingToDatacenterId = DEFAULT_DATACENTER_ID; int64_t pushSessionId = 0; diff --git a/TMessagesProj/jni/tgnet/Datacenter.cpp b/TMessagesProj/jni/tgnet/Datacenter.cpp index 7b9c7e7ce..d5256199f 100644 --- a/TMessagesProj/jni/tgnet/Datacenter.cpp +++ b/TMessagesProj/jni/tgnet/Datacenter.cpp @@ -668,9 +668,7 @@ void Datacenter::onHandshakeConnectionConnected(Connection *connection) { if (handshakeState == 0 || !needResendData) { return; } - if (handshakeRequest != nullptr) { - sendRequestData(handshakeRequest, true); - } + beginHandshake(false); } inline uint64_t gcd(uint64_t a, uint64_t b) { @@ -1383,6 +1381,7 @@ NativeByteBuffer *Datacenter::createRequestsData(std::vector currentTime + 25000) { + DEBUG_D("wrap message in container"); TL_msg_container *messageContainer = new TL_msg_container(); messageContainer->messages.push_back(std::move(networkMessage->message)); @@ -1395,6 +1394,7 @@ NativeByteBuffer *Datacenter::createRequestsData(std::vectormessage->seqno; } } else { + DEBUG_D("start write messages to container"); TL_msg_container *messageContainer = new TL_msg_container(); size_t count = requests.size(); for (uint32_t a = 0; a < count; a++) { diff --git a/TMessagesProj/jni/tgnet/FileLog.cpp b/TMessagesProj/jni/tgnet/FileLog.cpp index 9bb1df99c..044a1dc85 100644 --- a/TMessagesProj/jni/tgnet/FileLog.cpp +++ b/TMessagesProj/jni/tgnet/FileLog.cpp @@ -18,7 +18,9 @@ FILE *logFile = nullptr; void FileLog::init(std::string path) { - logFile = fopen(path.c_str(), "w"); + if (path.size() > 0) { + logFile = fopen(path.c_str(), "w"); + } } void FileLog::e(const char *message, ...) { diff --git a/TMessagesProj/jni/tgnet/MTProtoScheme.cpp b/TMessagesProj/jni/tgnet/MTProtoScheme.cpp index 45a9448e8..968fd02a0 100644 --- a/TMessagesProj/jni/tgnet/MTProtoScheme.cpp +++ b/TMessagesProj/jni/tgnet/MTProtoScheme.cpp @@ -931,7 +931,7 @@ void TL_config::readParams(NativeByteBuffer *stream, bool &error) { dc_options.push_back(std::unique_ptr(object)); } chat_size_max = stream->readInt32(&error); - broadcast_size_max = stream->readInt32(&error); + megagroup_size_max = stream->readInt32(&error); forwarded_count_max = stream->readInt32(&error); online_update_period_ms = stream->readInt32(&error); offline_blur_timeout_ms = stream->readInt32(&error); @@ -971,7 +971,7 @@ void TL_config::serializeToStream(NativeByteBuffer *stream) { dc_options[a]->serializeToStream(stream); } stream->writeInt32(chat_size_max); - stream->writeInt32(broadcast_size_max); + stream->writeInt32(megagroup_size_max); stream->writeInt32(forwarded_count_max); stream->writeInt32(online_update_period_ms); stream->writeInt32(offline_blur_timeout_ms); diff --git a/TMessagesProj/jni/tgnet/MTProtoScheme.h b/TMessagesProj/jni/tgnet/MTProtoScheme.h index ba07b77fd..baf35ee08 100644 --- a/TMessagesProj/jni/tgnet/MTProtoScheme.h +++ b/TMessagesProj/jni/tgnet/MTProtoScheme.h @@ -657,7 +657,7 @@ public: class TL_config : public TLObject { public: - static const uint32_t constructor = 0x4e32b894; + static const uint32_t constructor = 0x6cb6e65e; int32_t date; int32_t expires; @@ -665,7 +665,7 @@ public: int32_t this_dc; std::vector> dc_options; int32_t chat_size_max; - int32_t broadcast_size_max; + int32_t megagroup_size_max; int32_t forwarded_count_max; int32_t online_update_period_ms; int32_t offline_blur_timeout_ms; diff --git a/TMessagesProj/jni/tgnet/Request.h b/TMessagesProj/jni/tgnet/Request.h index afd88b671..5ab9a0930 100644 --- a/TMessagesProj/jni/tgnet/Request.h +++ b/TMessagesProj/jni/tgnet/Request.h @@ -34,7 +34,7 @@ public: int32_t requestToken; uint32_t retryCount = 0; bool failedBySalt = false; - bool failedByFloodWait = false; + int32_t failedByFloodWait = 0; ConnectionType connectionType; uint32_t requestFlags; bool completed = false; diff --git a/TMessagesProj/libs/armeabi-v7a/libtmessages.14.so b/TMessagesProj/libs/armeabi-v7a/libtmessages.15.so similarity index 54% rename from TMessagesProj/libs/armeabi-v7a/libtmessages.14.so rename to TMessagesProj/libs/armeabi-v7a/libtmessages.15.so index 1abf40798ad8eb5a245120a785f2306cecaba4d6..f62e874675a06cb7015916b37f78885a2665296d 100755 GIT binary patch delta 508260 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 ~BtB5LX-dAH|jbbQiaf(2iA?{f>u* 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%0D`W9~WuV6RmoW=C_mYO!M9>yQJ;aB-Mgat~u-Y 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 delta 506359 zcmZ794_sf<|G@Fv`t-kT)w0^ww$G+b$QELaY#}tugpdhsLI{~g$ZjKqOcWZ;8X?w* zWy{uxWkP5)8bf@CMka*(Z1a1a&*z+b&OSXJ-|sxn``mNRJ@@>%_x7n;*Da}OT2kfq z%YJyu<atYuiz`oDo=g*#RW$X=EYj-e@V|-miV8G z+~R-deqWq#9#z$4Syk1C`<-Vu9~o-}lOu}%Pv+m2oBXY4f3MHLoj3biNiu#O|7MSk z<^R3$JpLUfo-Fgb|xAJ9tCI2SgMqGL=|Axl}TG`SYE$cih?>Lv0E)zQWw*l`9 z@mA1-qbCMhsWQHse}g9lTD8)H!iNM}`6ImfgXx`&fa(P!W*n1#ufLTevzjhGZw7!zo<%H$@Jn<}cm9x=ntz0cq3gQAzd;@?);Yg6$M zPUWm!@~{vZlZMq<9*T!?w2aTiNingOTl#DqUg>WQ@~KQ?1m8 z{Ho3W~JJI<`G{>XolomI=#l;`m~$z?13tz3CnFjujD zuI{BtIQablrXYSNjop6)SVR0P@-O$dY%BOn zeYH79E4I$xVk~+xJdJnbW?8{&xMsD#H7w)r;>vn|t4;a~oUz8=s+0MD#p!42>-P^1 z&kVH0s1glux#*GI&-h#YZf`;im#lqE^#Ru;+ahzg%y%-$iC9gG3vntgq&!hh3GSL4 z=#1KOoXL5W$>Sf!`JcP2BH1x(aBrH+s$%?!$ zvTHvGa0W8}Y4vb{a`;!YV;BGCJ`!N%$#(ya%gX5}>3?yuabYG-yt4LOR67Iu| z(gnEUd%b?$6G%t5l8`J5Tt|k1AN;LedBBIb<3~Nh{=#Mb`aDMku^<{w#1VV^txhh0 zIDvV%_ZQud*WjVOx`CBJHbdiAf6FZ!@FE$?2lW(qA7}l>m6SvJN8I|iK7#( zHT8yY(*f#{=Mlw%9qi|_a;4*O!3dX?9qDby@i;X;(CUctdTxkSy*W72uc-RN;K?IO z52@ZugYw6^oGDPq0Uemp;W?3|IHS*HwaJcIjw2?zoFQF}cQdEdlD`_Cf9N>t2u>i< z3bS6qo#a<*O*_tFXUUK!*cHOisF~z)wwkZW5c{~xN|PCW!QI3Y!@LbTfV-IV^)en4 z%IY_DoTukSg~#E2hr6sE*&}BNALX*z?+rXGBmo6qyl+{catH91{6rI z!0jttR;?`X8QgQR%j%E~*nkr+b6LSM|GT(gC##T*e~x>xT21%h3T`6Asu#)s@3%=9 z#Tn4!o-P~9nRdPEa#oeY@S(&R>z??@cnYRIk1xeFvE!`6rEkJpaIEy5_>U>NhaSZP zm?7>t-fkozjsltGo`f#!<{BO%{T;3wKhB~DJ@Nm;^~M=QaVm##yoyi5fkuN<@Ntyq zmd9t}_Eq$tw?}R3G7?5iAIE_6R_+PqEU9#)( z@P966i@yga_~|YDX&k%NWmU>CvQgw`H^~quz~*diBVmXNnBJZWzrh)-ZfYa=4L7{w za(1SGQH=Wc8Khi9u>g+8nN(QE@xsU8e$2+}@d8|Mj?0Q?5Q+F=+;zUos>8NOSV}?` z8)T*I(g$()W|tLCi$wfsTotY>cpV47OP9<1@8iUg#OXqjzYoW=RhG#H{2$);q;t)! zk)ti^n!`MU+V*t$p(G4W(_7VVrT{Uo7vh42E~`*hcrC8Y<&0znx8gROE`2|? zF45EaY23^uOO@qq#uYe$^~X~|4+&M@>)Wb9?E0U+X08Y}!9^}hq>D2giA!zHh)W|p z31=_{nq>oy#ywx_l{FLF%mP+sPkq-U5ncdzl?L}Ar;?-KVzP& zY1fNOjcNHCt}z@=&5N1FYTZc0ehhkB&HK3|gc{T2TzouM2i%BL@HpAP2l2VsE!~Kh zVCwap&?a1N#6QIih6ixR)N!^`KmZFs|7yCN0z{XN!Nv7-DJ>M9hI2n-sg+~k1e~+a zWtGbO894qqHY*vw0{1=7C6LqZHk|e%ciM8DxF7F&iECIQ6P_d?o29oz7TAb;s9;$7 zU7WX`&4pNgpz>1I+jvPb&fB>h#@!0y5?ON8CgnR5>z1E*fLK)Ly z1ZUtG^?2^# z#L?3OtSnAhoKZKI3cLW>ON)lg0io2FYb4w38rqFX3D8nTdLLyBFtN#6z)cU@dlE7HIL* z=gI#pj=en4YLcV=HJovwzN8=GL|*Ht8<-z(+--qYu-Jb^h5tuF!IGlKHpcN;NKLa;k8))Uq9y$jP7X@1V(hISBd7!mV9$$px?&8th zGYV-yISCCU?2;AM;rQ4=q#`j&Iq)v-7>=g64EmQou}OhHidn>SSptBNjSSM(AmwBa3yxh_^G%GCrDp_ zTaEZNxDBgWbO&~=N(*#Wu7^p;TBQqEjZ3hq;3Zs&#da*t;4R#^s(ME3B-^z*(3w0x zksOEBd!&DGS-p;roXC}0qu+y0#yy6Q!NXWpdph2SRkau5gr{}<>WK{EL=rk>yKW}K z5LW9~Ic|SOpVuR}AFBe_;AmbN70Tn+;WDfmunCvrWEp=Kw;J&s6PZM9B0&z7@5s>p ztRAa_xbrz(!2z87yuPv{C()6Zj`DQu1l)nuWK6(4ST$%C?lpXxO~Nh`f@J|Yc(;+E z5Dzy7dUkbjyVV7)R8I#!-k=%nbiBhd zm*KZ@#O6SC_hI$oG^{Sn9yhQ3d*5Iv$#wG|GW50U^9Y{8`xBgLc`J;?DR1cpB;eY& zs+Yx0vUA?nr<+M~^j19u7UMFk`tv3{z>82dAnwGC#8tZdIH6agyCMQLo~OQyDk^1zIJ3-qTCQwY)6KkmY9J zKCJGQ7UE+6AZL{?#1SsyGXJe2J}$_)9(UqQ;wduz@KhGB=esR2RG+VMHg!ND^AKb&XyH(Y>K1NKj~=?D_aVH? z$v816$XT3{a4J@-X9{k_(en5V+=dIJ&%^P-LCyfW(k7vZgaMgh3C;}(va;n3_%hra z9pvmU_v22icJjw?$5>tAI^2uZ)NaQaF+t9i{|pymx2$ja*CbSuAVz^_XT}Z20srF8 znCfMd7mR2eSN+lCNh5ZRtKK_##xYfsgREV0pj^ekDw(NEEy4XWf~+c8=zX|wO7#Nw zj1k>atCzVa+2Mx^NojESzskjIZ8KR zCGNp$lst>WIsI0dzXf+-&coBkZ%(UzVoH=5e#Z5fY&0y;2g&)fpZ}Cl={WjmFmO zAm>Rh0T)~m_aPYj|E8p?{W1Sj*IbT<|Q{Vtn?tkz&> zlX?(mpBCiYbU%xGHuA_R4|o~3&u8w-VfhZOJ1@w2L-aW=xjvYeuigrN#6?SZNFU+# z-#D)**m*-_2PH7qv&Va$eZ~8a@xr-5&ZFWnxGj(6R8}|-H*-nUFuDv!&?7mrflIJe z%4#U{--oN73$g}fgPz0{bzA~(gKTR(34@R8<@a4&d6gcw-{5w7K&@uKh`7-J7vFaX zU#@#>ocKP(os0?DprdgXPLn!dvo-z_BUCZS$-(FeHf zH9d;I#m%#Vom-%PaP5X5=Q~8vN3!;9)N5k`4sXS>2TsF-^ia4g|4f{}hxiEVTF*3C zOhQ+3u$3;)U>PpUr$?k$;7WSLB@0-G2VU3H?j1a|Dai9F88NMTg*WR<_!BN@t6njE zhMn|=-Uufo(h+a!p>_oBoe}KJ-ji|1!eGz$fkd(A<8=N_lg%i?sZ3rqG|RAiN09Sv zmRg*4ulMsc;`rwhS?`kXq$A`|YazqHUcDZ5hy(5p=DShe+4_m_(qOAY=Kl^`zfys0 zzz~ie407HdhaW{p53yd#j-P^)|I(|&F-Ni9^&Zgc+i7Gd{!g#ym*HMqC@Z)Pm(%hH z>6N$!XG*u?3_slipWVuuhT7ly>=n9^~rSpQFcLcBDu1kZRC(+|SB%vcmx6qo&g2}hb)fpX$ z;|dsRvc;!h_tn*V6E3v}uVXIBcHBpDgTM*BkKrkA% zEX27-IreCVeA-)jQqLhnD;d;?TYz)k*71vQ>fIq$y)5u*T(p%DCL6R253C4r8u$Q? z?$Ghaa2(~Q$o$XQB(#!&6Y~s>S8zpUh;vV|1@{~AP8|D=zGR=`Ov7K}GQ)dt3sw#M z6IWgm;@mXZfyZ!$+jNEq+-+o-jQ0_*mkmtB(U*oe&kJ*K-Mcz|7A_^OCixLJ0N8?`N^|D9ea2xSj@qS$_h%-ni`CMl>31{bpI5$1#;MiUr&%+U1f)-g|F>WQU zo;7S7el3?&_UH=Sc1?)0an#{~ouWMEzi7boBxLl2@SyAUtGND4-a5+)w&3_(!OjC) zr-)+}|5U`k3U(gwcHt7NZuNh}RbR8R$_D+8TfQM~%Y^+TboJ>B!N;*#f6FD1@iEx_ zKfQEL!WmetoQLCx-P*~xxKb}<>A2U3pN%sgTo#aDK}vkNStJx&=hRP@hLquZ4yan7#ZTM ze6w)VDD6}5?wAm(S$6r^xMrO8r8s?p_I0>CTKiUUdIW>HGL1)EevrUaKFIm;UUgvN5988IqZJ&7J6`&c*GCUyVbvB=*LbM zvQd|?^hU^Q8iAXu^in(#*UizMj@?|6e3}1fTy8iOCp{A4Z1-o`B;=8hArDxHd#F%u zkGzmzw<4~5Gfw7njVk|Lxa@MhS3Hc7oNg>W1(pDj9-ZR7yxR{TqW`wbLy7ajG%7Dw90TV89I$g_&9bSr7v&; zE}=o`^7J<1^wJRLLp57*8!nddk8vM&lBFI!jQWIlSUhWL#*k0Gs=!R5G>xEk^+a4F@x<=fAb&@?N=c^BD& z>u=K)Y!d~f==euC{&w!6WdUE}%-K5Lk2{E$$@u@_xD)i43OJDyIMK0fMUar0>Lgeb zaQ;al&K+d}E~sG6$TK(rTTEJY$9V>BzK<~>;}_vNuCYrtV6n(QmmZPvYjH$ch`br# z4ziepdJbR@_v{3B;z}~qOIP8#8oiD_gA-5I@%6aj(GaUb=I_K^M*LG8ceB3d{uURW z65@SM7I%<8kuXexDqskgb3m&s&_9()eyZMC#^BUjC_tW30!~cljHGAb#?xd4lz%$z zEYY)QAx=Ks8~5Bn7KnsfL!1Y(+i^P?+GGPNa3%2q=_hdM86nO~qV+iOF?|9b;)o1p zm0TA-!!5+sAp9KHjGwAk{&`E{{=}~hSbRvUvJTA=AJIT?w;Y~g7GjJ#I z9GU+D>^?_7hvnm%b2(l%_$EAf9(Ry&@_^+eglBU`(p5MCw@a_a{UR=}>00c%Q0L!( z-B`_{w{bSklgEFAhglib7}|wfF60hUopC=2?N{kLzQ6E3oF-cwFqct(wcgqyajCG3 zPr_Y=x`Lx{@^#vCa2-~c^lUtMowx^<1zbi#%MEmy^o_XmMpiQEyF>x!kLR?#A18bm z_dKqxk+%5CJifdYR`CD<9Vf%9uT(5Hr=I1@by*OzTT_hcRDqX%=kJ`z&q%FkSCo7nZ zi?`@$m4Q2PhKw)7u?%vxnHAwu26=)vZdwvH*KefMtD!)d)&H<%_rFFKXCo`y1e~3;z#9#U@Mg2S=O)TaRlxamKDa~!k?;N znmfa;|5fjz=^|TPsPi~=9&SA?ln*R;>n*}{QK8Ocx&z1ltnW+i$I)X#ojbLaIF9(B z?6__mJ`m!3XT|R{CQI}4;m+OqA*WFw8Qk)K44i`1`f~?PH1b#BBI0WHZo^r`)y?;p zxXFl*Ih}%y_~EBBS^A9%7Lg$?Vx-fcrP%$8z71%`xubNv1J{IW@5GJd50@u!$QcYZ ztd^g1aN=J5bg)X!X|KiMgZla7Tbz~> zVY%cxfxWosxiF_ZYaS+ln=F4ePDqW^lO>acc;kSpapG_Kn%CpHH%D9bvVfOxz7g-o zWm`r&x0?Tm{KSh?g=ezfT|LqnQ}c27@9I{Po8@~+=rJ;^#IbBg2xZwVB>%% zaqs>(&k8ImT!UNp#d+?&g&T1v4RXr{t;IRR)i0&bv3DEA4wBq&`2Vo`0Cy(=-mxEW z7WY^Fq0W^&30L5FiWM)^ig6Pbb3=G7ZpP)(uj6*3{H1Ea1|K3s~Q}Nyw5zVV1}c6zaS! zxJ49z3*`aLxE_lJiZk4U8?m~>oO(7x2df^)#a3{rRVMRSc(&8@@E`dy*Go;J{})xwa9hm zu=Ba^IZyY&v3U3#eU7K&T;p0^g7XaDDm**Xc~Nv9uENFgqP>M(Cx$w2`hGZ{=@fTY zq_dlbT)^Nci*$aBVg`=m05y8g#MWP89D7G|0ggA~_u{@kb-WQL8u1RCoX_>G!M#QW@8j4fbOVQRzgfXTD&+VYSzs!*Qgx5z;bcyrQpWGY5jt*L zO(Y~xfm>$i!EQ3dN&ka0kJc4Ty_oWeN6Yv;ob&_tJ93aM#aYBv4?K>GkI~0(!39qF z+%EK!&}UQ-lgk|#8JHuUCG$9(K?8S7FUCuYVw~;20K1JIdJ!kD(KlExXH!8dsCmLRc z!{_Sq*I_pn<=LXZA4$j}Az4=NpU7YoFz!;ufZ>l7H33rI+_<2)O1BreAJtnG20c$ig#Q#e3u$RhvK zSiG4_)x&M-#(KX}?5G0wCM&u5U%K}LaiEquj6pt^?K=^iA$~tb(Zcl++0Hg{k-|l#5Fbv zqKicfvq{K#In+v(&c#hFq0Wn)>u}j?`X1*F>}uA>SKtA9NL&(8-V->H?OUys>u`s$ zoxh3g#B+6*enLW?;oZ2#@ZY!-x5x@Yu4G-fB-Bcio`6fTb$N&5CM?zg(V!H(+wd7z ziv9n5o#A{kWE;-MmAF_IumoEdaQ7=+g|o0*x)B#)u9T<3^|%Mu$u56S#B=ls^j^vQ zOV1B;o-KbQL&6nd&h79J&N0p~@G2T)+;<&<%MDM(6^4(&HHJ^dRff;CNoaa^f@c

Z6suW!nBhGY{yMTgZgo^VgIXH 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

RB*xW!Rj{8dQgg*Jht^rnF>t z#!2^vU-W4xUHn987O*c&Bdt}Q?{AA%9fg!T8p3i1nlM_4PuL5IiARHZM|K>m#Wi~3 z4LF{`E6v^L^3&+jXk{GkcWC#i@~LJy?fF#sQh)p$v=SX!KmKeQC1(J??9Qd08A@tE zBem^I)$Xp%rHvU_JCsW|GXU^wsL~iL?a8^6ItG*?aUP8rqd4T)Tdw>xfRyI~?92*E9M;>T~1Ri*P_J+B!{#}2G*4MCAMEtsgVm?y_=&v~3 zq82oevp-WJ1FnyMTQbbUEOig3T}Z>dAXh(A8taSUISM>nyka#OKL80)>6}PN*CP^ zr5fqcU0OH}(!PHVH@qh_Pi~P_nA|*%a}`}0r(_#D?s99y84Lr?BCp#2C9db$H2O0%7UZ!C6k@~?mZo==A8U$UwFcqKNm0n1*15)Gh*l>_{3 znWrcz%YC~gTh>{Js53)++dyl^E2)v2-YYAg^P_x~Ai+Rr-a)zvN?PcT*dz5t{%`l0 z!(-&h)b}BMG6BAGcA7OosjC@D`zJtGF3qKP6968Erjv1^(pT3*mZh4vXyQbqg=Evx ziAq91{r4&?pG}u0Dye~gO#Q!oUQ0D5Db0*+cK+LEzxRH7GL^C?DRH6a@LL%sV7Zks z!8STHNeM2WxyfB3I8JrQ{s5cApTDOklK_+_r&8EtB~d>FS5CA-Fb7lGWZaJb)mkz;W`76a3baN$7fz^R43RGZtbDfM+V8dHX z^`|Hu0%G9+T_*lq=|c0SDD7j`^DkNM=CE(|o`r!_GJw-{@UHR2t`ubN& z&ICL0`&62psl;VALRvJ!D@N(aZ-8b{lg=x;8*ez!Tdcg#y@zUA@U^fNo$tZ`KTEpEYn^5 z!})8pDocqB`$v^g{x42kca1J(DP!e1Ur_2)AcMi*(YUF~=&&rPjBSH(WGCzs8PHnr zNoH^b>zu7r$OJ3X^9#33!csGnv^2bP{p>c(N)*OUtXWEeX;sS4bD5FOk~c%N74dyj z&)UCXt{AvG0Fb~75b6>=FRl=*3Pv>SQ3iUkk-W4;>~hTIY7Gk?7;p-N`XhX{WDp=d zUC36dXr|JOY-mnqg45vH;RDZ^3Js-NIZ9MmJa&YzVGX$CfA+80y9oC-kB~(Hoy!4t z^E~&- z?R)E1ojP^uY<22XnogZQQn);AZy~GTdSAi&uGfDUDR4eG#d%%M0SWnPTn*@ymtlWV z1I#9%}lAkAEsV$n`sD7BBNQ&JO`kdh(Hqe$R5y{1-0QeSF+JyUe?q z^y$5qv)0?&OkeIDQ#4B^vUFy}oson|`|}kFBToMot3A87nUl-C-5Q;kFW2rCXG;JP zIp>xKO_LSghuo`zX8j7>_W$_VoLPZizHX;!w9-4n{Y|yGeGkg_tAv0)JuR`0u%{;ft z+t@Y7yuJ!6?~!+3JiChE1de*YxY|3@J^39oV~zK(4PNKuyldY!Js-nP!k&8VG4B#g z+aXonc5Uzf2?UlTEZ_Q3@wvU$J;ySw+qlL!mswwhO7;+W2&%ku@~_u77KggPx};I) z|JQG2TIb&~10VMe4bBlc`q#ymLW1HkOI_>Fz3~W?#Gpzay`2HnbX7i)hV16Ha9@eM zUo;7Fo~n6Lia(@edwgLsJ%u({>zkpxd!^ecC~bJQ3|0ev6qmoV(07go4_glFm+_fu`$PZ}aq2_7N`eFA1AzYrXB=k3V9TuZ7Vr zVej`^Jl!9d&(`9$*>5tcz3sejV%l3A+p2LoX|AhAAHR{V=N&aOs^L_2%Qd&f8Wf&CzYN2@XAKM{cXx*5Fz+HGzYZ19fh zShJKY=kT6a8l8x=)xfdUPZV*oFnmt#`E>tuAJUx!-R8>;%%<(-rtL-?0YhYwi2C3o zy3&rAM>k?EK5TYxMB_*|FK=W@-)G_*QP?xyOImU$VH~y^|Ft3o%Bq}URM45EiB@Xc z!?X^aBnhB*v^{SXWkTSQ=O<2@ZJSWyJDBXv)Y{$j-t6t~ZO=Z>EGBJwZB_hUvuv~X z+MuwMQXPs+t5v>aw(9t+;(lJw;`fw_o$<2rour4Vir*318DDe~PpQ~82ERk!0Fg(} z{XEa3yk$)zTu=buu?C2hU_Hb;E3Yyv@7Tfb)6`e~`x+?q{wX6YY!C)|Z z=!H zLvJeCPcKy1M}h62MT1|ze@kerN9$prR!>#dY%-5;^|l%nLW(3sU3hEVAE6{fp zZR%Mju=Gm~>2V@DY*4K;R^hEkRhpZC8C!KN$r_P~=^j&G}VcsbrxT1&u#sv=RT_>ek3oernFsyui5ZEuC7K*#7*&6mb{3jHJkbM6lb%}0NpP(tT60^6K=gtIUAA;Pdzk=qpUU(n%r%U4qgkr-e ztFixlLxLXI{?s|nreu#A*5o)qVP^$RmC!Y&fBq}o-bWsf$D~5_Fei4h$PzkXz65qo za?Ny8Hr6tEMWxz+CqPPRvus&73E^O(xwyPqdZ!4Em6u*WjxsYJ5Ib z)X&ag$!GA^*gZT~z>mtfe1oC`sAFUj6B*g-&s~S{|Ae>bo+0Wbb;IJFya9z2+7oeJ32J6z*m%C!FR zV$#J>N}p6W$y9p6LXHM_-o)6}fRmW{~SFa!al{KFw zqylB*GiKJ(XaITPF5Gx7W!=Ve+NGIVu4Vekv3XE!PN|7+o79GLeoQ<-{BEFP2)6X3 z$nD6K_JQ2E){vAIxy+gUxfm_uBR6xewzL^7g%yTCAUDY9Z$L;j*2$RpuXLRlQHBle z9q`tiisuq+$%!wkDafH&8{$tv5vibA^C^=GnHGEUYS)uFoUWn~$a8R^(eX$D&-7bU zNads@s7wPo=FYA>*O31z=MHp8Jn$0y;znq=>2*3x^BmfWfbn6Jvh6d{h4{jIf9=f; zYLlTtb6lK*L!2W==PEJ8skl|M0fw0i3I!ehjo&cKAqH`Ndf>@o7eprSeEtpb6(}Cs z=Ad_0V0&7+wINL!XupLC&LB^imOq?cgB{EN9`?Nsy|iX{lrcd0zi=9n6LtfMMFk-z zWCF~EqW3Vb6JcO7d{lM=70EP)A`z#ovtmlK5QMJ4aV%xb27WtZLeFimu+R+o4T54v z)K`N1@ac5Y@mh#}US@|=^i=vmk;~bp5PT!{cDxB{NION^U*!udGRK#<5m`BD` zZ=eQLDO1; zZ&G>JNne!Gy-*Vg<3PTbQ&f-@f_loOj3@S1%V;WqTU)|CS0|niz^5WiG_*pEcO$Kf z+2!GfYB&GZn-}bkI)NyNruxWOS`8WyUW_NZU{S z%qNKzErRLPg7)mqS^}U4x}J#~XmlpBcipi_F%74q(*=BpegC$2P2jzVHhd4`xfJz- zZrZS_dd81i$08R}-;K<-UOl@%`wZC)s^SNpfCJOOlE9Mi(yqjF@sZ*d6(Bi{`w8Zc zzeQ^$d}7c{QH<-HBoaIz;6s``Ui5av^1H*X zKnja`?EB~WzOJgPaSXM~<3nANHqeVYiUCE<7yDK_j=%$j$07&19ScS}(cm;*D$}DH z)`ue2@1TtX-Oi9KcN=uLGUlIX0XQQrVy%ur#n?y-f zLY(a}(VT}F<{*z$C$VDxY8cZ7viLNLbuI}to~Q$EbCT}XaVm_^77(MkuWdzgE0nhz z0Axu?lPD&=N5c*F-^GNmWykxG0$>4Qb93*6jyJH z%WYj$y((5*z1sZY_ukgQGZBvur4Kj)rE8*6{5mEP`fE6W5Sdxc=E+|obL^6H>W|L6 zR+DtTu2EoB%wOFss^6Jx;>zIk)dNLmvboO=07_=zz(($M8(7`KrBZ_OO?__qGtvWD z%Kx~(>lrh7k9X&IY>PV4G98M}4_rQbpzE3ta`|jZK=;RR16PLk2f0ZoN$VUsp6`G4>^s{opD&;hjliKlX+eHl zyoX=%ud$*|TuSs#zao$|%B__z-cZy1Ls%pkcu1qIZ{^RBQg&YeV9?Tg@N7Q-IhbZT zh`$`b8yVEZ|A@ef03?SEa$dofcqK#oZD2#B101gtx~%F*l2zsD#mo!~8=@Mw ze`Z*Kr}-TpAXd=7Xk5ph;|{2R)WvDVDN78vu%gjn$6Z`jmJ*ijsK!ed6^M z)$w5=l&>N<2MXij6&DUGj=N@~ro|ASommSQI74&Y0FCky->Iisdk6Wz$K#O<}ew z=auqZNptY<&DZ?*f%5=8Nh@6*&Z((pbs&*JYys0EmF&>#pDzll9{E>Dn=ZwywJV@) zvQlkO9*Esh5=qZ-_uHobpS&$RQi4QE!=Ey@|H<1fShF;~ckI!K)JUm|nv+7OrcObi z(!ICqQP-8e#Ll(-*+(PWv7TJL75%v~zRz{k5kbd^b*YyEj(d#iFZho}j<6OJAdeQ& zR&~W?N~k@_NxI|{wo1@4=v**Ri)8>_bNuTe0t7$3kyA$6x|`{N>UdBZM^5!t%Fs(V zt9s0uhPK+F5hZ&{M>$w9|4(3YN2)t4CgLt#cP<5DmG++QtNJXBzFR1U>Aszx>AN(` z3VKrgc;rAkjKK3PHmaC{i+klv(BZy1u17trDS0n);JKrbgL{v%rg1cqU2`_wMQm5bvQUIlyhNY4POEH!}nT!AOhe^jm&>j<%uD*$J&I#=O1no~>;4<35Zr7dC|6Q2;D}^iCwF^^`8K(7_D1 z+F1=<1_#r4_rPgq{$^aqc=|~i6Ihum>J_h+!uVw63 z{FVmlZOkd>Z0j=HuiRz0n#*wol+r*6E=!hWtct|qUGLr8gJMzm&AZL)=e?a9{r+ui zVxEaH$p>Eah}rYJcZ7T09p<~|z2iDujWMTh8t~1zwc13J0VYq=Sx6$ZEsUxian<}G z{H>Y04+nc+Q?-vZrxR;QvhQu#{?P}}mEEsL>KBo;u&xt?N=j3rI>bn0!a`A=`E;MR zz(+cyJ<4t`T4hFiOx6qDPTsBP+e$MvjHy;dNNp9KSzd(3FqqXGKXEElqN!#!3 zA9U3a+YKIT`hHCQiK=)tc%8*>XL$vFEG9k++={BwsD3cx_EPubkqWq&i{GFi_B$mW zK^K*~OrotnW#ua(Z^~*h2^UjOU3Y~-v75HK5wE1-Eo1EbrNQVT5klZl^m~N9tFPs_ z!c<9x0|bi_t>2A&--fG@j5U<`(Dg1fX-5V%+p6) z)-nAS;2);EoBg5xjqDWP;%v87k*(+7^K6zCOcbv6?R)`G;tNO0cK(KS>KEM8H@sL} zf|v7#95e~b^KsV?psevRn#}(dy$#UFFnZ+ke-K|X*TVd)j<4(1I;>OWwdVgJK)d~6 zmY%~A$z%C)@N<^e|3iA-T4$Ru|8@m>2|Bu%ieH>#brgPc;h6)4@5nifv8Hk^A( zt5Q0qsDi|I0D>5DI96%0w-kjWTwvhP;{ML&a;kv1ret>K(s=%^HPv_fkt{2N+iQlEM!GWC#>%LTT zng|cy)_8#T+Q_4+GT6`i!1^@hNEkGq=Ws0&emcB=A5*Xx->+*#mr;f<@ z1!N}WwCI>>H4etgU>;hgTu3i!x}S=a@!wgh3~h))P-KO&>Rj}CVF@xngink2^#sR| z#w{>;fd1*sxcj&!aDAWtF6A^N6C*^V?>UhD0Yo~Hz$8)u6=|r)ITmBUpRzfgX6F9c zTM(qFhiFRhVN9ZOkj#OR{JOk4Qh=i(t>PrIIj{mV#2CX5K z@DwZFcLN@Ywy@T<5oTh9EL3|HX#rBU_#Fw}rF zud7H_jy;tx&!l>w#vbLv`}mzvy(FAc(LS8zKOJ9K@zvRMfD(z7n5w^EX_Zh_$NwLq z7t6d?!W$O*097rdDiO(jj8I9kNk$ckI5oymHJ%UCm^3A!7|bQ2DGPInz+@ud>$w%i zIAH#x;ndInc8U2PbQr+T1_r>0YLtFC|D|_tasq+2;~&`>A8cXHl&?Q0%b^7dfp~zc zT0(z|vm)-y`-=3it6C$tMO2(GCR0BPF3`^ZJG;#jFL^z|kizm92%T9kl?*Xm2RX*X z9i`1kdtQ$@rf)yQ9ieoh42BCnm463i=9hhS7EFMwsWHsve09=QHYh6f?9NM<&(ycy z09gJi7zU^gPC@e>B9BR`Y4@_XkRa>fFMC@RYP>X7ZpQ3#MPBs23MXx!=O}d^w+=@> zG*vHqo3d50D*gaq){g}f-gU_Q`DG&Ea;waDFSAAS@8-H!2r_uX-24j5%ZJUfSG+H} z_pCAfUM1l9FSnW5uM$7<GRf zbm|`S@?r1Wt_RGjBW&_GZ2o-2yT(0!mKpjwfu`Lzn~raI`{n=cO*kqjOfOv*Psg;< z%AvUD!fj^B8-(Bw;XMMrZdfu9!40V>u;HKgnoDnZ^E8C z9LGLnk-o+HOe=N08Th7moPFu@%je}@O{I-Hj+rOl^!6EdHBn?)MD*lTCk`|2RJuGK zC|~a6yj3~X`_-@24qS};nNKC|1?xGUTUKIw=-G8R>A5~yXF4DCZgXF~+8jIToz!O9 z%!}uhELE`itBDVzo)bH$gYPY#X@C1*GvqDrlonXBt`eR|ri8Q{japWbz{o4BO}As- ze$8C>CWscck13Z}-xPt}YE~U%yx%g<9rHHtd{O}ikha`@X_S&aeLt}3UMsAn$$ObE zV|SY$k9qqvt67`rq!dkEbJZ6*)HJIMC~D}N8TGce^(gILDuybDRU|^%(g9KyADKqu zdDWQHWL+w#(f_4kUua9bQ%Jj3OT`xVq!Yr^9_NGDWF{aTH!o9VMggufCSIcg^V!?p z$*%Thz&qZ?0}85l#w&MIF=Jf}ZHYy!|9w%o7v|ZW>Q{LpJyNIKUCCTjYs3F@{_=U8 ze02pi_zTRYcf9ScQW~c$GAHF=G&%Q}1}VTJTj-bYm^1 zVBBOtWI*qhAslitQH#%cP{T!GTo;XYBu6Ncs3mq@t+v+ks~`PG9dQcvsm z>`LT6V3g~!@7ndn8_C^9e6qSJ`EMTC=stfXEq!P{KIv_hhgn-U5~iE_zbUaS>$Z14 z9$s8^!^g|akEawbS7tiC@14iU5MYPAaFIOFjnPSvm-8h)R1yEe|%<#CICR>%eM?+n2X1 zF7->}AcArNKlm+1kJpfZ514*wC^Fbr6(33EQpx18%E8GaRSYd|kAA1k2(it94)8q9 zz2V%JyAsSwzCE#cg`qbnyLD+etBmuP%c|mk7fm^XUlo_ClSd)>KLwnYp#r5l(~ymx z^zy~g^fF1IP^?EO&nf44oT*R@9GX37RZL=!2Pa3GKYvK(HxNRfnAWg@^$t_hS&b7@ zP>no!JWnr^b81qo5Z>maItL%Tr->BUd`ffpS|SX5V&p5T*EecjPH-Ovffg5g0b(BQ zxcm#E0v#5D5y(IWLUxKP;6~1jkJZxoOf&bix417H%w5g03FBe~b^!T}5j62VsodxI zWV!B)uj`GSK~=2MI-0f)VQ9AiZNQv3&DtL|)T}?^)Sx|YoT^zT)v&$;sEAC2@v$Lv zSQH?x!2?eTg09|?Ml5N5-{d=}C|@zYN<-$V=AgeC;_1smF6mXQX0dhHw7||xalpn`b*{l(=J7LZSqqrg&v;wqI=!LCS=9N(Y@ZUqoPF?+V-eiW1`*4C7B z&&@WU{DV|aVy;uynnoYNAFeW2f8?EZvyeXnYtfJ znCg*3=a-3Xs$rAh8~1yWdGKFzPi z_fTZlXXI^5PT?3VR#w&dOPBL?pQIx5Je3Al(i+BatQ`=kP^Y3@X~bPw?TdEh^55rY z>_lo3tNKt4=ja*8O>d+vBFqbTiOMYpKrw7YF5irG1ewa}n{YOYO0uk&)x(rU_;sp# zhZpsgs-gwFD5nBB7P3i&oX6akNt72@Y?gik#GBV*&$LG7)f;>%N1c@+4ZYGa+==MO zB9=j`Me@$w#&0d?=!~-lFp+JLQa^D-dTTKznkZJ;DHdiXX{pNL8p^|!TDl=#&{Zy$ z#33x2SmPhK+|BW`fUbl6_+Ur&HYZn{HgTl+;9L+7vr#^VJ;Puf1!eda%+3Ep{=4Uq zI(W`vx6wZBrm2(4Ka@iUwVJC==5Q(jSb>(-#mm8#PH}KssuFI@f5|v4JY^wPDiJID z9?7)cn4f9=v?$YZbKjKfd+yJ2jhdTjIZ3HX#$m(ioYpen!&}yg1_so=N5`hcI;ivL z6$<4Rho$i|JJ2~ALPr{nug{X!h{mmob@8kav{g#DYW2!!4x*tU&nr@^K6UvA5%`Hw zO#gF;RyqBt!kU&vGi%kJ0!OCdmB_I6>zN6Zdu~%A|#p)UIx+d*~6dtYr5h z57E7cOuw`2seX9A*?bnsoL6PuILp?&@m1#RS#O_~>-n~r@Ad@-MHI#1aCsZ8ya&ccuhJ@pkx5Y|YFHojU$ZM1_cwG_ z$Qo;^O6n?=2Vy*))oxcj>zYI~q=I_&J|X(6;`;-5!+a=c{zQJmR94jY2i}OBn?{;J zfa>ep%+{l-cpoN=_{JXqO3xJzdUf*I(>&WB2vSis3@D>9+TP||^v&FYzy|&=&7Bgc ziUzFZ{H{U{;REy&$AG-LM)X@AikaT+!s)Q?oTT>N1={)a5WBA6F;;~}4h`JDAs11Z zixTQ1xiD+J@L>Qi0Pra+FcS_jKK5zX%3M_iORL!Tb1jL#MN`F4Q3vebPKza4;n0Ze+u3$1%y(P_Tl8V=C028otZO=~!6I&ZpE}S;i^Pdxa^Pi48uDLxZh zDB66F&XQW5b|%J-tK${SG?om@0$WV~&%MopBjcCPzbQ7s0;2>vDh&$Nrue#^t;1UP z^AgV1%3piV>p$#pO{tr`0&C(u@Z<~lUNuW|d(>>t6@f~$NT2Hg@k<5LBv6=^xUp0u zn0SiIFSTx5Y%9Q|mTd|`4|FcHontbI1);F!curtwRBAvm_X)sCBWnPxVPFy!g=0N5 z9MHjHFqdOBiAUxVg5gs>=BoHH2wVOHd`uoGNCFZXIHpX$;yGmq*Ls1;#F_Mk*UroU z36(;Ef1A1Y3vY{{hk}yIcRQ6aB^fduyU~jV}u2cz#L=K=aJcdp+OR?p=~*5>CZ?N%=B$wt6GWQ>O>V2m9Z0rt?`K(^MWD zc#B3jVu1!Uy&F~|6KcU6az}bFOS*fcu_`!iM}`~6=_)hkOKT49W&?PWY(Bzk}RooSrft zRySvK5rv)`_j6dK066BR-j`H2g6z{3@2b zH^=*-7W*KZmq>Y{uq6$RKZk5$G+aQizcdX6`}Y8o=@kIL^K#-=r6|gOsCl6ICuP&& zA|a7F=MDnE{aFZRO(ayVd>=<|dYg{AC;8|j9^DGSiUU#mdjl+!6A6s<<`MH4klbpj zIu$kPEqx)L-@W^Oz$3*;(r7wUu%3L5g^!CU{x^94)U7HFjSu zi-%DLmc#(TF(E&dYYLt;%d+T)CJRKC|2z1F%H{cugU|Qs+XyBbLGNT5z8)V-V?u;N zqCrBg`CG7Xd%7XqyDOI?p-qs%mhQRNRyHlj{ENj_NKHL7NnoUtHq>n7ju<_@Tb&NwU3Xakzd#`$BL6Zm2;&n zlSsor<)+I&aVXGn1Sp*b0ioDnI;pr$7^X)^$tl-%tpo)ZW4Q?9{=)xK@ICbNmsFmf zER*_+GP5Y7{tMwkjokpa7bb9}vLBT*!@;b+pCMyGG#$RZ_W-N(Ux!9-w>hH@lt;e{= zaNWQ)q4TB7lkUy57I00PLzW-@*YQ6`|L=jJaesJDW@ophP=~q)S)F z+iqbl_?b}X+%kt{$-ZggUwPLwJH_|DCJK#s%-Zt1DTT zNOfv+TrwDji4F80Rxs=$QdrwVur_qmw4V?FT0!-hd;aCU)-P4YvB4=O?pK|?3%S9u zH~tN2V9GK_|K;uE*@^2IiCXv0{pQlYNdHrCo9Xto_fhv8WA=XSo!V$J?+Li5Q*Dx{ zdbR@3BL@1BljK_*5hkx4-6fS`;cBYy)NKG$kzt5OLB^gnY=-M8Mo-W7CKSNvJw*F`n>m1kurXqpn!S!Xxo4zv8*yIaJ+wE^;1e(!Tdz6U<9a6NQwCLVpM+7L1$`2PEk= z&|kishkNIpiabD|rg#nu!N>GYGx@_Lh0B~(9iLK%rf|K=D&Igue<*Tei25o@ql_3* zlj-Z*(l7pF=>7QMYLdlijSHS5sk0ZyjS3Vzw<-Q(`Rnn5xy$0)(UA+DTSocUDZd58lJL*AD&Y{gwM(GJpL&={3I z%IpcjxC2xOzZ1NvG-5HvUziV?@w%4n2;RO1FJ7y?si+I<>%VS z{YtJrv&@K}y+z%;q&X}GpQ-+Yz{;RGr`oc_l3*(9*J?_6qR!9Av|=;N6F;-a`)0X0 z_Oo}~#K_Od@}=tM=J-bhLaYB5NKP@9@(P?)LJD^Ylx72Z!RNI~00Y01;kPQJfHbd7tK8Li)MbWd%%$J zt)9K9r`^ZhaMh-H_P~xmp$rxTKr~s3!|Bqvv`%Wl_UD6N+=NFE;RGY!&C z1#ZE&q-}}lHHk-=0dBjUJ?PK4Q-wJ;{=9Rux!-M1a_3i>zq;+7+1|JL4B8i+xR{PV zn%oro0r!!I&EqL{k?SGzT#DUXL&87zkNZqrirv=r7n7Z8w{i*hB zG7d#j?Z)oe51a2&LDh_hO_MacWs^)ocEr$Kr6p*;^dF$B9x@}+sD7ilC(Ul1ahT9c zMXG*cwx-#wTGmXJ@YKM0>WauY;VagnVw;X!u?FJ6A_2J=ChJ;Qao>D|C??LPUU zxuti+3YTbtCkUNK`iGznyCShQM5%BfoqUm&SZ*m^MVp10+ z2r{K66e%Ux{3VDoC9vzfaAbR0c?T5PrH>aiO))0Pdlr&&yU z7T?)j9bXI!D6yKxf@ZqM_6Iox5n^IxCc&d;!HWmOi{44u6)#2G=;h}uPA;)hg_ZT7 zwi15J$1>9YZv1zx6CUzkw@!G>hn2BtRZ4D8@a=S0PEC!PBx4^MH6I#QBsZ2VrxYi@QPs?iN*w;SF6<{rC z(LuY$Bm}kRA|;tHgei{8W-^_!^6}f%xzn3D_pXd)u^}9_0xp`xhVs$3^Kkf-lqMY8jn0F~Th zpw+oDn>ot@eylH*TV%4c?8d?VbW1-cK@4H|XNc}PQ&58|am@eBfEXNJ8pzo~mTBB1 zKb6d2pI;(SOKsyK3)Q1>7tiO-OY}-$`;zwpJ3VF#IzLhyZBFU<>wPz$*`+ zo(cCnk2C>D;rzh#_ag^idq0v|fpY=dMF*A_Kpd&n@|`BPr86GKkRZQH*6XHTc^Fl9 zSL)t)2*+-@SX#K{w;%a;y}&m$A2NqkhdhefFQvJhLnpjy1i)2~ zZ2wHvQx=MR_lu4MRnd-QMO%^;DOay5x%d~-e#4Sgx%jA17~$D`fO{z^wO(2bc*nL~ zJ9|>5btl)`T<>u0=Q=+z)7r*0hwE;x3N9bdzvq8{u0|6xgVq2Giad2pKlkB`f= z&JD@54shR3@5W|Ymyp7b^8Y3N@8ObZ5(ZeEA|h_282gVTF6DG8fo^a*eOrMtP);5R zKQ<{n&%qDoBGpIx(u$~$t*9XEtY*#`64?X{S0k z)5kc|hiT<$%k=q3s3jex)?{?t!RL!?>p$a6%PZjOe>MZIu)DW>Mzc1cjxw2!v9WsX(Qx8a`T~7ABhQjqGMYnPEZB0xc}z7;aZexOgbjLZ%`3 zW%FxPF%{zjpPv&dCEkm9=4`A%9RRIQ!7y0(3#GJi=4q9)ZY8uyxm7(#lju!!OWqZB zWan$j;R=owha4R{81dKOk}BUBUqN4Md^?;$W(nP+dyj8%Seud=yVW)9Ptj%w%eDO+ zr$NY1<16#_w9H7v< zJAd(xFcgroJUWYK(%ws)sgXdc%06oT*wh~6Zoklc-PG>rF1^>Z%(KU}oJDofqu_%f zO)pIp7pqm!#7~RN<9VoU-z+lE^1t7g8CkKEV;Td6+9;(-DDs%o%zw{yd0`C6?==H4 z4DWcrww5#qUXvHS%6eqD@ic=3HkuC2>{jl=sb)kod$g;@Y;9)WFlwhvkTFWrwq5_0>@Kj|xi*=%3heprw?>?>WLnCm*&t(&x(lnAFh30E75q)}J@Hs9Re!S2`bRi4$i(2#OHd9S?GVhj?Y z+MDVw=93O~OYdVhBo5qo#CL0*P?p$$+S*zef}#>CFB2Byj$7Xw)XJ<8?>o}_C&Uoa>$`96d8ChQNKXy zP$qKcNIYlckn$CwOu2mF+QdT~GJeFAljy2Kgil>^v434Po3?wwB?1TImY78o$V{HS~1{we8r*KcuL8kxS~eY_2q?c z#VfnM72hH!9lvFWEQ_3sFE`m;?8Y5dxIV($x;Q-7$NA$WOTsJGorj+hS zM8JOqyHBHMSC~;I(w)8Z$P)b~4FM#-4lMxrs59B;0d2a^a zY+J(~w5?uTTNaupyTGhwjxfE+I?xbSs$?}Ru484^&>Ar#GHn(_|0U{3cttV$L4$=TXT zEn^Yq5cX+>Wz#a#de)z5oy=we%rx7swl{ZMw0LuT%J7SPGeyd+XCn8DT+68+iiPaH zyqKU??qj9Q%bCN>jGlJK+z2f2C6c|}@C1Q9m~!dF-Bg&}J?#z6UgDJ^Dy_0Dxi~I3 z2ga!?cG!%%#tynS-DduJ4QhvXnECD+`_VohAEG$y(9cTh6T>b#PFBlb9nZytN#}Ep z8I0w{>oKtPWMK0e)@WIskhyyQK>RFp=wHt z9Y!r*PckF=FyO6+nK^yzp7|AHW#La$T!u$JDQVZ#9=qpy^GYAPZIh3m1S&LX#V)Jw z?Rj_I_2$PucE@HFUF8iJkAG@eyts5}ZfV!V4vh+P-L-b}s|R*$NZ-S;TL8L-$*vH# zPca6i`6_rq%?-N#;`s)l3XUoXMUKIyo;Ow3BDqVG3m@oUO$WQ5U`w~s*8VlPl@I|%bP1;EosCpW>0GAN()zOY{Gfw7-27HihO(?dR zdVKsY;CDt@D6*d4IsD$J_vNA3y-2L!1H<@Eb^g|nn%rX!4!y4URYWDY|Ty?4Wq@O*hXIE$SM}b3?@eXt%B|xYz zA);a+9tgG<@=cQw#mtjaMi2z_aLXh!yFZ#n=S^mLfBdDJ&0GELTbn();d0$Zf?Q-1 zZy^hWB0QOL+c=H1#E!K%xKIb;khd|Q70>m=?j!AxNIutw_#e!G0Sxn8bK3wU_%5?< zfZepoRz7gz*{RR%TN+l@i0wnnD+BC-8S@Yz+T?$w$ry-HkTuzK97yjbm73cJLe0}l z&FX;+(eXP>bRfOGeT?x8!f2RmZXCp9ST)f+ItaCD`yFQgAT<0%D~)?F+%Kit3><7f z?f!1GsT*uhMYatY0*_fb(aafwj{V!g=J6r4^3uKL*buvOqh2sr4Xl&*8GSf3!FYy( z>wTk5pP@j3NqEapd#d}$XmfBVGjgN(_fY#<*EOc=_4asIky&;0%^<$ z+>d@g%5)qK4P@MDCJm?eZ;djK4hI_-N0|?J-ZnNW@eNU~`BJi+kX(@2NUN10El=%? zZ$R@LVYi&IagcbRlf2kTIr0s;v3>X!?H`B{Rt z$-9+uqQh61vmSl3fHKavcbTV0*lpX4e<>kg=CYEi$v-$bamO`d>5O%d01kn>&A&#V zJ`OX@Zm`>BEPk9C%h_gRhTp)dLN{~U4fYuKvQcLL4bc6#iRRJ`_P}5s?O-=VfFqlW z=5KVwdI_pi8t)Y8`w;(yTQ~fyxoS-a9|xb$_%_Eg{H)rlp1=pph4I=!=6C~KlwUOg zw;bPS1=-DQ+HInwS~c!CdAXaGo93-Z(`I!x@VDjG#i zddqYe1--Q#WyXz?mxFrs7ICW69KB#WA7WX3)KUs8kAkLO03XGdWjOuN^-G0N`K ztSc}{eG#scO+?1=tjaVSP4$N+n1Q458>|^=?jLQpESfZsLqf3swXWe~_~!Gwe#rH? z>oK!`v|ZHpHzPIlbhDge3HYCtL`Pu~9eI%6`U&O|Ws9Dstmgq&O#2lZ3jO7vzdV!z z>gw>rMxPvM2980G_@}vTjNPThY`DYO0Z=NQi?DNF;EgnZcJS~Ab6qKX<(~uK!4y%Xc|c^Q z{MIFAcBwt7aNoy5Ou~};pk_+}21G4-QnqVPn&RBbndnH>m#$w-% z>Vg4+BvsYIgOtM>RP}K%EAO3V-Z=XW5Yl_R-Q2$atIOx#fe13_(a;CXjPZ6y*Hfly zynV0h_vYewTm(JWn0XWI5uDTg@&uHx+l+UjeSPj7=&tPv@YVVO)i*96SIZsd&WZ5f zvu4voyMLqZKP6C!Jaeq4<#(F16JaNxFEaKdnCa){=1KN7*jt+>*9T$^~N6QI8|T_@Y^u9d#gq+G$xlQq9QKJH!I zzgHecPnhD&x&J`-?pFys0i*3hggk(irhy}7*JQhm>$MkOpKK3uxo^M4cy6>ul@*#Kiy(lPQ@ctY_6NiU}ycxOq~k5M^}AxDhrxE^P8#m_1S~_UqpNpLSt!{ zA$bGM#i`7`&BIOGo9v-ie?8{%c?D$WBpKcD{in>ZT z!`$q?$==`@H(c}Es{6wj({CEXz02G=4e9xjshVc*au<#0eMd+uu;4oO>_m^V zJgn8_)Uu*@-WSwcmS9d|@ToBW=*?!yE%t2pm1E79w*Z3Iq}@uF-%B%{Z$*ACo^D3p zY8N&5N18X5{<69MR{Iuc^!;1yYlGX)GbF+UewRm5Gp(sy@&l*TNW8N2SRl4cNP^xTAmC}uW zC^HXDx7+3_YyCoIQ+h4U@La1#bIl9W?Q14}gmg}YU!(=#fIQag=_<Z=L_Wj(1dB8LeL-Wf-t$g@ z-X%OM4(*8hcuqVf+(*J1Bc1hx0d&Nnt!LDr?1^!BH--z}Vb@)r8 z7jkz6b3uMKWZ{GO@|9!R(gq})Zc6Vkm`1La2&Zrwl>%Dk-Wd$y&)lpYPa9GskDhU(7 z42yq{v?L^&W7XVMfx!_1m>x?b{t9iK7(@>Is`%1c0?z?T`S6w6z7x;re!kW*)2+u~ zqszk&-iqwy+iVOSO)OColgi@*Kmo5gk_PoT6ElcGkr80g6O`-#HK(j78O+{w3aKz3 z$2LKNX%*bpFq@(B!KEyyJWnDcQ?(xew@-!&gQ>)k1V72zy|zx0oz827@K=wcRi zD70I&^FAePX549a95n$LM)95AT>u$(`*+4`Xh%|? z+zi{CP5^`3|5!N98ptru3_p3d`@D`vutJy{4Yj@JvGCWoF!bj1op$T~Vn1^k)Oz+K z>4<6TWCqyCbAgwZ1TPO9YoozG^m)jk9CPh#yG8J(|3ek>+^e5DNh>pSMULqetHbFP%L#dd995C^kP_8;_LeV1Gi`B~ z-LBbK+IA?lc4Rb*_7q#DX_IAcyvx33z;(QK5u?(u{DX7aSS&hnRg8#g_l#yyF}0-> zZaQbxhEX{ce}&!)@uwVGc1~ro%=>rQ#lhX1&Ur|%kP;5Zo^X-AD-c?j!ZVkD2hYiL z7<#N-iZ4`{Qn;)g0CZePQZs*h23GzUs8h!;3YnUcBBouRg0Lh6xHz17E*?<;bXjE_ zZQ&mgZCJh}+z?&6q5qC>P!uETT9~Xzk!7l=ii$+l3mDN}eB8HINLmByt%RlS9BG_TCDi~1bIu2oP-4*gA> z*|N;h9s9BeJcqq;6K7sN-?wB%T!bafr&4T*`)7V-^6$0VdWNr5-kgo`@)>5tz4q*u z&*HdI@Uv_Vc41TZ#(3$B#5a%r%AC9xAHcvF#$9grbNyfjl-u1o9dJRpeZBiqs(Gc{ z9$l1?mJnY7q~6{G)Z~B9k&;T8&L-b*!Of=gTokAaX2@I?62CFe&BbG|(xlC^*Sg=D z#`%!;q~IrCB9S2$33rzt0ngBuYF`FRaLg6Q=cM!>FHie_%gv{Z=0_Tq=)aTYAf1@H z-do?}E6B?*F;T*bD4uU4JkyFJLM9$(uNg5+olTXu92x@1)KwxZm#YI%8hAA0+Re zY%b~T;9jQl1E|Nx%#9D&GhOeQmmjd3x_{lweDDBf)VzVFXd#Y*;RDU=h4$_FeQu&7 zAwwGA&G8E*Bs!tjTl^f3H_+5Av?sYr&433P$o*!)gZ9JT&DUIXBAQvmh`nkqK4>>B ztRz;T1YN(8@BR2acGBX;xrJ^x|M zaLI0DEVbS*b*lg+K5r_gHDa!u?rCN}f_-wlr+NGl?6#ZD$B)>pniTwiry45GWwOe1 zlfn@Hsi$f5s6DBTi+57!OX-iFiCpZfjJKUdGXU&oRo(LMjL$PwkJ_z!&h~m^H@v{B z5DQgMRZDwptSt;jpY)*W=UJ=8hCxJXKh2SN3D2Ir(VTshDO_qYf*3B>o2!DDZm*iT zL3>xxh{gJVtPG^e9z>Up*KCe|-{>ER11<9{j$WK$x>Z0MKh7{y`QNf}Po3t5xZ)cp zqXx)z%7WnBnH#Akr%%sKklN~=})d15VvgFcb&oBml-BSJzOYTuOq0PnRUTjE~v0a&tq9&2dF-22R#rFa`(Gr5)al|?DZ>Y2&eTL_ow z#UW@iP>Si6%QrCkugPXcC8!xP#jLKhJEk3>ieu)_m3Av4Sx;Bup=>|JT;dJct~xAZ zdPN$VdCQ1rdeXeU3~%NJ<63TaZ*c}+v7pgN2qKXKSlpJ9ZpUVsvCHkIZAwL_HKkFg z#L3pyrh2l&~yyH`#&kFKy=4y*te86K`0xLSw{t!B_5p&jAoTMGHIs6m!x1RtBp zg+$cJKW!%C{J+HT$AK^9eV7z0tQn6-eg zd`lc9biBEFwcRxL{(2zFLN2+M1;`I()oQzW%dh{P@Pc08zocK^q+tH1ZCitF^V({b zRkvfgUrUs-d|G{mnoFyZQ3WP;OCx`>EDY6w77d zrTmsNkd3a`)H~xJncZt3sCy=vx-}5&m!{2Q_DuJXNoMt9IODILWR5*%Kictc-7cQr zTljwDmB9N>q@~AN6<*?B8h(rC(&wFCvSQI}ubEe6&v9)xkt%4SsKR_#g#g}Zu72FU zX87$4zXdEJgB;Q~ibF`SDT?k^p6T~k{$Ii7xP;xF2uPH5=ce2w-sygtdEs$}tCM;E zal3Wl=y3^LDDlRDuE!&sFc3S?wKmd~(t0+?G+S%m;C_6fxqU6NCjA@p>{`3YjYXde zm{L?fXWDwSZTL6eA|xGTO^*3XWprt-Zi?TXrZZ&S2juXvy)o=p;MALE| z?wW%WOuuz@zH5lNaUH9*YX+Nx{Jd`GjC#k~gvfYm5HFL+5komI?<*aZ3~UwW3F0n_s`|b^YdNlMtvzoG>$im*V|*V&wZ1avDi3uG9qFo zvL1iq`=;3j1aW^eY6H%pWGN^+P;42?I}Z?wH`_jxmEqg|ByeL$+he?3dYYer9*s*OmzpgFOTJ_IJ1 zFE`pvuG{~w|2939rp2y=*;JZpO;ZYfZB2GoH`zxV9$PN`-rDvby8Db7unBHbYi{1e zdf2n$&7+%;d%qiRHgB@Wxra|Nb(;uHU1yqYwp;ZM;+7VyB8>V59^#q$Chi4`jo#01 zIK=-t#02(DX6|NoSp4|4bUQKYo&4kgq(htSUp1PLVK42BH#Nmt9=6Iuv7O^hAA>uz zpP6p#{w)?}*s;ccN~jf9iF6;w{S6ym7e8%YHujYbW>LiTC-bGTo8&)98ybdxV2Nh} zMm>G>df2qw0#Tkey|+LNZ=1PW>|eRR>SE6D)O~!M`ECns9ycwv+LP0w4ZR#T{@_-0 z=hw`;TXAjwXnxpg&+oaq%f<73{TeK?y)tkjf_s?D%67N6@Kj_~*=lxY-$|0><&HdF z;txeCx|k=o5uC-6<91peY6fh#Z(^_7&h2))7GI+<6=x@u5TDDL)lM>i?9NruVJ5Pj zrfZCM2b^Q0xoQU*@D)JdA|Scgg^7el@I$`dMIbeA6tF_oDI? zEQ9D+^Xv}%rl*W|r+rh}=qx+7+uXC0iYrXjPUgi)b7&`u_FVJ+PFqup<341NZ&~#(z5UF^%NXB@)`Gbr9MsH=2RF>`&Y?$C{!LjYQ4j5NncM#+t7~ z_6&EEv1Zcl|BtRW509$I{{L@x_9pag5|+?xP1wWM3AkZ|1|vj7Y!TVTpy)V?8h4mc zJM4%s22n~`v~^q=MuOY`6Z{xQJ^rDfqY^#jv2cq}xL zhtK;L<9(2YlR9(igMO2Dh>}ap=MVZX@;>yHnYI-jRab2`Yz3<6)#mA~EU8VI{N&-S z{_8#7=wx%rL;m2Pb=W+DL?i8o(MTknaFbcssgS9!Sw;gR>pAo2Lzr&oOnq|0U$N|i z*9`sT&~lg#1((zUk$SK+(2zL4!uTEm#lIVBsvhy*>^-K!yz~gN`g&0Q2n$H16=qr! zbDwEL&59R;O9KU*_B{mkkMH)U3g+W|r@O+96LZ}Xqg^-UJo ztcZK8R(fjKUHouw!wHzR+x%lXOoxT;Nzfq=S6t!-{>*&54d(vX6g`F{BWAt-V~jsS zS|7tYIyBY%;V}gY3^E%YBS7Rnubpo9K*ozD)h(H#Q1oK+;bZ<@d4J*aFXorWaOO^$ zWUhZ41XnYKf1KIZ+osbKEM|O1h@iBv3Kwye)npEvXVcjFQ_PAdAVXb_+4=-x?k@A; z6Bw@d4K%+#!EAE>DQ4Vu|Iwa>X3=)|@#U!5xE&mxKhQkC9lLh6`Eol()E`Z!CkZdw zVYWQUT=KB__(}3EIK}+>B=`-aOwXtMriI7c=V_>gaH)+4>Bye{z<2^%;M#=m#cn#aL;J&6m&6!-Hn% zPJb8wlK#IO+AC9!RnWRO&6J&R&7G6Y9XtI82CX?6UdXm|E;D}(5_UV3$>fs5{@TwK zFdR?*>B)Pa_5a1wyUTC#AC`kDn;%c3o3ER>>^T-B3qCiWKF26IXwG}yf4~2@dmt(h z1X%mIxYz_=@UQkLN?-DEfnWVaCDjZ#whm!P3f#jbm_Q58AdbxEttLs@30js%q zI&|72#_FqAO22cI*VKdT{^MX`-Lhff8If0{1~W4U)*Huf1mUa^oEv^29pT-LG@=Iz zRzSa*r7!wV_B>(UcoEhbXuf;Vf2ZeLbL&g2X54K)eu=RD4^KCjzl@L_Y4*JA9}X9K zUh)4f_!uD8TmSl0@f8}Cd11|FZ%F+0RI}t22DtA`^YttK)t&A+I^!tSUSC<7A%cRQ zGVA`~GVN1AsTXQ{SKwr3tcH=HrI7hkJ{=xOzSHnsw^gJCgmd{`i|kH)^xt%r7=yk*J9pjE z6SyHEBwqzeIMdnfz>eM@yDnM*lWWDev;NQWlw}MH%>AHxBCjz$@QMAd!ANdv6g%1% zq0x6ozMt%=z`Dg74)y{wIh7j@Zu9I-M)1W=4Xt+?aGW1YQ0TU%)02;P*qan)+BJC+ z?V6TyR;~i_X3MUu_(#lRr*FF}W1vr>fK&xC+jVIv?loG^0WNU`65i%KNH6685E*j0 za@VS-2kbb`4V{w8^d_FXkDhL$L3tH@A!f&T@#T=d;5VJ*N)}(IY$sy6`WDphtKsI0 z%fpXAw==|R`_wx*lWRgRIXRvU2TPpRLki~*Mn-@UHRv8|3Z}5{+-RM15lF&h+j^(= zuzBhkz;&zvM$q;R@#OXOkd;na_`(XU4LQ#KU(A%(QE11RMX#f1{&t#q`gJxse|%bI zu8dkw=h2ZG<9UM_RNtda#TytjN12oLdgKdp`5UZxF2^-4h%~bP{E6947VkGH^FF^l zpG|Ad`LXMlR?vy^f&0~y(1oAJP05>tP)x*yqjYJ$>pw9Q-}DEAZ>9cAcXT_)<4`VJd;#FN#|>GM zcq=n|ve;2k{0}qvEzIu6&F|mB0sFwu=Ha(cxG$V+-hK;(8!(>TsQ<)d({nfdkC_wn z`r*%J)^2~W$5#oQ#$ZZe4AR`kt&U~9_j@#qEG=DHF z@6QZ25APw0{mr8?pQc=z`CT;G9N6QZV&=T(ukl6}n7iM@h8j88y#1d4Xy3~xX4*1U zrsRD({dI*o`h7@vAY`WLx23{d{l0%x`TmMbADFrOmScO73S^t zF-P92Fr7aDOAni)KJd>jxhRB>OW@--tb4M(_4wb--5>a;^hjMybto{cN=Zye?n>0i zv$Ml=*y|tAd0XA7ozIM{f=cGKcm3wLzw2zrVca{kS+#HhAvh$@9_F0xgsU`S3(DWj{=L zk6FCm-zC@|vs<6>bp>^MsfrX*biyRFZNI<57kRe5^~HA9m!2`7QuWc(!Mj4hBxTQn zl-hG;HQnNTgkfBQ?IF8kI&}?+W;Tq7E)`W~^hf^S^lIM7fbsktj_pP+~ zNLG!@EC5)I856DuwB(ME&&>^!lYHA4p`3k(x$h&KX{*dXK4M;XzWL=NJfnplnqeOk zS$1SB#vEEs6NqE2n;p3$zEK)2NrI_0d9DwSHJ5zMz`fes@G)-M6X}Ey&=wc{^N#jz zIEKbd+I;x2znA~iPrz3+16$=JlYhWpUbJJ7B+xC+8>aFAzO^R?nehjhrmQn}9q@PS z6bEDaS{T?3c1}-^!p*$=$vp@B1s=RLAN~_leD)yo>p!9A1cH+ij2Zs{GnwD^llO`^ z0(Xn^sacf3_c?5Vc{t$@mdqDd)@4rh@HBG1+$m-s>B0NN^o)z`;8*JruGoN1r!6r4 zBxC!y)4VQgSXfOSE0V&59!y7L!Qx1R6M0bc=JY`61=+<8L1D-`u1A zX)4mpc6SXh)6)L_Lz~=h(NsHXE}&u9IDMMzSBXDb$RpjIlhL=Nc`)rCQ}Gm^JBHZ# z457~&m~mFN1;`dZ%~5MlwYOeJbbPeklzf8lKVhPo{0Z^RCr&ggK4Dtg`*riQ-me~D zzWxN~Li-+>BgCdquPX}xgB8AHOnK9<#;qPxsa@G~YW6yw|&%;HUh~ zUC0@=Y%fZhyFT^*#T)BxCLi?A^;T4yhYu3@WmlWvXa4ae7rOGCV`m_YTt(;Cn9D!& zZzRO2{pT#gbt4GwbAQiKmyMDClvBFVw?gBn{u#VUugXXeQ01CbFoyELjjC!FjVJrm znCm|$vifkX+4niP{i)XEx6r}&YR%{t!1=nLxuXUD*TH^fJNKq|Tl$$#Tl_8F8~d5J z5AnXTpYeV{{>A;ws4po0$A0GgFAy^`Yt5g&@Zas7-p^Eh=^r+6>z%Y6MRNg5UVtq% zwSxB+r&B+{bf#;C-N5tw0DP!E@U4#bwfu#64k8s*w(LZ+^-Fkn5$UUt8!DSC)YNl^ zGT+;=;P9otqVv-EvIZn$+$dw8%HA;F^gQejR&AI-o4}y7Ekm+;Yaf$o>XeJ%##zLKQiQ8v;x0(%ync(dTn$%(N)Nh;__b(#De>lc${1==5 zUWOhX=um_dw<7=DxAiCLhAr`KzY!;KORnoImjZ_j}a^&E;SDX9Wkib!>6^ zsSNd>l5K~D+fTn@<6FmU`Y0B3{|$%UGuDj%w|}mGI?_-};g50zq`VbLXXfM8jEW!K{S=!FNWT+4?QK zJfP0(`xYMVUT5;ZWANvlYsTsKn=*6#cmDAepTmPP%-dksvXA)W=knG=ukgEup{n`{ z#+t+5v3~NYIqQ4>8J$rbDVovY(P+1#Oz!3omO3?r$yD_*cOUUT@3YR&u;28P%q2hgd-{6e z4-`B0h;X(T8<(Cv2UZmMXhTCUhi{*jo40=eb-TNmUw`mVs|eiD-byX>Sq~sj-`&C{ z&C7k(tNc}`T3hSS`L(s_-Je@??`m%?XfoITi2iFaAO47Pn}5Ff^+$jIQP#yi%QZmZ za2cQ;n(#tpZzP_ah{frVgs(%QK|ziB<-;>l@6^#|?oa6GO=i(g{t@MWx&wkBP?V(^ zJ4d}f!eX!95sb;dpK0FwNkZ!m^CQK4d2@VL|4IBUFg<_v2PYm2VT-}`(fsDI+><9o z$#EybhNQiM7SExLkqFf=Of2f|laU1Dstsgzkingvu)r+&8He}h=JTKZgMA|f7N3tF zV|xDLFYoGeo7vzL@~d>2-|t`Kv&Ng5zxW^NJUFagFh8tA{4q-|#27iXzv=lata(!0 z%=#4-Kbo0`+%`;HU6#INky-I8CeID#!C(E|y0%=)=a3amhP7aRgYmRtn2h>^>D=n?IcUWq{1#Y3I^i@Y9Dk=ayzD(U(3+{tGiMT1#NQ`3 zx3k_fXSMogdncEhr(1!mWRdy4mHo<-AH4M?dzkl=$+v!Q&+?8u$xQLsqr4M`n?HH% zimqK2q6C_^a4%lQq3}0uAQb|Zm^~i5mw)NKncXnb;WH}CuO9p8b510>BYPZY@>}$~ zCdrbckjA&Oii_TX6WcUc72fYM=pl>~RXLk}D4tMqb|8ln9}QUsB2SC>HXbmPN9~+` zui4@GtK@5&rG zaBUsuOE+_w3$>&>;vixxitGTLL#E3*8R0L?FnjXsZg|$eq~y$aFK%f;zC=*(iYW`i zYKweU%awIooH{Ta3FoJxb#cyY<{mf#+ro%rjbl$UN1KEvrRr#HLry+Hdhzs#OID<6 zLn~5ikv}ucS^0LiBKr)^AE3HAvpC=GQXZkk>Tm<$d<~A(+~Cynp3CpG{FYgp9p5!( zXTIH;ZoQXppF3z1wA+o~(80<$xZNwQ>gq+m>74Fq1vlgsB=kLE<`vkb-u>Oo)dhA{ zr)7v;nRHxa5|lsjpV*pp=9vO}U@SyoAg!-s%Farph3`nW-7$mPS`*lWD}bvXtP;o5 zyf{_Ue52#(aATs@TC82e?&Re*P#^DO9hw0UW1}Ac$eHOcimc$3!0$P}I3*0#WHEG^ zi+8vF^zQ+-o-+M2=e=)q!gbslf(xgRUeS}Sx9921cU|0d^TC=5Q&MD?$6hb8o)-9; zIdLsFjm=C)skDmg^W50=XuNcyxR^_eg`MMc?k_hzEpLWxtOUX(kq$wg9if}u@Lvtq z;zqnPA^aSW+}+^E^KBNScVu7Ku`nApyq1nnDE8UmC=i>T!(gfPs-76osAJd>&tQ^JMrhAp1w8ooqg&D0D z=Z5!&Q=fW%SMsUnb|pudv)b9+@~X*NWv**ycZu!HT(qsutsW724^}Ekdz<4qOBk8@ z#<2x*&~MER-0G}El7tc(V_TfBL+jj0cpy#5!(t$^<#qVJ7CgvklfFCR z;S7lg9K;Y9#8nAp4FvHwZgFltw@*SR*Nu!IbQy>9!(1X4HlMKR*9n2kz0?yW?bz_j z)KlYLPKNQ3pT84R5EZ{vIh6*NS<-|4RZp~mpMRtgVT3d>!Bmo%gMgY z?{h%U1}8VNhGW$`rfcc6PP7AvPTkGC_I4M~e6y%Mx@2I0WAqp+zV>#1Z`UUC zW_vs6ed__!(%vrb_uZrLXP8@l$I>O(U@t9Lk!4AEEqR1AF?!Tg`t2^KD!93p-pQr! zX?Tt5(oFV%WdXXzul|HKS^#& zx`^zBXeoWpqg8}Ftxl1=jc`((lIN0T2Ca|HPI6}PJ_w~(6TLANk7|M8jPw{BAToAO zfX#Mr2d|DVAC)Ds+#TngWJcQ{VD3p~mTgZgr~xXRGUhL~J(jZszO?Pry35rW8nMag zi_rG?N?h))haMhyz|;rq>O5_5s56fS>@J<9R?JKNUBU+<8=MHn*Byh+fq-3Ap>G?p zkfnu-SOU5Y=FvVL9~jTIxEz=714A2}p;wtv9qfuCi4k>lpt-n%-6daSfAKD}x`RF5 zbFJCa!7eSYa1B)j?qobQZV76XO3+bfL#{OWC3epaBiLn;lReikm+ptnQ6={De&J>{ zFh>aX4T)@VS05xsFb#5!;*3SIwy<5k#O~ACg)O|%nR%sVh(y|gy!m&TmJ+)nrf=A$ z=}OJG(PSv-r+h!%o~L%3j~jd+s^tl%m^UY|(o2rG-t z{hvI4r!(x~8&hBXo{O_F)%SATptfebJMKq-Ba8n3eEabyLW6A6sfDD4=9eI z1=iLG!1iUN=?)J?2@U}TKBR{10Nowr9$Qwo)>##XqpU5?!Dm_zU0cs{WTO-3JrqWv zMTp~JWQW450hWy_b(@@9a&nnpz?jXLtM&Y`aGe`j8cRf**E$2EncZD7SANgDx(uLp z590FJ0L!e_^T{K*uO@Yp-(Jsa$w;^~^%XblBC|V$!hK5KsY-Nth;2Fq8pu?Pb^Oann5vuvx-UCriD8ki&qoiV+VT=A$Coj-M)z5%lJEWDt{;XtRoyX zzGgu?%k4T%m({a_!z}NNc{|eF%TLu;=OGzE|krUtGM8AwKsDLiQe;e)wPBdG)FulkbXZCfm2Oe{~)|-|PD_^=*SZ(GOLlD+Stth3<^?4m75lDAc&ic5s1YFNX)= z+mjKQS<}P5Yne}Pm3A>{pOkNK9sr1tSOAI1Z=My4N;~R$*V~*6sUSc_?$`kG zg>e__keIVC;?sNVQf!wsuJqcA=$%ix8dtAe=>{-TFLF42QjX57%hZz}CVr^QI&>+3 z6k?+5U4Z>=JrL<3z=wHw{z9q{^?*EQ<$?iB#p6g97W6Jm;4t>hrx)^Q>YTh!%8m0W zX0ztm%HyXl27mfm>Q=d4mCu`Y-R!QhE3%DAl8mKNWmY98@hmB#9(TnJrr$e|GWvc& zV2g7C-$i#9Gq{}m1QE@E)?=|^r7Q;#em|X9H2DeE(DPDZ(ps&N#=u;S#b_M=<*j9$ z@RQkjxEXO&#s{IkZ}?sF_ipx}*ogwS@m*);y2L?EQ{<%U-tb?7OO|D3vl)ViXhmIC zx`?iCRn*}RGrp;O9SpD=VZSQG%pt;AB+bw;w3#_p3A-7rlw_h7h@P7A5!}y)zxmj7 zUQX!@M=)eu<8g%>VtE#XE^gQ;0g?1JH@IdOn{RN7SX*V16|wnFm4{)Fq7Lf;{`AZq zv&ubq21;GyMRb)AVGY&YRw=b;HFNLe51@*=bF33(Qg90?nF5%N&vmd|CC+K*?zE%} zJM^gt$u%$GfoTXEpd(~4Kb zbvXHyORRJbY!g5k_7}LJ3~@xHzh;SbGUF4xLWYY=(nHLLJ?%a*%}iy!Q`B=o)V)5>_b!`Na*&7&!F@YRK4Qpm(;-XxBjIe) zT0G707iEg+7T52wZnQSf6IfQVkS-wsJJA(Sn2S+zE7y0yV90%nhotvkC zTbWJ+`Odwx49PRyfEVeOWdNBA9=-|RjF{KiTGrFWye|zCD-ts2`)q%V&iO!qWKN4G zD&8`(d(!Fiei(mk-*l|KvUcr9kwB=Si4*YLZ5HlI5EJ?zEhiDmRBC%h&h zcpLa;MY$=OGXEKg5)Qy4^z8t?)Jci#1Th*lOG9?2*rdiS&IAA`v^F}SkUmnFPR_A( zv)=!S@tg~>k$;3~B;+KYY@U^0AyBH+EyMdb?CCM&l~k65&Q0*!m=Tb@DC0`(MoyJR zQc%yZoBHD%Srs)!z_aut>nO+hXKLO{JkjL9T(Qg6FgUdWi9yi!Uo9T22 z@TIW6wuH!L)OouCDg;2{y}!{5hculcu6uvA3I6fQkK9|5iY)82;2gla8PP41Baen_ zXjBzUax37FD&*D!R3d)Sa%xfFy@M)q=XmCXlqs@aEYQ2s@9AqUFK6Ddvx?4OtO967 z_w4v``7w04w&jfAEPLG?>}wl$a!YWimb+C)hVrqHX=DSxVA5hB$)X0fmjC^x^7^KM zX7ODz?AYclrcWQcN8Th7!=`s1yI1dH6YS}5>$)Swz@%wiqQJq$)*7DYq#MkBnX37>jhu4ZqmM)3_{!x2{D#sNBZ52OSvm)zA$M zWi=9{k=*c~m`iY=0gbp!NgbqMa93m+C8L%m z#A_D-baCanHxr|TceT_28FUxlhztTW*hFr=1)P?4`es*aOF_MZ_kLg7g zLJXPI%CZ+07Mg$ev%B^CfG8p#S&jvvt6AOGvyA%rt( z@0_N!oQ6zn%+8X%$(L9?bHRwlbCNr&%;EkxPX_cgz5#a6slD&7l(^GjD)BqCJz};Dbznz4%yeHFpg_C2CfcuTp>(z}}Ws zBTW*bX1URdqw5_>JDJMi=GBhuhe3_|ojH8>V77@x>Dop)2WlC$qK9iDH=dX9L{CoL zmgh}GahqRQm61%SPp7-r@-1ro*Qcn?STeVnlS|XR zg$97E!0#Cfc~hoo6PJ% z_8`wBvwV;}y|WNl!SLicL;6o>yuLs%vkMo)guY3hwmeDt0Nw48|B!6>&y%^$2 zT)%>;8ji-(O1m{TCo#mFUSXfudl}uA2oT5%_~a@|x+Lx|B>fBXM1?)rr&sxG#y(|Q zD(qm7wwi?c3A^ujU9K`ROvOCHC6t_Mh;Wni8Lf&PAvu$hZJ=PZI2I^Xvpe^do z4K<`ggzF*S`_@({zmg{JEeyW6SLfurq{ z;6af*jqY(Ose5541GhWYsMZ$D2@b6QgK~sxf~USo&lRd3vv>${qor4dFBSrg_-1T% zMkd%~uO)i}*#khPc@I3|DjUh#H03UcBCTkCKz6nj8o^LT)vcj<`A5A&N>U@SEjv?A zqN+P-QdsigHE|!~^Zf;avVy>%+5mFaL3@94(k$)2DTZjz-`z@K-Z)v*c&#fbZ?{b}vDhx$3 z(tHR7rQ5F`{EpLrP7_t5cgUF;&CtKY6Y*&ke&{Jf_3~&6y=lRg+6UX7)0N zhuM?a7J9;P`xu|3ci&J)=dX8|>xbK&OI$D+of;lmqgov{_YJql`+sDPrf;Ium$l}{ z;r3|XFuE(oUv#_~7q%y|n6Wl&_aO@K(J*|l3YyK2taaWv(%RCFT&xMT$lw?le$83^ zeQV3HcsaEoEGMK~*Y{MebjB%G(&Ah{^2*yf$a>B3)QwNo)va|N{ZFeaqlCEPhPY<{ z$W!MEBXJK-kDR`cxDb5gHeeHwmNYvm?NID$Odl;0B-jb$&c;~1$id{eAaI6@K5>29 zsC;fgrbFta%z`gRW!`szqy`pgMJw^bR_q+CLf5Y07M37}x;rXVzew_u;$Z;|`u6wL zGOZAntVW#}v?^8Gu)>x30X$CE6+@u#hfc`cP-PGAE&AL*-C|930|yep6ZTN+rJ`CoKJ-D;bRO6v&JtLU;=;|%JU)wA`` z{$E>LKFNmoE}Ne@+3Z`kG`#*Cq32Dfr*>C18Z*M~(IEnPfioym?X3bi@?RWb4~UIl zPuGc)U{^t~xtT4sv?{ZzwevKJvCTu_&qu@9$Sf)-1zV5tZ{3fG-5vR^D+!Siw6k`^+mL(i?IUh6)xf;)Z zga*e(IiVWsf1swRb@9@Lq+2v9V77<$C#}Fb7bs0lkQT4L-5b|Tv&@*a4s>ksA^bI# zIZSNzwLSlP)X`fvw;q~D|E036aBQ${@#j4pWhicuO^V zLx=^H$6eu~2LrP}w*^%UfI7nFv)C@RG$Mcb_R!nO&lYpxLMbih#y`J|l?;Er4H}PK0LTLzFOFkf#tqyH+V(Qf@K1P_l>v=iPLT>}k3fP4XpPp_Y zP3Dyvy^fH#?alAelkVw1D4p+l%9jQ3DgYdk5a4su^?di>g>V~VNUOYVmly4`9f#NNw~DsNm`8Ic{1sJ&WHQU-$G3eq|=A+{kQ4&LFKXzFXWN z=_t=_>4Q{vHqS)QbQ;Z~`6M!FI_mzSFyzJRm;SNx1@$cWn-#)lseB76@gZgfKYjpVPIzX*SQ`Q9Clx&Cy`b+jCMqw8>}=C?at z3)SD~P;<^LIQ4!d$l=#k&fn3;8YPucLlx@9}b6N!Aqe!Ljz> z*lK4WOj65ut*y_*-EQ_5C#F*UvG_P<@Qb13gc{%t0xSe(4QYLw_jSUB2|T5pSZMsC z?9N@L(q=I+8Pmzno%ph18h5}+L#E~6fm5g;lv zBu1rb=nE>5isqwB%6};&JDXA82a?Yr&p-;&p0{%^ z_x2F7N=x10rOEB#7n9WhBP_(KxfYu7R$84{*-5NEvR)s~Odp3LtcC48%|HvSQBtl% zc6Aa;P=#;IV<)$IomGkmwB_ir`C>i0N@KxcWws71BA@}(pN6K#fbySwjQmA;&5(G{mR5Emo0;vGrJNI z3PGuMk)toVVIUL4W)@8|nv%r{+B=p!Qu*E(vsCU2c2)I`D?Unkt}RIE=t3=D4JSPm zztvq1t7W~dAj~*xUY!zf5{I>+WjKphIGTKEIDPSZ9h%E|SkPS}O8^KvWz8#`djNQM zC4h5BWKoDsi}l=2 zcIh+0Ao$h*pH|}352f8j^;&_`z|s4qeAgtPlnui=asRjc`W~wb;(~<%uD62=7KYcx zoWZccLJ*4!DofsBjtmhx|h;oqwRICxxu1eOwQr~{UTqoL`j*|(elZV0{XO&B}eficbF+- z>~Z<(&CcJOjbrToWAv<1tp707hDa#z0oZc{3 zYu4e7yu-|m*qvkfA@Qds`FLyr1j?r6TGIP3L5|?29ZBg$)b9xlNx9+m`1?Hp4-`G! zjXqik3~t96Xd1|xYI=^>nm|0Km@}h9%8ZKR7E7pf*}uVJT{Lw{t`+fp<$XVSL%8+O zUV5Eb4vKnI;StYkm8wj9GcX%W1rVL&7nX6CNBX-}@0$^0?V&E3C(JVEkF|RqBNT?= z(}85v`tV4e1N>SnZ5f~C>XZu+CmmVhQg4Wx^I4%y=I>+ibF=yg0uOhS>5{iEStX{`}(Y}3w_p|J$+WJ6aRkb;j>cRKq!Ad@;ASW&x#~u zXx!qAtvlenE1a_laC?qy(OKzD7?3r5^VDCHk`NHbc(`Vz1_`=Ly${8cF7Wm75p(J} zDrE~?4hDBY$2@3f)n(TFUk`6Np5q5KJ~C|jchIdyJ!rNt5%**5-{;_AuGy=Tq<8F~lUvbqi9=QytGKs*ab| zT5CV|h2zPFuNXI&y-}K7wS9=8=<#cN_L7I#f8pTt$W<7BZ?M1Uj`M_W^ix19I?aBmhXj ztq8}D{|@y+x;W_)zA5b`>X6D&*~4#|W*9m%4Lx`7AXVh=Q4ZS>sJ}AN5AD?n3u6SUoWV>C>Fqku;}y zt@9xbsjN6brwu6od0D^&=*0kfK?CLKgv(7a;=DRSD;2`>^H~jJbpKv#rqPPViNU6jL$SW)(unA;Q(d8ada-_Z-EoA<>Va_CYWBC+MK&RNSr}M zN^5I0RDY|}h4i)xWK8Aqt~_;A{z@6xYPi*zn(e7Kyeg%h`^Y0w{I=ZpE-5(*ka+O1JI<7m=eHiJsQbVP)#ayJ>pHtGAsujXu?AWl&V=l=jCgzB z2u>{4e1_e@nM&Ljeoh&WX3$5DlByvehXclrmAZ8^fLoy>H6iq0vtwz^(v!>&@ zfvKvp1yxBQjbD+a(+Syhjq{zA@3NrAh9o?fi|K|79DzKVuT`)qKzj=SC|!F%3N)f$lWRw!!C7eow%CIqWJaR61a?f$aE+D zsAKR9$xcKq<|IDu$T8b5EK^|9b8%hYd7+)44y|8z%>tc9dz? ziR;+nPKnK=X`WeFx87OMwU;}6lO?6CRTtWA2#ltS~8Kmlku|!Fkw{N^^aaynE=i zuTDY|6;YpI%x0!M$H~rYq{mR&%3u3gp|}8`+iZqehiS7u8e_3AGXvHrd!>e%FM~=M zRmo;5dAI5VDt9+|?i2MTZlpj*!o7zh&&rcqpMyv+droC;zsXsS4iH`h$z4FA*0l7qsteoKFj;bdLeL%w_Hs)L|I>j` zQw2eI7`(2^K9_at^&;P!yLapL9>2TQ+9dL7UR7Afl&5(!cHRcpxp(<_?DUSoNlLhs z7lC*S6)kI|;^vI|Lu&&{&!wPdgOkYLjs_);8$+4J)%!q)&?DlDuGQ3W7ioIGCBQ*3 zbYu;6$i<>?il4&8T+ig%VL_9aZ0A*jr^1HJ`o0zo7&$I2cA;0mp^T2?b3A*R<7s`j z8fXY#p?Y0xdY^{8h~MJWG-|8SoU|vtI#tVQ)1L4RuI$nvPz{#?lGPkf&PcFv4{+Tj zvygOGdY{U>zRM~qq&lT(KKv!Fi~*DtpLiNGl2&EpZ*|8XpeSz<VJ=-{hO2r?a;93*}s1q%JAL!oX&y14S7eZrh5!RgmE) zG}2H}i1T+mb@3O(&lW`EIW1R<0Cu0Fa9#F!0m!3_89c@A zF;CJ;^Yi=B0TKq{L%!5VM}6|4&XFvUK@JLCZ~`3$?f^UL$WAFKSQFh(Ci z@MstKiKEPlGwh0<=eoF^k?sqBOLKZag$xGdbn>Br=FKzgi6t-mN1;~kS=U4ovAR6g zR7@pUXy+|v{8ans;M802E?BEvVKxtAr@LDh7ebbq4O8u&-tzOz_Nn&xVYlP71~jy6#loB|K+~6?C*21wmrcAM}mWtRVL2DDifSWFGinfj-F=E^=}oH=y`R3 zZ}Ha4=0J;!m=*gGaM_z5M#dKsmJLU#Xr`-hG_mm45rT74eRzvmgTxVnz#1kW{I zYt%fR>i|dUMN^u>Y=}C?PdW1-wG6$pscRYe&Y%nGiY~gunCeNrlc=mz2JNfM%U6*$+&wb5RGvS&|=63z8 zHP6f>z8Zz#8r7AYFDlIs5;De zi}&x3As=}Ls%5?js?B^Cmh%E&4QL)^^iFi^B_tfK(6|2imKibI?qK(ZH{xLm!yhMG zGtH*ic8}4WOzWYe{-;C-G6rB4mikjxL&g*+7Gp(WC|VMvYQ48*cFwkgd5>=bU*_Z4 z>@PkZfV!ApW`oniruQ5;^7B0F&@6#W;kJTOX2+d_ui<|hK0w~zHXsy?r^X}LiF#I} zZPU#N>Eh_NZoc(DWd{ioVhY_khziT7Q3X|e(62bNpkwQyB$W?@wPn_QUB0Ko!0`G` z-m0a6!sz-=`X)yY8T2(lGH$)1|H>pKf6nh zZS$ZlCpYHtxnmOu3^09&XQ;8w>^aNsR?-3vRYM#3TZfxpX<;-`3~qV=c94g|M^_(& zQ9Xb0rT!4tBGRn1uPN@~uCzS4n$?WzQ4^n7=90N6gvrCqpXS=ry1ugx#ewuz)AGNn zdxexOH^0o~{D}ix>3lZFS9EM%>r{F(%|63v8)w@Sy^BvY`_8sUd!L$Tf^~Me{}Fm5 z%rD|n^g*R&Vjane<>%=oLQ>&t?$+eL{u<=EFL>Pt_B-)*+Wb zB)93zCekzl1-FQMD$2%c$h=SNWQNVNhxOZhYX)t~qlrbw_-5yE`lh;+COB>}i|5$` z#@|3zbxRhQMv1_z1-yNA8R|+TZlS1(shb;l-U5om{YuND>`}j(7MeY7A87h2JBwP4 z|8gnzbuL$hF0EXW=!8r<2_|0#qpFPow4t&)DHAiNpTh|li|fq!=djqSD4=L^CG{Ob602E_fs?^>$3WTtfpMy3xw8^U#_r*awYQS$mH+R$h%X;@f6!!iMFOk z7)8NbxZFx3D0ihygm@Z-KzQArjF*7#XLmBspUddGzs|IrYX^f5XR)gVjU%)r5Jjl( zhMAu8?asdbexKFU-e=7$Fr(+&qc{(E(R|{$`ps)?(e0MvODV*T7!97rjG-V<&=0}i zQ(ZNCBK3~`@YObLbOnH?>BdxT6MIgYZgBe0d@(kZ)qpu`-R_(-RA6T=>lV)zgI(#w zc67UtZtER;7;$FBJxu&^G_x;-!h7faBl-N<01$x_bf=v)&2wbzKNf3}BdJqOSe=;e zDb!4VD%P_q{saK@J1mq0Q^tF!N~=$%Hy8|op3x(mpjEFk#-PMPhH$ulzxl!k-qdi3m! zm$cnbDpbM~6ml!UMd6BrNG5$}wz6C*Ti?O-Jl`JO@7JGyK9olpjqJk6TIXe#L!#+% zkV@$qU(cJx=i8-cJ(K;UWq3^{2Jf{MN zMfl)dvqmrP6U@KQw+9?|9#yGTE3nU*NO$$@3+X+9MU_Z@6=elBJUeBDu1M+IdYa7% zZA+YOPX8VJ7g>?vlUHye74TV|DrVP!p4D$8wwa%`=@D>1wp&6U5Ns||%!Y~JtV8Zu>H}$Tuy#1&Dnm;|s z+e`YTnH_MTUIC55i!4q#-t#*YN>s`-VxGUiJ~}45$rD)Y#}fg2^vvxoquJ9?n9^E?Cq6J$TaR#QSno`2!h6uTifx{( z%Qtc`W%J5ZEoTmK)M_jpAkkaD(wp17jwooDmD{4E3X7Y!bYjkvS6qKVprHQ30K3X8 zHY4O|+ONpUf)Gcq!ywYc!jLFE5lR<^*xejnnfNDMqO)A{z(QeYrR!ZN2BW^vl0+F8 zznIPinkzFNc+Kw>>mi9+Oy;8Sg2YpEvuc}J>NIvU=29_@afKuPFL_?5HK1(?xy`f~ zx+SkKX%Ew?E|jRCLR~Z^e}=RY3+9d>yn{;htBZu!2Y?Xg;Mm4@sCXt5zj$&M(Dnrg zcce8eaCgS~h|5xJRw3bVfrdtBduZ?MWPm-_-~IHntM*i(h%6s)SD62)@Lt~W{i`8> z&@O{l*S8)T3{XV?6Cln(Wwe&y39VwF;Q9wJEu~JFYmUCiE}y%MjtG?tDWklX@vdK? z@Js+#-BP9Mq&h5K(RcCAseCVE>$Lk$9U3({V;M(D&Lwy#EI;L8gd&Nh)7ieQ|P4m6kp z3+!HEapI=D41+vP@rzCSi|t+~utGvR5wc+J24pCO(Ce?aj z9SbM%_@9vu4^!*zR^>`mBuW3DZDa`sy?GCZJZ0F=!)CevN zv!0z59U5UhhqNC0n!@r|3b^`gzI^hXPFW;hi?~UZb2+LTnQ=FbC{401+gP%=sUZQ) zlJYsJo^h0=b1_869C=~fn^9$MhyYO{VzUv?cY8AZfHvp@0iJ9>LEKUc@ zJ~b?c5I~ZN>O@~UCY{udyp=E=wwQ~J1s(9N$&0I=OBSdB^{i?x7l_)Or*+CUMkVPV z{TaCOX`a<#Ky;La9@&xt+@McK5-sy@LRX};z2Lg$LE`}Q7=~FtGahD;J z=25rORG+34<@W&BYoRtKNdGPxSAWEJqr#{ zqyfwTh{dX1L6$`XTr)9Y<6R7_!3h{oC+C3a_mf6;16}#Oc>4`Lq*~T zPiRf*FZ4te%Wu61GUI-5jVYn57(2Zk!b2-W$`evyNNk2&VV4DOqoi&do=B>gNMl~P zZa&M*y~6H1`zo5(dmB;3tt%-bTLJ?4^vxGQ8)unI3^fcwYr-ZRidgr9*D$S1PKcP2 z6NRD8=B+F29^OmNGKa6g>-wh6m9B8r>jPDJG>uQpS52&_hLjar2{)XP)Pizu6wgF< zaTD+OzV`UB6(ItCk?I62)1U$g|1mOCj|ZFuNY}BW9hpsd>L;Y+TBwa?!djGH!%au- z)kc?@ORu!^MmIAFVobZNda+cvDs9LNFR}X5M-b|AqeV%#R_00i2@~q=N1Ug5r9CcY zrvV_&5F@=mZsz&uC{1DJqZ|fUZ@Ac*K;6YiR1IBWOWgUEYopFeF92|TQ+mgy+nph6 zFtRKy=H22vJ6lHh3^8DiZfuaFT=_;&-2*&V#e+2*CI>}lRzw&{7bUG9B; zwi$P|JnmrX09j@jAz#1^Mf*Xba&m>H;44pjE0%S`1pcDD|?rHZx_lqO`_T6)uVpd-ibYa z7?i=>^@GeM3)$j#o_S`W-K*#lsHkIUJ~7Th`@~LriZd%|Co>cVgU^ZlPBSMgvIlqC zj9d={xWY@0(E1EN7<1hs))}hJy^A=guNNnboR-C)PUW05 z$OQjr-{;9U&;8Lp?NmRXUXhg7)g8JxDGo1S-stFFE;{(fwRX2o&;0TmtT$vj{*?LQTG0K@OjB{4J?@0& zb{QC}>B__`Zg+r}3GVYPEOTVKwC?{=)f)5Qb?lI7_*3hls%+8g$tH#oS>#<1N_8yM zoijBgW~PNDc(=p<$pj)zM3%=Wr~E>-k9YDU_kup9slK&<*+!n|0C#w$MIOFawb92N zpRZA^qm?`+Vb zfs+S3N4WUwlw&gvEKT%t;+p=hbE@mn1knu5yiMSNh1^IT1Fx~s4OjL9b6@hgvxxA@ zJfym>43Tk?i=WKx>yo8)O}d>uBTxG>ZisRj?!48?3UXMg#to?;97o4lm8N$td6z+N z1)G+>n^Y&n&rh~DcgG-3GrUBgCBtK@+%Rjx;sWG3OR1X3eiK-i{DxC$6{3XY>QkCz zx~6wJ?WTY&g_;&hKqw+?;oY*9Gak>K6QK{6p@ji_26ZU(`ht|Vfy0yPyQIYY+BvK-uE3QaMc;br zi-4dog0TtV!kTeT6ap}a*w{KN-G|Jzh(67`R4}ji%?I_2?aknxs_1Dp_aa>Zte74O zI8|m9ul+3FiYKoF=|Xf-Xn8{BwTtkocRMthd5i5Xy?>aInFGs_dMS(}qa-&>`)J&b z!1bZIeX)JK_kP>Fzt}D>dOeom-6xD^iQR47#grCSzT?-5L{rcRj+mVm%PXB8-OH|w zC%T8%J`rE8aMfF#Q2>z%S6%LKkj303oTArjruownjtSXCo{I%!wi9C4XT@5Lnfkse zHm@$RE5?=3DN#lS(IwPt`B(G$4Htw(_<`hE}J^()=5$Y+jT%F@Q|GtIQ6 z9B7jg{J^d6ob{7&)ZQ}csM02$xO^yQq}}C^CRcjX?>T8Lq2x5L zPGu#oTVHV)szaEoC@XkXc0To~tmd$!W|}vbak^rY@hrCo=bYtfHN%(NU31#*0JK)j`+tz@wLv_(0-?H6KOE|8n)CZ?j($f zQG-a)fj~DGdlNZS&yt@rFs@UQ);Ye&l7z4B=7YtEhPO1b8s0~x%y3T$mTj*1wXlT; zwq0qA4g4%5L9A9XVmh^a;tpr-&Z7XZ=Ro+JugZ6Mn5FnsC_w(F$@3L=73y6KzMXeB zP!17h#VON78P6N&jZB$u37zy~^Xiv$NABL0+*Y|OxtK}0Xq(V3-6v2P9q7mpHKas3mAx+yJOui0sn zBZrBp9FRB>ED5lIO^h!Zc)aq1EPyY2I!11F+C`Qn02&N01^8X2%MGkY?_=%zjPz-^ zj)uGJp<~HQ*%Bjf^G2uFP_dAZywT~dXIU_SI*w+>S<$8CoLmv2Z`zO>2yJwBu2i0= zD*~?ND16ImWWs(^;wmeXj#Bq2ugXj(Z(tTLDquA2S6cqci&DzMSytmY_1RX8$Rq4-#5a^!{xOdhf% zof}$;oB?ur7YMVBm@^r5NF&%tN5dyB@rL^>iH4UhvBIw|KOfo9J=`d7wDVQf?&Mz2 z8*tA`XLn!NH?)Ka+S24#t0TNhC4~4 zav~^X@c=e? $BHoFCLC*O%tsEIK=-MBoF8@VYl>{PB)4lhe-M2mgIN;%CR9F&?H z2`gSv6<`$F%AeB-qJ`AIj$>2kixqL~1T}Uk%9bz@H z*Y4wxoXX3$k>pib8I>KeY>N10pM5tO%XJ z>&>A9zG@m0V2@YsC*BGXM(j)v0Q#N#^XARNRbTaR# zoSv)|of``9va%7Zazc`wdg-0~a;G3`E*v=HUGbz(&xbqN@q;&VMi1!isON?_XV7tB1HCE6JI#vf)-b!! zEo%?UDDV#X+CgV`DHb|w*fJb_1IaUq1{aHeNOzZJ8&)ORwU*TO+pvzd{hS$kVceG} zYHF82XteBDHyvr;HO+HSg$DxtWmMoL4GxyS!!>1xSY6l-4bNacZw~ZMD6e9V+5nnQ zng0VQI}E*6S=vimIkZ&(fO}(%Rj*~SKIci~(YQNAK;IF@D(Nkj#gGZ`PCn5xtdoSB zC$X%x)>#SQ=Z|3$4xPV=FG~)IqdeL01w-a+t9&(CM+3U4PSN))ZU;MJ*lerZ$5HQ@ zX{_rqlzL&+sYSvjbNR-M655f zq|rh`HTg4j%uJ4<4wV;%HXqj~AqE~rnQguICAVGnPI5Hc8VDeW5mMJB&Fs#{+FUXi zDo7PTUwZEApM4%o1DUY)1S?k(pEP1^a%q0dunb*A@80AKkS;4mN3(|crgZU>Cp>|A zOWk_QXfITcUac3VhN64m$_(1EZ}8j}9#27Z8U8WfX^`Ty(1|IgTIp`y>8AB24#9ln z*sSz{8N|+;nOkZf z0-Isq)&`WZf6zKx*(C~z9r0ufOWG=j{$>mpfFsh3;;7jL5}VJ8wOOs zSTE&3&0waECFvc#5h66Mt6StWYuC)=l4r?;h%nNS#Ylvq*HD`Z$ADg}tB?vwqzFcV zdJqn~4W}i&!~pBDNhE_MO0}m;K#9KBGJ{uMF_Pr9TPbx)4v@z!zfATFv_B;P*(BpB z8>Qa)*AajtbFU)}N~re$?Hwa4-CY}bRz^b&Y~v3qcV#(+JHjLSE~7{QNx4WvwPV3c zONLJ0%zi!rukUZNe4rI2&nQk*uY5fzBWYkRNSXmSC z%u*C#bTaQXXd-!hr2@y2uA^ebH?QDB^tiplA%aI;vbiAajs&KxoIl?uGkiu;ep_fa zR$xiGQW0R`7?wt;Jf(vfbZ`$298~5zjwk+(<0Wos2+UX;XLlpLQnXq}8keyv+p{+S zXi|PhMe8AKv~&;NhhX^XUXB1{?8>{!h)e?t0ibEOMow}iQ@;T)uT00Lm`t4Bo1H7_ zpG9L$NuLQ+16Z6JXvNb@1384z-0b9V`SMeZ9PHfKH6<)rFeouR&b~635wc06fhFI; zGY}vE^lZLDm^e%o*Ab(K%U0vb{j4;@14%U+0(+?0w>?(;ofs>DFW`Z9b_8yIZ%1Is zi-Btv@7Ynm06Z2L-rX!b3nc&&TEi`j}qOEDcwDuJcLig66{=aT7kCaHx)47aL-%t)DtVg9%Q4w(9w0I)`LpY{y)Cn1U|~@ z`s03PlF3HMJV{7^0m2XvBAdf1BFeCcfQZ8?MT!v>ms*X2)>>=ACQFHBzlb2?ZYgS9 zOKG)HK@c}YL`18zID&~HT31B!et*w1vDWwfzn>2e&*Zt=x#ymH&bjBFd#+Zedylcl z!Eq1);Ry~)$U2m1-?gZf6?M$Q{omF!ZS~fQnj>dP`~0(4mgqC;!ygwOq>ahCvJz9(LOMw5Vv2J+FH$hc;Y0+ zs7T@r28{tWZy5h6SBC&w_*!pqaVe-@8yyUO>H0@1TJeX486%aeFZ*;1z@! zKS-0{$`F5_=X;-dw$9{8sJ;tyJAdZuX z4OQGV>Nq&A06bQ+TQS;r!yvd)?om-BG;0EjU>&hq?$Uhfh~Ikj$Tc=5Ow_ngcpVpS z!MTaeXNB(2gktS}Fjc`?GREpyxYWREHTC-MK^xtadkZ?>Z_x8x+0tC79fj(CQRsOJ z1tAenG@5*haPF$82i*1=P7~#8X4R>3sdnp~kR}RMA~mlF|N9o?Wo(kMOjEGIKRlqa z{VUyIme;UfF!y5?NmWZyR@7X*!5?TDWOgrB$aq5MCd|qW{7E zd`>+flNaz~!^MFw%U#f$-r&K-g&D8bp<& zO{cs3#l9TNPKL}GclkTya>GcJn6uHP=Hk0J!n#yD>>11yMe;?P;k*;5@bL|%R6M%M zb!yS3nNHhjiM)m&DWj{n;-p@)*Y)S>N&5OoZE9`(YpIR(wW%nN9Aj<=a@8rTg?gZ# z?pT_3s9|_~olt`nDn<@@azpV2b-H5#mR5J8FFw%}Y~;921)T17#zkAwntjlAGLy*q1~8UmVjDLLPkYMtOacrC9Lt3cMuC$0rF`IGZNni)y#vyBFV|1 zTUKMi5TrfTe--s!Wk>zak-v&GP*WzECpP-ae?5}k!FC&z@rraovGOStQYEwarnKSw zt#QmHzoe%X5xZtGlILa81fbM65sfUj0xoF!Y~uLCr~hHE!%WzOok`PGU=5&zQyP3W zWVqeV!NF2j{Ye-AQQrP`o1I!TKla@0u#N`dzdtBY?Lq@Vteo!mx0j@3XjYw?KSFi; zbQ^MpdXqLR>&|M{$Lmuch0s<3WF(nF(E5`qWk%nUpsf<%{;6P~NJOo!=NTk1N!71x@L9iTkv@2wy*#rZ%z zcg`b;(JllF+cEiD!ARmCjuN@b(Q-YQ$(EdB&Hn^6q)xq%4D3-*DOx6tfTFd7yT|Yv zP4uK!b=U8Kb1zODpz@x=5*24~Uyla)WGhp)ncF0LngN?}z12u)RN_kregGmo(319O zrqSt8n4@*1sY#7W5%R1H)y)-CibOMpL~4B@OgIPv#~;t}T}Fr11%RF)t8Z&TLh)l1 z=_QMHMu(WO)T866cS47NHPTrQXi<~Wd4otq7yRT&YWo<$%zE?^#bO3oc_1(|=uTe& ztf_t9?Pw0xGSe~YFPYMF43* zMc|r>llf+W*6gS&OVvBE%pXp3P>>4qdkCohmcPTig}$}n*FfO{)ICD%m{afZ7jg;h znfLhHb`S$l3lYXynouE7Y2pfeB1qoDEG>nQxxq121LN7-2~T-?ID_#NKw!w>fNW!> zHhtsj>ohz+|ZE!RxAm$3JO zT~5v6H0@}Di@DB0VH{`Xk;Rj1*4|6J_r>%=ROh48QY;(Fbz>+DHBL$ruxo>#Ms@gD zRH%mc)0i9{1&DYXs;0Bw^E%%}tr|k{rsjj#yZL@_*lre91g;IPiupqK#lGvbJI-RL z0bXTJyAP4}N<2HlwmF|^mI*Y`^POk+JQ)Ghe1xX*s8-F_rJL{H+&tyDep z697vn(_CKlHRESK-(|=PMz#Os_{1+$egSBD-tW(;{yjOGF)Q$uI+t(4s%lcL`gR@P z^scmF>d;(sSM*IssIMShqoX>Mrth=TWd>2EHDw%`M!f}WLP;YakNNBU{zBhhAkv=Z z`TOB@ck@$aJ=D>LGU{m$ev7SWr(9{>(|IIyzVWyRrL`ZVFaz1}=@yjfZ?jIv3gux5 z`~xdak+cj*?;*Uy zyu-Zr7Q)6P9I|Y#hE6g^B8W{MD~idQg@6AjYGY99>O@qbB~-%gQP72AqobEO2c&z0 ztp+e88W3k`=9LnW0^l0z?N5VJK@Sdl2^EGbN;NmaYhoGIkq2VmF>$P@P6w%>2nJaz zZw-p}=^ex)BSLZB8es+?=?&!kc`OA|u1FKJrLE(~VLEBauJOScjs?-4QeXA%8`?J5y`wYZJl=eZt-Vb&x6* zBG;^Zh*$yL>5}7n4Vr>gwIw4Q!^=UZ>*C@F1RVbkyv&=#s%;-F4w)3`Iv=Lih};qaj6C8%sw%#-FfDkuO3P+0ns z#&QT_1*Nfrqw!n9RVXe>%#{xlCB2zWFX3!n8`*y=>FEU^K7u&q?^F3LP>|eEUI$5nj`Fy&yJvoAtWWLv$2Lcs}+q{OGZpM zRi!it6^OaxxkttN?ITYndGuS`^vah-`g-X7=cB3}wdO$;a6>82GQ!ck2SqeVrzCw) zg3^v-jcwSyFW1_^)AEg6%dXG0o(aAcM`9%$XoK^U&jeqL?=8fqj|N2t>%+AKGI{N% zd9yac+Jat1dG1btIf&v$#>W#}m=Hr3sR?Lp=C=nJO+wWrA{kPhrVvqw)3oESU@?{V2X&fAT1<)ntSAx%BKWyPX(ob4+13?HZ6*Q@d^5`uM#Qqrtq=S2 ze0LyPgg2kB6x`3f*=d9n~C6sqyHrWjf1+Fgjj^Ol8mOt+37JFL@$&k zNZun|Ogo$W=O`VNS@p#H8bp^x5mq|$w=}4V#L52%8;~NSBXU}QtB}&Tmf1mzD9o;O zsp^JfE`f-kZf0Zo|BIlu1B3w5{JxGnXW>ol2>NDHej=TrnacG25x#jO%xQcWZ*gk@ zp#|pL(1e6$xHz{2X(cS*S@T)NNur)OYOu6fjf+*e+F`bz6oFl|b@acCUZ&+%f9o^d zK0#x+COy1>WJi83{)iQYFDJChml?|T>3Vf*MU0TxEJv#_w%04#@(gqFRyJ0i#x_|5 zY}y8PIv8{{;;?quSrO=)W{qnrTj*$3K15?C4XVtMq4crp!bJXxMJe_-^4Ml*2m|w6 z`Xtep!}|1Qe(M4$^`!;$l}DXh_txs%G zvsSp@r%DONp5QE;Z8u78X0gGy4&|agLcgAMy7nz}u`*)vB4- zdzyWZ;9=EmyzxHDq1TodnC_4IM|u1AH8(u!AMD-T#XS0`KTveqO=(jdAjldvu9rFV zsDF4_ZeNImG28%np}JL$2~S`v&jVe|;K%#}i)z|KjC_-pE$YRqYyM-{sXppMS@5B* zI_1stk8!m4wl3xX$wjdnDdu9rsqV*~rnJsq)_p(U#mp$?eE)(&BI358%GyLwSOXMk z9d9+5nRWhBZR@>}tE$Xrf|=f;_Q7xq+|+zS=0FZXNxS z=tLLIlius)`{_+58z;NNcI3NouTRu|CP%KG9Au8y;i^5Y&XhgwFYQqFvWw~;TGN;G z)hsYi?CEP#b!Nij{?-Go`x=vB73u@;FjS^fY+-r%Aph{p*;5zXoRYP6NnaMN=)EID zYkW)0rpNuK<;|jqApPUl=D_3ru0^|8<3_B7iS}$Ws3)e#6g=VY+M!mH#bOs1i{0Mu z^R4ej0CAW>4B~}rCOqM9-TkwULSlrq5k`K1`)=y!S+l-6*(fW3(zh}*hEjH1$c>^f4&>S(T7mb@;Jdn;B!7r>{Z{%5{QU!7 zks1WiMJo^c*y;9!nx;Z?%TxaHvhC!P1?Ux4@nR9p`4t)T$*;`zr~K2sr|veTPy5Sy zJ$<%DVNGg8lZ3>Y)QQsnEhAWW6}sB=U~|dSEW1`*t0DwygJfEHHmBs4`{Jx7yzpr% z5>4Jr^D4HQ=CwO6jZSCH)IDF{1u=X?9FXkF)g{_8l*tYbhePN(Vhn22tB6Izf}$2q zn({_mD;$K8X-zy=dqG_F%w7`yKo{c2Efy|+5yh#pD%UyJ4T|4t_f&vXlE>)>ebaj+ z^X;lr&DdxBf$?9Ixt$TW8U#@*ow0MaBIZ`P<1mR1!I~UOZS%A7YQVdunSyWl(PRDL z8S}(5{=uWp8iqjRfJkK;Z=!{z-Go=IhH#e?qUe;yunOeeh@D$w@bhm69{pS2zxl8B zc=OLOcW;9S{_}`=X`6qb_t7KfG4uK&>t{yS$dZvM*L_IDyzY@KTM z{GADZ-&Aw-@BV?)<>;NsJvI3}nwpQnKtN)Hgi|KM*TOEEKZ@H}#8lW7*8VqkjJ!!l zPBbnNLs`s8mjn6MmW{dA+fU|Nuk+ONJoBWvZM%P&x9>oc_YeQf(j9w%sS+kAS;||o z>Dm%=+dm+<#xKpGf8f3PH=jBF4`6F~ohkb#*W4e)=Sc_>;=kp$`Xowv?@I^i@f@{} zlm7n4%`N0Fny&BZ{G7UJy!cD=+&_uZ@#tZ5@}J0vm(MVxp7l>GdWtO?9q`p8)z;~U zrW+FF8!;O z`SLmX5$s{c|I0tCd(HrGiqfaL_iAI4NvRo;3GqbwsxJ5wkKAR- zUi5b@J)i9aZGSqbK{l}nN!)SFOn(viR(kP&)3n8N%Q3UzMdD4g;QQOmCv~Y;feW(A zPwiq}f05x_)6#rN-QEk1nZOSJ)T@8@65vDQLW3-z+}n%$I9EhcR@;APfhyInIt0t0 zV<%nDwiPZZbWrzkx!A?3dn#!zBe^Kv4+n>f_&W@mg_fPCm=E48C^si|_{Rnz+S+~<)=K0<{z0=>h^ft5` zd1#1)72Ps>#lF# zHUl2AR8e`3II}%;Xk6YjbK4Y^BdkmnR?o+%)Xs zaBXLHq(sRKqZBu1#^uPTBjWyEdfZJPgg`!TRjzdzCu^&uMxfC$n>{iawTY}j9IZ{g zMps(_%6{sC;^Uh2s{1rRRrAHRkzZ3G4}W8DN&Z%#?ZmgxSJ- z;E|@2O@q<^cLG=|4eV8v+gq`N~ z|LVfGn8p!Iw9?(OnclxO@9rTo)NSU+J^qf~NQo(X#XrzfX{Nm5?=fXm2NbBtfmCHZ z=F{*w37ixXl`MWXp~Pi!O!;Jct6^@g)i5H@YFNRu-(~}>&}wMnox$77v$nO>@FdT) zHUt$9SPj>iw_owEzWnPPtKof$5D=xIu!YsomZuHRA9!xz*~xQGzSVF6&&53TG<5~< z**ur?T*mVb&qq8&k8DWrKnV>EJR@6L4KsPJHm|)(c)tdw@vCg7e#ocJT#IuW)|So% zR>N?fF+8{M+{v?^=S`lLe$Kt|oW|3eC&cp=TjaI$Tc+Ze8SVU$ZGhQ zC!^SEDCQ~R>BaMVoxtoOUMgy1y*% zAFW{L(8<+<%<$L!k1_#Z6H~gnz)4u!-|4>h+ zdEgEId1YS!hRkvmuxDL&zG_nE*tR;n4C~q@8rqqHz5YAAFSRpw@AY5pJ+#E+y@^D5 zV~H8~CUKeXyU1N;zw69rmjw^Xweli$vO8Xsyu1$A*Scu&BeantTVx$(Bzs-zVs`a2 zF$>BHcPv;Rzx@~K7m}{4RQ6&zQTlDaNWXw|ED+|cH~od(=PHp(oyuwC92JhNOSKJY z6XPXkoufJUZIdb3=kMBS;ZQAeU0`e5xoaM64170&`Oo*2X39Q)H}969xow}nd(j-K zZ?0O+v>If#^WD?mr1tqc7xYMjrlcQFH>Gd+&n`R#b#z$A6mf-3#J~^?$Xs$wek(I!zrS|Z77tnaZE>@#FgL#Kzp&4GMgYsC z1KgZ+YiQbek5EJ*p(+ScBR9cec+g7;ddU3vHe7O{>2$z9!gtBQrp8I;sslt3?3OOf z0OZZ1ur$%~^tV3(&Nl91D&i(vnL$Mw8vZ3%Xf*scI_dBHl&-Q$uSuu>mUO&2(QwzM zG6>f)&Cz0~#b*YrJ=t}WHA*J?9e>N*u4lOwUTiwN2Kp&yft$wV%tKx zG@TO$D3CKu{2l)l-UFZiZR|n+I?wQJJMyjYmRzeJ&$iup*884(>xWIbR_X6^ts}fs zJjYHpHSOkk?bTOb?R`zI6?`nu%HheV@mQ@ooAN{c`QD+Qn+FeZ2zy|$Ie7?0uruN4 z-t+e@C_=juT;V^}9rYKOW$*c?7Y!-)Iug_q;bdrw37-xsHs8GGAK0s*$lK^8Zw5qq zCcoRX820Jt7IjD0H$u#yoE@Wp6U^pMOFo-ne)Yb;$E?r)gMI}mNZC069Sdu_kX4y= zT3cU~+|dT-y(+xJSu9})VWLNqEB+9S{R&-KdH+e?jPL>H#DLPWF{XOit=`~s2j#Oi zfBX1-f50<#%J`DqK{PR7`$hf~p*~binswvRLWz0AtpEz<#^ZUd9nCId^^Xxd&5cl`>){Qe| z34i(7XHfNxk*1FwK9XDPxT=fYc$V%?_9gA+nx>DNXYij|yYZ;o+P1qKSSawaMkQT4T%TtikFuH z6f`5wur0JJelFg0at0P1dF&M^>D-_cjAnclT+Uhl$5Z}p0~Y?GiaEciqPMDuP=ytP z@x|g_S&QOVo0cDQ#lfZK)Q|n0Pl-_C*W{9GUAV>5NA2TZ90eFheD((Op1L01bItW1 z6MS`yS*h1B^Z3X95#Bw2Gv9pd?_2oL-$aP6Si?k=S82{TOxWZjP3DfnELIORnFEJ8 z+TY5Yas=tNEz68Q;vbmz1QMKP;(JQW9Y;`*pMKvYj&P85vucBRZ!s-Dp_VyWX4WTQ z@{BLc9iRAb@~!CI)X1s*2LI5OgZy|@rfZpIrZjLB_PJn#gDee%Jzmy;)*R_$wluKt zJ;-XRf;nRa9XFFeOZGb-wrW>l*;wEUVwNp3eH;Ddffnh;OH17F7fQRIa?G)78~t5d z=9J)%$@~-}@R@rW{l#aGLg>q@_;iZMH9;FBik#scw=kLW{t2{+wW%EXnO*bZVg1go zS`hQp>`HA5?~H%Jdb<%#^bp&>5-}3nXf1KP%o{ZID;Rf;za3tex-jx?YV`{}V(zBq zu6Lh4`&4-f>lQ8<{RL{cgl-gi1a)actyk zajPmS8-Ihx{;F%LB2tskMBD}-p0xFi_$GNGMAw?vK6##b`BS1QRG2S5^|$MD4pnP6 zTT%FP!Zj}pV|#OC*bQE-NH3GXxE!cGx$V_-{7iG!XLu5LI84gYWP_%qrt%*f5I7uf zu&TKHH8dIr8*5oc4SobK9*kE+mL%M3>!~6fEq(=n;$W!hf^4TZJ~N~UrTL!6wrj+bNx~Z@{u!Qq#OQ<5w@+qM|4x&8)Zg*c zXEg{Q>>s>!k}iYO>WJ&S85R*OHQ10ki|@R(X2MZ_yRlD^?Kbvs@o7A?tD|ceKb>Bw zM`FXx-}>qs-apulw#b`lZ{}<9T^B3=ikQ#7Cw2_m$>&6JxvG`5U3(N^$nI8@95we_ zlyrrHsiqyfhB!l2yVt_nR|D1tU&v+kqPzDpn;NSkpMN}e?B>*7HiBm`5ON%v9A*PA ztgCJ(Cw<}FMx)@AwU)#(DJTB&s>)iQpYyRNI5J_O-Dk0q%nmJy5glRKWE#hHDY-XT z>n%H4Ta+1I9vj_#GpDNW^5MVj+iSg27#Y4FYPdJ&OY4q8)Bc#he>LRS(1KE+!D%iZ z5Hc*L2Oi*R*8ARx#_Xzvv2kIZ+7f3v1y`j}Ua`8#=^iJGIwh)aHVRD4An z4=gV4G1I^B-%xPuN5;f<$86UobLb0yAa{0%!^GkG_@B*>U-&zgeMJOdDUEPDwega*a~z)+~<)dlwPRqt4JhqeX+da38F)q#ig9u zko?0Tv+PU%sIuwQbwul}D&PlKPmovk59K-QV{`ONf7cT07ck5PhLPsf|M-Uvo5N2v zJ%Of$0)aX-v?q1_m$Gv>9teTapliv%&8e))%VMK0!DgM66&qK%G&QttPinpS%YXbA z7hbr{^`y~^Rdr)b+pmyd-&){XZx&Yg<19$((ddw=83P6ZhhOB z#8>{aJG@k+_#y88fXK3S8b9@Xx6D~z`$u%z*y?}L`fhbo<6l@W59PXIJR{;=%spTG zi~C#xTp)~^^`eMMc}eJ z(@PZUSY}xE`^m|%FbVOsv0zQO7qy84>w4d5{e=H3{s;e&x}~Y#0ikBNG4XHwR|Hm~ z^{8LCRs}Mv+)ztbM(#|V)y>TM7Asm3Hv(0wW|n1{Ro{aB4i#qmxBl*DmVjO9>3f6X z%FbE3fR?fuptB%7B0cRpQ&+TRXRTEbcHZAmW z>RW6XNU!8TbNP47h6XJBTKGvv{1=i~Z8a~YKQ1))euousSC*@^Xa_*~e8G)}ue{HE z@ST5b`yGW=Km&5?XD6MeHurh)u$p;}X3UE3{lP-cE9OnBc{g=%UhJ?Adp&BN|K2~T zdNGw|SFJtlfdgXI-!l#S-ybh@k#T^+Z-x%Uv#dFCi3?~6t~+nHh2D;51n0;2*6&X3i);)jBwcfuq*U|#y!CP{z-8bi2%Xu#3nZWZ@SC6%SbG}t~cfNJ& z-TArJS5%-?i-{cf_iVZR^Cm~S$!z$5S$dqfH&dsX?Z^FtJ52x@c(XGTwefGUPn~70 z`{YWBDEoX<@`L~M(%NTT3f8H1VamsR?{JTq^@G1_S--Ae)~-#o2)e9&@6&Ea#d8+< z%!B0d7EUv-|A1bUHO(C7-N~nBL+NHi|82ItnzbW|f##eOsBR&1`3e7-eYc%V>q8>b zFy0E*yi_)mB4)D@5UGi&<@S-9l#dp5wDpsB%)S%;XS|VqX4#Ku+%^5ob3dZjet*Iw zc%M>hTYH=%)Mx{U_dJ~oQs}Y8Hn)=l)eyMyLUZa#f45U_;nT>kT=Rq`mm&iSM+zJx z-Q~|m0T{6UVt#)TX?!I{Hcd8V9fU~&>Q8zLS06rwZ2GQm-p3alo@t&x=|8XQ)=y75 zi^CjNTidwTR58wuvFOo4PXSg6zG}+5JJ{NT(>C|^RHcHcP-kC zG}Ukf==iaW9r5@5YxmfLy*q9)Ssr_!_pW~CY)*pqZ6^U#6-j*NxAH`;9#$=IpFH9H zPgv&_j3zsTHJG)a&2k;nG5=oXSSGlfgd=3YI`H+;{!0K?`#Z#HEacDXmu z(+tnByXO9JqucLW%=H;|H*d@D&4vv7cJFr?raY6X&Y?&<6h__r%T=d=uUx?yWf-p-@;03Hl+4)Hh4GsrVAz`oN;Cu2n390hBQ+Cy4GAVqb;{BI1UA;?lQX5j~}) z!lv%#rd+#g>*rcpfk4{tVsGc2g=Gb`MRv!I=E+=pfcNn>rXknvJ|;>g`5%bf{{Vb@ zJMD}w>DVz6*RJSlSylzM8HnSw={$+JDNkv_s$QdAm8rl`GXmdZ(rek zxXj$0Z+9;}y^~vY6Qiw@B6`gkZ(`*w(n#HwzRu?4;7l3ymM#3JUsRdi5aH0 zrQO-vm}#D9$t1b>2XnNg9q>L@Xz~i|zT8Q8RskGo8ZHn8_V}XeLbnA06ScT_tI!-O zu*XjCecUBaR7zH&3scYKbNIF{nv~&3)bXgJL_}~Cv;qoZ*&-N?hpmMPAHzJIEy-39 z%^r{eLlH9(uZ=8D-nU zy%!gnWj37Tcnk9=e|uJ%FKoM=XOU@HXrDKDkt6rq;eGftbtID5)4~d1?g1%A&b(7XXmmU+AS@_! zNNAU1F3kzM*Vkx*tcbJ2CUdCD)kQrPrc`!c@+#`|?IMREgwns!IWbTVE3!+tna~N3 zjP4=UuitQyLnj7pPU+^Tg>}*aonYX3nku95xDfz7VP+wRq2X~yxeB5NqFcrEU6;`4 zg4>*$#XH4Ly3$yP8LF%Fa%u?OP8x@64lM{V_2^~%L{roD%%CwJ7TKMucce#|(RW7o zDmKWva5A-m(*0|Q{2975R)ITOMyMv%MNp8Ijg3L++2I{YZw;C&+EFODIHhvR?}I`# z4R(O0ZOlj6HRMm%g)*5q;O1CM5;99-IW9`g*eA0xwh$7!&>+U4V!O3>$M4LRV!M0w z{zv4L?NZVJU=yD%d%ZT{2yrM%gDJl4gd}3Hb(8g#r*CGNiMS*00i08x#LiU#yOT-U zv4cg3F!f^Rm{{OJ3EYr-yi1s_NL%#jL*U`irfw-sb0{aE3cU^k!BHE4@VWVkTYc2c z%x`56o@haN&CF&VTu;=f&51L~tMUg}!E9s+#o9Na`&E%9wmt&O--UZf@@sN*cf0%C%h{FbrxL3U6bWS5!VrFLnH zk+dTV=aa#C=7LhYm-kvcXiCvhj%035{U%*uF%8)R%rkuV{${KBfP#ac#VRZDrn$cw z0AwK4B(uVoc`<%6$tEWU9BtZjB@K%Gd#V^I)QU5@ncl5oh||rK)~E~@b~LxOw#&}{ z9b+NllEwA@pxpaejIW|v>7aGdc+^5YAdlFQnpD1L(Q|&DK7({E0e)>hX>GR~-y?_` z1e)%L`{|gPR$Ec%s`EWfjr#W3YS3JR07lMLFuR7)%e^(ViNEk&M;`=^)F=tI6D!Tc zHg?y7OYf!(pzNi*S#54_W0wUEuWV{8E2~X}J)NBIKSmMNq%U1RVj?yOM1lJ@)#>*ofTby@-%>#= z21may61X*BsLqWJ-20?C+SV@1eJK|%N7r_kl7M|dZUuoi6kfN&{5AlieaI{g*gblc zfkG_{#qNaW_3V<)KyMQKy4rCD#|WC!SDJVLHD{^uw6i<+{gd4O>Y~Zp*wJ?avET(H z&+8M+Y}Ldv$x$QA?qDz(|1sPH*3Rx*eQgg^-O5Q+~08U;vbtbFZr?Q(_jDSEWN(FGv69G!d;5(WhpkdI?uYX&||&I z@3p-5FUYsPIWu>dRf|WmXG*TMgmV<)5i_OC>iH2{1s1rqv@@_X|3~4OUuDZo>|o1?%d%Tv2zfnb??9qe`{*51za{`$E2xV=59WFEp_c{D)H`QB5$j=5*6Dj3+C<|>ML z$9-sS?_hT==}`3lF7XfZd%QV!X@kW#CVE6N0_M-`u*%Q5{gSocM?(WU( zY&MkHqehe>7P29-gJgwc<^|EWK2D3GRvssWrelaY0w*JeO~cLoI{wexxYY8R&K>Pj zy>Oj<`-AwpDOi!Tl|fKg7j6l?hi{@FkL|EHN2k4DrCHU{zSf(!(s+Y*dDn+v z9gcw+9~4=I*DPc!tqO-J>KYeePS^Z7cK;4DHb^HLDg`(fK2k)m&2Nzk@YTWV`JnzIixK z_z|7{D6DkHsX3tZv82lveE>?S{tmL88nVd~aR<8x>4U0VC#=1}UGdD|#PP8mLtl&? z;}7wDRfehtQB6tym`$StIy(EZJ^;3GYRm|2KHMySVmQ*bfP%C?cwxwycFDh)H#^z= zI(&l&`%AVf-_N01ZIbB)K zU0T{bM?7bO(|xOEB{X1C+$piFoEg#1JYH^}JD`PA`$4C6glOPiTE$cgRxV7=&bGD> z5{4jK%UX}IYDfGLAgeUJI0f1-v{@&DR*7_-Zu+jHnRyCoee8_Ctvban@RTli?L^~zD*pM3c~WQd zOjoBU{%6!(3#Yyu&!}G&Kj-IpVyoi$4NZAr^GG+ACv8}0I=WAUbN3mU?C>v&6|>x^u)9{5 z0g~gdff~>gjIPSai0!8t#{n$zmi7~$jD6CyrB!o2=92cU6{~V(h9~xBa53bwDpo)A zzStM~EyuBXr`&znS=N>}Kf$pWxly5V)bEyA7|)0}-6+jC>661cg5{@57RGm&w=3)( zzN0?2)s62|yT{-JKetlV|JRoIznJD?JE-w_Vxc;wp(VNurdxZNt53DB&S-UZNAu39 z_Sz|bU;}q++5c{rKYN3=%h4T~SC7GG+oZRymH?U^Ds|@RB7RGEtgxJ89LW_g24iY0 zP|p1c=K1b+yK`RlYoeuGUpKTv`SeFGJ|HQ3o zx9QW z?}`$gvKauvq;YFJ^0dn1o2GEMS5xCXgajFir%unRr3v*%tHioq?$QE3)`1Q$(8-QN z4E#DWuYq6atR)!_E&p%EpYrV`-*U6Gw>^~k{c>-+bD&i(7wvX0cNoN=B)S_Wnyl08 zfz{QH=_DGzjGYHbB#}QQ?|&g}0Da@r$(DbeeWy>|dl^GSPJJV-F0xMdv)hcUT`HSJNHV zPQWE=%`JWGvb;CixL&}owK4bhv4;mn2R5fxoZdN>58z(}?@(+#ZFMGo*l$kufp8z# zW4iXW39|iH>2lHdYi2@U`^>3lV|5iSKS3?ffE?D68C6faH~M}b+114s>AxR+)y2Q^ z9tVU>R?qq!3T{G2BK|A%d~REl=xcX9bw*@UDpIv9HMxFSsxGoDbp~CMuCF}W4U_tj z$$Wd<^yz08`!-SC3^S%5`reE-W_CZjYxgM9Tr;Y97Ha0V|3DB<(dNHSm~?Mp6(qZj zG0*g~%Ld=`fD5gH66a9!E_$Oyl4hnx(nt9P>)kx8OPyGqqfyv;E;I%G?b2TDX-~ab zK)K7oLZ=KX(D*Szq)v+u$CTvk{k#nf0W+b$UEHCBcqaMy6HB!L9EW&h0{7KL3k%G= z{&tVjJUS+n-^jLhW*UkY-#0Jx$HKJY3zId#9(c-7TKoeS;AJs|-zUoPN2M+=)T&oJ zJgcgy@qoExfZeXVlcPvYPQFTDWXJLlS)CeG=Q?!2wu;+Z=I#NosH?a{S{j`^GDOY~ z^>sTgi}E0bO@{e?a(7J+ZwNQU(VgHTHgT{Em!&d>%|9%yR&^+#Glqx;DRNnLoKIET zwi^yVhZrYY(EuOdn%%u&i~tdAZ9&eJGEdR5qVdfypJ+T5C1gvL8$L%`$lB{W#coH_ z)5t2%ZG-r2M-qMLoHiu|uohL~f8O%dhaW;t_1E!@FjuGfmnAGZEy~Dy7itJP$3X%s zN?cw*w1eo?!L)Il#crMe z`BfTo=&u2#>)RVYn6anZU40ANakjtbfZ>5M6sk`GR|9^oSEF35EK zbCCTzFG1_ao&gwJQ%!*n&5dW+-C9Y+38kPm`60)5-^4I%#tpXHc=zl!vj^J)3tzy$ z?V~ygN=${A5675C2D93J+`K&4?p*#TsY)3`l@&ms<&i@tK&x*fQl{WcILQFn2f^H0 zbH;w*xgzN_>2Vv3D72oI%wKsd z%2e}c=QM-##$KFMKZAo+gL19Ac$V{A);8C=s!gtSK992++3@S zXI=kX>vo=IJu1<`>=|MYF7xTQ8+g{*LM&Hyij7qZc5bX%ox1RAQ+}2`-&--yJb0Ep ze0W!OH^f4+gO_3H#4ne>v%|=2=J;3r-$gB&=K%+#~(u6f5gVK6|3@0(+8KbsZAC&$h9v+dsAk3*(` zcWGOWuEMq*Ck96RdwGXX0TNJdLL1FuPsW ziY^^fD_WV}!|XubcSBvT{N5j$iNi2Cbj<@A$m+5xlxAwb5S4%4 zxpsbZtQ$(Me2+jgTkJA|EpoM#4lZ8qJ=O_AGCwHm3JE_6MFT zP0LZ(k3McN!$+ZeK3Ht#kHQlE&6noEQTEl|jR8}1E-KaireTQldtLqIdb4sgM$p~n@zHj% z_pINTmqy!Hd&ZeQW7yreC1J*np||^j=Fu^9rzvOxW9?DZXrm2R^W4ny1kYxkI-Xm3 z9_0}X(|960cGNiH_tVapjTz==LWdmPe;1Nce**39FS&Yogct4XGYj?b~1?5}OF=zQyBLxm84C)p6jOP4OOS-X zlZPGc&7n=bhY{jQ(u`3p z?ipHGviM|EK;N^#Nn4IS^ki3f0riaeu+}+bIIoq*n%OVcI)~?Mo-Cg4IZkt5%P*fj zyLYa&cUcRowr8$Y*)z9?HH{w)J#dxcIh|))i(Jdg`y9NaM)Etw^I0B$cQ-GM$J=3m z`DDC(UCWoRqB}K&yuxHO+gyHu-NW1RpjmYRyJO=%Ft1-=cb|GsIt$2YXcOihDX>v9 zn$R)!=AU@DzL|7BQJeUuRkI+a$> zZn7rWy+R*= zBwbFF@tg(!;q9QkwYg&wUJPr`B`hpPSWi_=La3HE^Am^7>yzxj#HFOkN>7&@ludf! z1m|Jd`2dFO2>h7#-F1(yF4E{Q63db<&5DIKm8`j8XTFgqc0r z?&f*d+%cIh&%M$-I@umxJ`3<98IIBw6}R`+CUo>R*g4nA<*7Voil*4hylsY{VuV61_A#BWU=gXom!cp+{;kgpo{FG) z$TqX4+Uvac>@~-yVtPK{H>DS{P{XD+2y%bmrl9Xt86@N<(YQW+&c}=sFga{*4eddRhmtdXjzs{eHny>&GXaQ zWz0^0dcw55$Zl8tS5h=zRF?$IvUg-*AfP&JjAnic9I>MNi#GdO1vmKsjro9#C;wG{ zX==O+5Px2NL%O_%WG-H+D(|CSb?IT|+Mm<;MwEELR zI4@ZYzZalsf(R z{*#Tp$Sh>(+asOL>oe@YCHa;c&Pxib4$82HDbH|NYgY5HzOT`(t;Hap!k%31O}npQUzlB%Y>soLQP%>!PJ8)|!|u@1TqEo0;K z#~iDKr+U?kHJ4_;3hU?A!}r z_|BgZkZX8eWimhK%{A9mva9*gL9?OK4phI0qN5Pqw=#S4S)@y+)^*etM<1kzKNH#) z59%AE6AThzIruz(Be{cb(#S;Jm=aL_AYmEwcmH5*>HrIQ?bz){kCk(XZU)qPHz&9< z6^7qWKFie&QPQjBoa9t62(yi7J|pNxcO03n&@Q^GB-5Uclggh;p6&BWNq;J90Y*Ln zg$lfx-@!dhlf!K}6;v(^jRpvB7{(3Y$1qMG8^Y7x)sP&elyv1A6e6^+VrJta;;eSl zla-)ftSmlu$4H)ORs=Q=M;3=$3a-ML z5w-m~TNr<0VCp3|k8j3cpbEyISPC{i*Gxm&@DN(Onw5kHucS(lbrHilyC#~yGJatW-X89RNkJ*uh9~j z3%Q?1NJ(C5eR3WUdPtO=A+vsC>LcDFsHghY$8*VJVRTW&mkBd?Lf7@(8Q)F%GrYUw zLMcu$obA}|sEay2qB1hnJeJMwm#|o)*CRsE-Ru7 zJS(EB#nYhvz*BwS#xrV?)>s<`5!YIPYTP;jXpopgInntT7FKCXL@3^pY2#;r=#+DP zjrn!?l>PUtiK26SJ62|KMtK z!DaS<>LD2J1-)XVst2klfm&kUyErwSiZejJ#SV3Oa1n;VMTxI2b2&R2W}X7wX?WC_ z0>~4dw`5RglP^DbdkG;&ec3c7RZ8JURUe$C!I`3XCkoBOo0_h0rkDp}2}ZaG$6l0( zgcl{+L-{?(tSCbwn#G+~ANJBvD}a0#@g}T^ODQbpe1++#2gnr)o%XBvZ4g@eJSN!U;s|86rO6%pz!T zG$SGSbZeI=TAdZwqG zrs>0NHaomSazdl4xm()U*wKUQ zQ!BGGVnQ-I?uUIKDF$_f(tUvI=fyZ@}&I-#Iz6(c$8R z7wy6X=^2zgyQxv!*rK5>)&c_8EKG%>>ge?3-46ChtCB|U-jKPDhHw5^V~_K<5O6c^ zu(|#UyLH@Z$4|ykyas40{>VYERWf?7dlyUM5jtu+w6b^GoTI9 zA$rB%)o+XUNP5@``eD`%PK<;V3&xR*g)R#f0fFo7L2DEH-X~pjgcmr%&B7^7G;oK6 zm%08*ySO^S_DnOXQ=?q_j0f%y^JUqDn!wwx6b7eq2_!5hJxr(YyH!MXEZpGeTT9M* zsOs^oZq;$Qj>D}C$jHcu zD|19QKch>Z}DoLZL za>BrMm(vg%I0axpM?}=I98O9>i>$L3I+)tQdSCfP4VOXKR$EY(EtJrZrRect{8l-R zH!^JUu4b3`;VzpwgMp;ScoOZuIaSH*+Q>Ia_{-AYiH@9-iP(Y{Dt`V&%;WFfRlNs8c{1V<`SIrbdN4CiRrt7%u6)HC&$(>Qv3=M`OGF!nreZy#= zXRy|%;gLG7S@j9;iE12HqHoUx-{EGuq9o3FXnoW0y5lAzFcHQRXi8cmyezosY3{Rq zntC6wLn|M!`mTP6sI?DJv17IsIlQ}DbWpo=#3hJ z-(`4$UbLJE$r_ekOqRD0>@O-ULLOHlX#z!y<=v}GBdb`(&7gzR`2A(ycO8bV1Iv$q z4e_=%;d;%!J5w9I`LX=S>cgy@Y0PzE(D(fM1+mtl_aVNFL{qRhaTma{*TztoRI4C< z&?f#HyJPjreP}85DjG>H2T6)vqVw9S3h5VU$Al1)#0&d>bFy&=eRGz_^&Gb#zkE9+ zIJz(ZIz%Osm4Fc0h2YU0(d$+BT;RrEq@h1`d!veT=Ikw2a|1L80Q=Gpl<{gZItWDO zkA}Xv1kcgm1eg>~?Jvp)qdPtr0#5O11)xYsf}jOJszX}1XtAO75Ch=E-@5_2Ms&lA zC&eu~kZ)CU-7|^Jy;KE1;Nij3j#)UJU5F;3J{vv0ETYC z<%d!9OR%C)*y0+~*s7_jjzA(|cZC*55mkn&AS?J#6qLDvRkl0sPm`0KXiQQ?YXVP; zVuiZMv+BA0j=bY&Tvw;B&d-lI6ND=u^Xuowq`*LucxSm-%0#VS-KlddN0SLa%O6N8 zI2mLCAnL^oGU~n)U7(>1%V(K_YuV^lS{}eHz{Sx6szrmkAyf2vK0~7!t6A#Yn#nf} zoi0G|k|sJAYsmnZYp7p}>ZRv2HO_*wT*=>+{Jxmqx2BhPZD#+_6k}6wD9;9-s|};to?Xe7Uf#k@a#B|W39q@ww&Kz*yiT`tioN=49Gk`OUh(ZRWN z@HMG>&}l85aWr*0mIH4V!ag@Gt2p7Zb&MHRMfGFL%&IDTRG^|`QzJ3|oF&d;$g)lF zZOAy5EbnN(tg>f%hhAhRUXO`rUI%l>_3VXIoo8OZ-kw!D?|TR$vNkn|vQiMkQDV05 zH=}OA?DPFw<_^7c#+U;)u!*>(lgXQ759HwHusNLl`Sly-wmEpTj()@Jn`4)kU8){N zxN?YUa_P-8?7r)_?EJako1(e+WADRaa}!OCOAmwArJu4cwXh%wgF1aAy4l@n;)SDJ!#UPWcYzzeFqYnn(g~(mdS&qE-37-@?Bs zR9l^pmaPrSYhh2hAsxY&?=U(X0=)UQjgeG*bNc&T%rXr{f{K+-}N`j~U_Qc5gg{dnkAF1b{btOu1<#KKoJP6$vCkI8VH~9p;Tw3-j>`#;mD}gXV z*p@o+rm6D4%j-vPGSb0jAZU2t^yJ98H6>J95~^EXG7>FB0aqoPN8)49s&ZWl?YKe8 zrkCZ#5DVsrKYd20`Hp{Kx3qI$|7xJE11-wvfl4y^)WmKD8@}fk#KJ)Bsb7=`Q@D!X z;voaJpJ)uz6Z!V~BFkf*%AH6GX|z-0{p&Y9oz-di-&jsQ@jV*X?n+n+bq2vKQJ5Vv zIEC`UM3>4f^~p|Rf&_)~h$F0z6@d{7`#^Ul4SA?Qz+?wk9Y*N0c+%9J?pSOxA*u>f z_&fAR!3rW$Sre8Y_K-zu>vuI0X;`p%Z&xwQj83)L!TG?mDs`(9fy2EZ*lDhk<|^rP zWh~j;B#gg7X(GG1Wh^d3^J5a@nZebmzzD|>RP9)T#^N^Uv2H>KaIgKN^TohevN0>e z)?LiVT3<$JWoz5sm>SLB`S!}g786S5yAi4g9Gt0aI~$ZcVuMsS)RRt&Qw&2 z0)!9BhHj5V_=0nq8N7iv;95ZnO%O-jN zr{ALd1uRkEP1}W1PyO?$%wRMntAuVU{x==aco(&YwlN3q$M>tqS@UW+$jU7!;3g3d z;cXuqnbjH7LOXqz+}qSB9wU`}D?PC4)}#hOqdD*-$;5|1^$=`i(mu80(@B9+% z@eM!_U6f(x&pFzrJG!f2P1L0W(*jiahp{ImvvG6&o}CCpp^R1(ffI=)UDhxi#mm~F zS&`RgBRzMnciG-5#*BoT@5VP=l{MeR-jhmwjQiTW3@CfO1DF8KVB&2OfB@$-3V;f1 z>jy}+nFLcP$XLLEC<0o9wiytXv<%&Dki(PDqq{O%@%)y8BdgY=oxa2>{^AtBy)bnnZ3Nnf6!0+h#HL2eMR5rkPqRTNBEp+%`wWwNLI3u(yHX2Us zC~6SdYR2!hbOC*nmRJGWmH$TECUkk3PK+pz&x*uUv6s^$jw#=Y7E7#1i&TD{Rlkxl z!mi4QCo(i!2E{g2J7T~WS{_qI$+hN23qp%xI#4UDNM_Yt#l^~!&AfG z>#0l?Wd5vd7s`&NthC3`FftA4Xt1dv9Z4CDzxau;CqAO~GQfKET%gjGh{`BMT{lSz zMMpZhVRP!jwW%Y07N)edu{Buh+)eb@t4)oPVN!#i8V)sAMiO!rmAPm|6&K-Ep)OQq zCz`5SCwc*-I-zY2VQ~dC;iG=p+&&7hg&{YlOre&7nLzA}HvnbRp#0Hi1UX`KpWDcb zID5jq;!m;e8)7}dN?}#11%GE)_Z?BCUF#2|uB0KEkVaBR5;_=3{kjTP*ixQ(q_3b( z<$13i^Iv1Eah-vOVg*o1^hhX|syI2Pi!dOZ^Kj;>;? zp(E)tGImWS?L`2XOk=wICB!$?@f_c@NT{@&@n;i@_0msRsQh0nWc>^aErbPR#W)Ji z0~2B_OaKds?G{7$IuHq zr83P^$^U0AZE{Y7Nh1^SsDKDYl1>Y_4_df4jHnm0a6s0y>_ZQ=+|e*qGn2>iT|S>2AT;;`t4JUr6a{EH$A{G+=q(!Kt^bGG$Z)x zL)-p;(!!OL3n51UT*RJJt^Yuyro-uQuW1y%6nbcGOv~446p{|xA~ZXe5qjSdNW#io zRi@t16OFa75#rl9bV$QlDM0EO2I?LSHk3!IoJ6qljw4^SGNC9J20)utA5B(Lfs|*^ z<*19gkW%P;6_Q)A75h=>JgKKqHOk%N8_9gutKd2P_mdk_;;7^ zx>8<$D?-H*@~(+7E2=iaH>$0G*r^Ij`xyx^uwmzK&Jp@lp`#a8;XC!a)>!x51~g<( zvLKfnm!QcAxnr8+sXcNtjpqWaW`M@}fY)lwuBwUmgwV;K)-f)OGqhWJR@0crx;2TG znb*-Z!R_(HqRFyd?PERw(uDzSEHJ}?iq;UOhj6#jY8FyXm=YkuOnzuF3niCp?q|8 zwDQa7p?a_0s@LkBdcA=js{yTv7FsgRxmyT5=<%`iZ`$wxSak-|Cj)P=JgHmR|A)Gz zF_pR{%TZs(v=zO(AHd{629_MmF*JMB<00K((_l$MCtdL8SQ6tA4b^}l@;CS_kg&> zK$yy>?$MbzELDSkiQVS;`^zaK)~YEpoyui_>XPnJ^NeVoS|y}!jJZSLslVf=U7LNV z?7EXYyU&Wl8eaIuPeUL&s?J6U5Q;=R&BP=$1!?qj&?J3L7?Bl6z2_)0Zl!Lo!}Xmp z6^LCUKPc0RUJJdW`6i$Rtmxqy-s-V1aBJ}MkL_SBZ;t5y<3x31^K=t5qJiehMSL

S@MiHrOI_!{v$U9IJ&d*Gk}a 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 z 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%0DTsD73Pc(1XOapMDI*e`fBa5C-f~pnUtC)r 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%0D^y1M9g-%%6}` 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 Yhu7OCh~-N`vF!t;N5ZR-;04S3Ux<#mB>(^b diff --git a/TMessagesProj/libs/armeabi/libtmessages.15.so b/TMessagesProj/libs/armeabi/libtmessages.15.so new file mode 100755 index 0000000000000000000000000000000000000000..36b131c8e6a6897e3359aad3650e4e805cadbfbc GIT binary patch literal 1611416 zcmZtP4SbK)|M>B1cJtY0TVop&YH~N3jHn6O+(pg(O=#N2#>OygOu4_wh?;U+lM$IB z)D)q}O;Z##Nl_GEQ)Gpr$p3XdpL4ErT)+S4@lbnupL4EroxAH?*XOg3X`K=~dwF?T z>g8=kTS_hX%kN%^6d~UhR+QyWEYhlO`SBMbrvA7ykjaO?6Mwu#468q3So{$&QMUMF zzG`i#Zizp>;x9uz@#XJVx0dho{MmonvM#mpavxX3E0HWbC(;U^?fDZ*f#Q#-mpDeR z^Eqk!@Bh3+T)aq{ozp+uQh)MFEKB?mdBvaJaoDoNACcdmKTXF^8lRIss_Br- z(M_{5M~_S&$6q>L<~dd+Mz!siaBcA?DBKF<|5YhfwB_2r!>n-W4*Y++;okVt)i7&0 z1&j2_xcHASt3WynA2!lIj|&XX$7@NySf*cwXI~GqQl!`7c*>9B|DyaY{69F&+w!3^ zh4 z7^Lzgj(0ykG|AV>;b&2PGhAc5w>4e5lOuhi!@ckd(u;Ny`G??!a{N4iC*eam-u&c= zzl4wBj?%^W8TvzvL-+aN%k-b9n{XK(Mf{R1{{kL3(c5mHt9S-3l<9pL7q#F+35g&v{!+BTxNt&tJo=c9 zOSJb@Jnf*jd(9K)8_43k8msjx3U9^B$X#ZJwLmOY~1%4Lk7voLzccjd}4lfL) zy<~gt#0jOo?(3jPzaPIt|B&3B{~YeR!`pgH+K+W~4p!r%89s~emGK_xYNqwX*#2 zxbj|aD^L1WJO_()T9mg1Z#bZ@FJIyVhX04pV*ck&?+UQ2Nyhko0MEhd`r8_>z$$$| ztX`sj2IH=bFO_~09*iT2iTb>ZkK;Ddt8taj_59wA=ip)){{c@nuGhcfvxg~Pp5HC( z^IMpeCFffJ6LA6aTOB_V_cYuP-#o(jj_}l{6&^U#*XkeSaeJ&@;(R(goQTh!^R~Vu zCeCMoBc6oC{*2A#GvC$v zy#_}#jBwAdDpqA{E8bwF--pj~{eDQ+?~+SwtpC#@ev|Pb$MZ;>aLe0@m+`5%*Wb){ z=_Pn2^*Jp42F~p7W2b)~``+hcUk?uAB~djtY`2}j<5P>G`?ZP zr{df-KGt`n7vpm&?)IjSy}rDMYwfQt$7_)F1wNfaT-Nst_Iky~Ucay4BY8gd^~UQS z+K)|#+CN3$M$h?J;yNjg_aIK^czN>p?eS@>)|+SXz-m5LtQ`O2@TM9*R1?) znhz`SywQwbPFR%x9$xv5kG056H=tFz&BYR2FdyahO#~kpgyv{ zYU2kR>+$h0-eUBBA}+&g-0ff48i9}3qW&`f^LQomPwgM(;Ta%B*~f~K{gsR7r1;qP+w*b65c)&Tx7YBZbRT>F{SI!+dYdK7+m26C{!!@@xKSqa zQO=hucvKekmB*{ZM2lFbk5?P7drPkeE%3$Zj8A#|c6-gCGy$5-q9QoQ(~2>1R_)ORz^!fL*i;+|N{ zUlBixqmB4K*fJbejb~ewuky#>N%W7utY2?DrO?OyTtJMMv3TneuHSO~T7-|YzN-7> zVw_66yUf22AEtb@{{MvcF7~mCWc(U#`3C(j`@3p&&WH3V#6|s^;0;BTFVpwNQ`Y;~ z`};9?Avb{{y{O+@d>K!dejWe9Y!vMw;yg~XMr~ldll}D>KCqkpg&cop@QQ=1&#bc| z{eSq6y*}0{nZ7z5Q{@Nl*Q6i915a>#nLh#FEYa&*ADnv8$GtBX6!c*7amU(VMZ_#|=l{Of!CA?Ft()8E2PF8H{gIf~zS*?_+%~U4&bC z`C6sYoAAq&zd+{y2wy(VdLZLJ;+D)8s_j1BZ@Bg@Un@wq??3ns$B&co>P)QN8+@&| zW&A<>^mO*~GX4m@hv!%ArQ74+?|tp|=!ut1*5wVxPqBY)Akz=W3%P%fmmZ6EzvgS- z-%i5INMBFJ=i)g*zE&6M*YOd|w0ED+27LCouT>)J`#xUsov(FE#y`P}PWoEUNq>#s zsp4zhkp3ADF4WIEe#7gk^88G;-)-FCscQE1!-wY@HNtsbAdgoSU!?vyvb+aydNp6` zjLhE>cZ&42GGx3p-g__S#|BUI|5Lb81Mauw_zo-M=O*85u7vVO%lb0g0)q_^Q-n|-Yoz%)%n-L0jG8P#`r8&@pgFSkBn#Xit*A5Z!?^R zk6?AadHA>ypNB6S@z?QnJYAMojB|hTwV$VbfN$a`8Q+g-? z;jR~Tf3Cx$Ft?fR<9~pk$7(%1jOXI^GX4`jWcY7f`By!^{OVX%9jwkb9Jj&@1JC*4 zr?Gv0cqC?f=8kv3WASL|KKLj6fbQ{o_#A->pJZv^Z$xF;X-Nex~x}Njh7nuGFJT`i+%rMJ(v5%C$M^n z`gg~1ynh+Z&!Ya%;N`r(C|<%N@x}Z7?CZ~Xd_2m}?$5b6ppKuFFWYwoKJb8_z5ja$ zH>&GrU+=f$+7D~*#odUj{y&Nr5|5L|KaWQl`TxX=jPzdhnD1EiUkE;p#kq<4SHoAZ zkMslhs^M7tw~@aMu3OK~-amB3xp<4r-yhenug~vU+y|@mX$&5W+spJ5@hYt9GZ$~g zsy|=Bm$6!3*5Nu0{Oso!Tk&3eh6Poe&u+ZBsh>Sw4&fbmfo%WdxN9>%dwyTSgK2~a3)SL#>03={5hOX zT#e5;j`%`{7vqzU_*o&cJ>J57;&pp`h;O&^v-kg{_~N6qFLf8~`vX=laXx1qzK9RS z`Puvbe;n~U_z&XcC zAJXtBtgdg9@rQV_%s(G@?cis>pRf`)Z0~39r#9nLuFGw;}IG(f;jae^kR867=|c5Ff(Nl2)`=JNz{D zeO$UXUV=-c)9?z;Z@F|H9^BMr1ZQnZ738jn(zM3H}0ik@0qTQl@U-J~*tipOq%#!|~o! zKkE(YDR?6B#nP|f%DhRsM*1z>*7!Wahj>b7+C#?o;$w-ry-wn0#6xBL7reKZpZjwi zqWy2;Ozsav-wEHt8yP;_FR^U6T?=Pl4zqkJdE5vu?61pjEgb5yF3I>)_f}hn{=D&cu;ak!-ao35AM_KgJdk1f>ePiws6CHhCEABcMu==zSqd(Z3jX%^1qVO?KY-fQ?W>HVeO!`BU$Vy{KI zzka~0U(w_J626ETR_^g5F4R?C)sDoiuv&kb;)aX;thF+IC%pAnt~YZ048~s&SLyRa z`Xzq$^N-u&k){>>qo51Zr{3iuHlFAc*7m= z2F!49kFQ>MiV;u2i!j5_9UqUE;85uo@j4^E0;`v(Z;`|6@jT|keZ<84*^bv^b$_-G z@5QS9595R74woY0l|Cg;y+y!t7ZJzpl`W{EC)|1uqKTjsLg|DBJA6W=AvUxJT+ z;j-t`I$XD#%lazUh`27LD+TCS;zNrFl`_^Tzf48wW zACk(J$M=7j{VT^;{Sk?CiL3Uhi>tq*(>KM7jQC@C6ONMQb;3ss_r#YCKZApNy6pS) z;ds&qE_;8Qhi4h_nfP@hz6jqWuKN28yqoxw^7vcus9rk$33h$xviIZP;Il^jXWWOl zn$LgXe!ca2?$v_&9CO*%w<>tA5wC@B8}S(2qz~)2tk0wP5YCZqk9(Bq@zxu+?W^O1 z@m?c73U4L;p3I+z=k9k|@zV2f-2Zu(rGv| zRmaERIzx2)IeY@E@h}G;AL_E-Un{_O@Jw0W>v%?*_FMSjigGDc%c#Ri!+bt zcm}>FL+8)MGrn?J|H%5!#fyk%$o^Y~w}tuJ`@8kH&SIDSyzE1~)$nIHVTq2Pz{d<< zz|T+9^S1)u9Obgu;=0Gvf4Ig{JzqlDsAW>Vnm_m9n}#34^C(}%AIH1j)$3nZyeP+I z9c2S9uGdeC{L}UIc?do~LtpPk;eTiA@t=nyjQZ!}opW^jRqQ=Wua|G&Rfad<9`o4G z$ocaD9ynk703Q0Hb{TFxSNja^l&}4(h#U30j-P))*T-tb{ne|w{X_8_qkp3CI^%p| z@%R##{dueeTyv(&e*Tn*FTdxqUXb;F8aJW+)b(lzo`|W2yM0ID%|<*A*Z9t5KhKzn zx1G@I@5}i5YP}vT$GP-}D(_9a$?&`QWy(|gtxxa<94(K37$;-4mG1g{kB?!t4Q`j? z+9!4T>$v7e`ugDg7|(N!>rp6n?bPx6@GqoS&odh1t46#P{tByjXFO_wex8zuC*cBF zpQo{URpp1l4yWOOh3waeiSauYcPWT;?`NyvVT8eG4|s6#BGf` z|2o{Hz{OvByj6G+>7{q$ldmwJqz~b4#(X=8PaD37M;Y_)CcbSrpf&ds%xC`Eef(;; zDfLn9(+IErT=#!Vd>*%#=@alh%U$;KjPAH0{i*iv&)|Ny|eJqpiSp|2-- z_(QD5*DQPmtNOi+?`M3f@$@=w^qR|hMV9v#-f4I%_CBe{-u;{@C>Z>Ki}bp z3-$faFCxzI)b;Kvo<}@f9#1^z??n0EOW%W65-*mnA>u3bcxr$%59$4K96oNuUy4w?_a0y-{#-!|Y)Z|VAM$6ZVH_31FKvR=o($J2=On91E4o^tDII?U z_hJ64>&Iq1kNdMInSKXu$o*Uk>HTO zHGb0VT^FZrblIPucmy{&AU0e#MS*~60Uq!AAbz)w@JsRVN6|=STPsaaG?^{3!dE7v%B3#f>(*?B|*1@ev#;<5%%{!mQB7xW23L(*n1{YWhgjkB=>Q9;RE}<9jdu46Enw$8hyeUDmVm{C>f?`&?F4>Fap* zz-sPaFc$9*cqi~Yg!iY_e64~vfkkOy-}CJN>KY=d1WB;%Ypv$78T+|GhYY@uJ4>4|vMoF6&b-Px*h~ zb~jy?_&r#$KL{Y>b<$_ZR?&F{mS|$T^skf zr0<^}!lMkg$1mdL@^}Mr-ODcf{qga5H&)m8`MAgL`gz@2{0mm=(H30&ik`2Zi1hdY zS^k%Jtl=~GRXkP3|HM@)^nSpvBjXLvmhqbSi9cM{N7Bu)*Pr_QI^g>aKaJbsT{8V> zd=sCO&c~;(>hZ7&ceO;!!FZi6U4h?Zd^4lmlG0{tyMV&*P?JRTV8Z+|{@3hq@! zdp_>UFEw_Txn6Q9LF(lc;wl|XxaUxF_a z7j+fomEt=%O8PdAFw%!U!T5*}-x%RZ-x)U{UQ7BJ+?BYxKYA744At=scoK0{{#m@J zzpl@9yn?t|KV!SFp7hi4j<{K0?Sc3*>DBoy!8bAgbDz&Ken_b1Z{N>(b)|hP2ied6 z@4*Xe(B3kALp+%DkimmI-bm@pM5xf6~0}gG0tSXsOw`Yo-``R8sPGr-)MY3Gr&Hd>3ALK zC(HWpz_+Uf+wiL3hU zz{_3P3kAd$6|cu-$?iGcZ&4O@a)yPe~a*R!^L>A;VrnY(f=Ree2(u={Y81DxXAF= zxY+O+TwwSLo^F(P8)qA?%)++ZNM93Y{1@pSzv6gxaF^SW?%$UZj>ZE>A0_M47>}(* z`}%m=I}WRtSW^-m?u!$R=L;z~$EZ&>&NKWRUJ>PQm3w>2pMz)A^L($0Sg&^DZCLf^ zHGBk%_7d^NJ-A-r0n)8-Pow+}IL~PR9ylAT_D;nahR5R+BmESSp3f($`8E%)Bg{6%eLk^0+5g}`=}er9)&5}( z-hkElpTb))|8wUL>t$I%&sLM`OJ%Dr4mI2ihZ}BLvPrpu@xQ zNv>DX#6g zj|P3XU&A3Xe=`0XtMz9YuHD?gaC67N7tCz@=k9)Q7 zw^I07obNJ6yvX5V{1fTb@wVdu#&|8mS%xp+B*XvW6vMUq@qVx2M{tJW?%2!teWhpc z&6bSM%AWcz!0ILHw8r6`4u6YBCD0yn|KcNVeB?{yuZ$aY)Z@D~ZiPF_^jVJdqUO&ezc7@pUuN?O?;w~1Va3da#lZ|*sod0=DwiM&(13aF1kn~x+>y2Q0eeoa2=ck_uw&G+w4o@@E55^h%lD)b<&c!bp@y&Pv zaeF<%%ZNwH@+xtob?$nw{rn&XZ#MFG#gS`*?e|wl;+@1pW&Y)O`PE?i^9zUY7sSJ5 z{3?#Q7HsdY>O8~zFv@=tFHY9=%fr8!<>US2Uo6Yph5t43pTPsD{{k5gNaA_?le#@) z@LI}`lJUMcjJT@bB%J-XE`JSfNL;Nihj8gT?Dyn&xsF>BSLa`Su=qT?&fgYyGRn`u zK1O^Q9!NZ1)@K{uPyNnG|BNF#hS}q_92Xkx^Wd|L599jP6zBDdboYN9YTXu(eJacz zPaScMr#$0Zd>_@bxUS(@xCySs@kM+)zO-KNcRs-zjpO}*OAP;qFOy%im&o5Fnf}4| zNe{<064`G_Ps7DV{uQ{$@GjiRNPij^8gc&=&X0JkEH42sHsU#WHSrcQz89}G;@9zU zqx|4h`p<~RVy|wV^Zy(ljaZ#T|o8Qx-eGmc|CiuFc} z$FK02X_4;ssDiKKMAmaL-s(^ntgE*(_Zr^`!>@a=(2_MGwXS=@tZHUjj!hN+&-yG)<-y;3E zh!4=$vmSWMB7Hxaif=8{9*4_`vy8ZpKM5DV>Tj*}^>{8`K7{L~x5q2-wTb%vXA3?$ zp7b*RUfl5wy?^-v*TYdVeq4Bmzy18?G%om9@5g?}X`lGp-=FXwK1zC(KVUd<+DD9M zalNXEiw5cS^C28(T)*Q*+;AUUW;h-DbNv_dQ=OxeJTUg9D;otFg!?*E9>eoWf|L{!e&v+Nv_D(@Lasz@DjYo@EROrl(!kTFuW7T8a{;M41bF!Hx00_r{{1^j=taj z6X(%iYCR7a!SyDW{ex_edvP)IFHyF~gE%se?|qZ=^HGt0r5>M8;B%+gAISW@aT}vP znK<6?Y`n)4+hxl@yEiAbo^@^dz;VG$>U$Z8MpNHs`4o2GwJzjcl{#qHLUI@8sm75 zr`qpveCnY9t4OAQ1|M!hT&{O{IFj_Ly%yjM#-H+=croKkoo@-=;uT=cmibF@7o&Z? z!&$UKc)NFiJ^%i~DO``TWn8>*UV+v9WHp?>ljkLJJ~qRNM)_@VN5kE56!Sxj zPq7{j!1W9d#gT?b<64F%;%h(p+v9s4E;*~O|L@>iI8oO3Anx+BexCaS-f#GC?0-)0 zH$uiR91TY)DE~U%Z#YDBoYDT#_^=Ugi^~l6 z!KH>X@OOr1;-iLN!z~yuvpI^Gf1B_PBYp&*GyEeyW%v?4W4O{-`qyxETw%BczGS!) zetooFpHgvQo^H?aIOVUhMFj_{JlwXB=Df$4B^-@%!Fi;B3~vP#OP5 z_=y0kK#sR^T*!PAaWOyt!dp58*xv^nFrM}?;t|-Zn_kbG;!WKH?ECxnc(399__*N= ze9`b^d>co}`n`%<_t4j~xAAElF5}yAja~uvd@sf6I7P-!;(kN*`Ci96hw1V{axCi; z!wqqs@%tE$;A31b<7Igr@Ur2okJ3Hxvzio*T)e`F=i^P-PsUf__YH5w zI}Cq;Kfw)T`k(N5BmOu34XgSDKl&5U9mdfCvXqU<;^|* zp2fZJ1JaZ6CVa1S0X~VROTU9hEex>VKiG@aON@~d4*%rv1&4ok_%Db5bGY&(bu>|b z`r6?d4&U!^1H5jj9-kd>qg8r8|1|FOmTun>xYv8Se<$OCh6`}Z_jP<7PQ~i}a1TDT zPshK)H?iu!bGZI~o&FBKctH1OmFMn0-)M*1JDlY3P+a?hE^i{vyr}#8MSPPlY3|8k z#Co_6_xn%J*N<>Sr9k`n&SAVGFwpA4021kc#BD44g1;43$ex0}Zi0fnr+RqDq#oG-3iyMvA?Hf3a z`e0T6`*5=1M{%QZx_!IhmWGGn1e_%6{~T5?asD$Lo{Q)4c@Q<;itzeZ0`2Qp2|kV0 z`Iq8gK3@__S)zST;cdp}QU1g?@pKvY<%da&1MTZYZCqnnpnX3Qhgae#%Tr!Yyc?%T zkHEE;2ing+X5+Cd0`1S^6ybNUs?QF*6A!RF<(1)x*8=VP=ks{rKVkNKyoyIvs%+OM zcn13qtjep8z4&}nisdQq5j@9L*(#FjUpKrvsIvWexfHyOFHtX)>qCyn|4L>1^M(1? zH!#S4p7aJDZ+u>BGoBL?WdDB4Aslf}kiGt$!L6zX+5L4D2lII*wIB1H$#^pyiP!Oc zB5FJ}!3T1K?Dj~&jXnyp7RdVc!Mh{$=c$I`o7IEu_Q=Hnk=pa|AI*9H(96?4tMKVZ zg6-$OyYZwr-oKRbuken?cz;YRT!@C{c z@9-B6A9MJG!>1hn#o=FZDCZx=xr+Cz?wftLd*fK*;(8_GBOIQI^N5ST-4SAce?tOJ;r+lU;-dYN@fI8;Jr(!t9PFMSqP%?$`@g{R6h5DDNv4l-I1ZnG zIE+c=DL)ZU;Y+d$W%?AH&6nub1h@HL+r#%_$zW#~&T){1Pe^agZ z)?A)H_4B;{C*Hq{#Af=3@dEPK;`kzecU)dszaKgVXJgS`qCH;2c|V5O-~U>IgHGtr zM;yer`Uks@FUtGL;Tt&o>0tN%O2otR@AgBuC-Ep*pMDNc#@WP6WqsD*jRQig6zSbK zZh)tJQQtps4vv=bs`GdrfyL*^#qr~CvC+Q$v3iO5mF94k!xM!EF`i_3uRG!!9Ny~i zE_{v8gXB<*sP9$0n9p|piR6D;cNY7&-pd;nMvf_WJWVj#|#{*2hy{?***SPx9{}$?~e=@-+2% zJ?0V4AK-aESiE1{5-%`5|L`oXFg~A#gX&6Ao8f$n!jm{_&P2$ z;#CXoc2m4OO&@<4PWvLnem`b{BfbgWAbq^7&mA0>uGhcOiCvF!a2rza2W5usIL$I;*u83Z#kbQ6|(;RkM%;H&w5;% z;<1EVg}30@6X`!+&-niV@AnO{-!Hp@%cA-Gk(Vc4eGTn9S?BMI zi>7$?Gh+VC!sWO~rr&_;eG_7TpV$sOd!Jspd7^e?R(sTu~Ncf4|BHxQj7=f5C-;`g-eH%lJ;!;~@gqo9US!;&@NvDDsQ-Rd^(x zPMm4&ZogAFe3oawBie7*y1QNY7W=i?!S4GD5kHNS=IH#7ucyAanD!Czkm9@jBVImN zr=Pol{Zzj0zkY8spXYf#k0tUS#!>Tw-QQ0pJn$Xr`y%%Tvc9`Hf5?P<=4sXT_mh1S}IDUmLFZzA(6Y-)A2z4kTY9UKJNHKZ3;1l;6q`?|{wnlX2`S z&w3@&Kkx7|;Uay0|KSY0Mb76(wlQDV1l#Y272)0O!|eOXtvGFMu(e;-=iU$K-*ukx zDUR0-XBg}AFx+!J{U`gYNW_Qe`MC#g+`xWc#{E7N`xzati8Bm0!~RD8uDDHoy?$-Q ziL3`|JfFbD#{I$_T*CFnU)H|?12OJh=0`P8`}W8AtPd(a9`C89?>`pdTU^glWd0pE z_Dg-eJB34k)%)AZJ6K-_>HTJ1+|h7boME^>E;rh54DMo_|6J^ExDfZPq3c_U>)p%x zDeLzuPKpe1U*ARlRQZVcuwUN~cE>?A^?qmpPUCzQ$no$44lm{YM3z@)C-VWvNN3}< zSnRh%`NgY1>0S5~<4@)P4G$o$+PCH>B$O}F zUQxJkpdLSMv44_2pWgVe5zoY@jQg7jxZLmp9LoK75M_(|@3pwt$iD~s81XW^$B6$A zcQNd~#+!@_J>9`H|+o3W(7k3QT^J$xix2ON;4AGyz;WH5- z_Wka?pVGg^dXj(_GzhW3uQv_H++=-`^I<-&V83K}dCGeew>TJLKTkb?gPQO>!%rSh zc%XjXaR=w~ey$iB?$0;xv#i&!sK0O{{5B4kPQV}IKpQC3G2-`p#{9ryeGus%#T8ife=<(nU5!s_ ziT!uZWBOU5Hz7e-VYne&{WSKf!&8XUljQHt$EuaTk|fPlHQYulz&o=Q+*s zF5FSJ-%xA?>h_(73z(1f_-j%B_wg;_ZKQv~`%lsTGXFh?=r3b`&~CDJyW_-K zp8bf(|FOdl9bx^g?HQjUzRY3q4-@ATFOtW9#NjL)eV=E&6!~9w_;Z{>{D#W^)!kl$ z2i&iZ?>c(7vv48tXqmqd@5lMFe|F-;I*cDVzOLYyy0o{9=N+T{>v_hPsNbLXXhYUt znLhk$#>hV1o{!{MV_2DJl@iV>ueIFm?dXgj4pTGki*8N@M8`=-Y$m2bR zyBOEgUU*Mi&-x?kcM_jsf0H81`xi$W>4VF--(r1>lkrBl3-1TSN_WELFM8&?sDC~# zWqhdhrx5Qq_9t)SXk)zW#l^;c=Ohm8ulExbxR&9n$JxIb!r9p$K(0uvq}4eM~nfg$$4C%Rq4<*O?HKjQGW4xhr|gLM8Y_?+QNCz$`w={~!>*C2q`UIR|)F;Uie-5uT(ih?`M*5wO_-TCDNPh$8 z8}$kO{_c2Ve9cIoi2aT6J;D)x5!V{5+w*N)Zq(6u?qj4jb$p+DRm zZ-}#u^xbh6qy5J@;w$iCBmH(9ZKN-A#INFAM*6C!IA0_EL)eUW!{?0jgK(+Qo@tKw zSRC}MZlAfhi}8HnHAj34ZegT9fTNA{CmiuhILSzFou)mF`c%PYygr_7r0-H?d#YXyF zj`$Ba(MW$2=Nsw6f4V!~9OoG6yI_CTdo@0vam2^sLL>bWoME<)BmO^9{e-o#aM41#Af_S+}B7yNTfHe_ro3WiFh*U#r{HE zZ}V}nF`t$?;_LB7qx`)hy|G??=ZOD_%Z&8?zc3z+^fj>=Z-#Ff_345$jPaP{h>yoH zLv;Hs#Kp$*r?rmw$GESN{s)|Iq`&TnS3O7jkY2S-K$8hAYJfAS!8gDe5h)Z!t#=E#*N^^KJ4$Ab@ zN5mK7Xk1UG{|cAw)BE@9IMGPo=r_i<;dDIPa1k!T>iFN{bGU^p-{%tV*NxEe1e|1e zIxfO}W%`fsH6#8HjvJ}tk6h;Zh1KzL@KG%0yEwnC_>$oY?4PCcH~gLBW0gM>7vWHu z{~f%=@O8Wg$H;igE0k}<$KzXu-@!qnbb04+Ev)j_u3)|zPRBWh-@-*k{&KvR;z7<9UpBUz~`= z^+2@$3Ow70e}}i=o-!VOjUTdg`#*y_;vAJ9Z#R4l$BfnSd#=+yxUWp#17E}H_%Gr3 z{rY+69vm}H$Nm3eeZ(0ue`kCctNP8ywZ`lCmv}Z-=kNVD=VQdGGtMazv zjW|UfuL1|<>iGRPNRP8+yf;3KlcX2m=n4AxpW!&p&tJy>zo+cy@f4gr zQNLfd9G}AK{7>MHdBnXu{TKKT=QqjoyiD}x6S(Jdx_&e99>X8u*yr{8e^>CX$@+O{ z%YV7vOwq^B#r{*Z-@}KoYOjm9)-?URz2Pn1Kf#kZAF&^3fx8&{rNl6ZQAKeYc}<3*xn8 z{aWLmM*5x(r{md1`sZ+wk$wq|Hule(9Pv_IX5{|`S75OoiuzUhkNz?CXZK+<-WIo* zsq34Bdtxwxu_|vCKDU|qEXU`2B5vg0 zgKrr5|H1yVb^aL3%gV!{vOZ}z-|)M5xsm=NUi^ND{`|9-msM^Y?-A@jN0;|Jj>MN_ z`6bxr1s%VE!?B9DtK?;s8qXto<9x#zxY+O%Y|Yi>9mJtnwXcsiWBv{46*X0XX2w+ozDlj&4soVE3E;gR0{_KeV zi`$T1wRd<3;~7tu$M23KckBJ$NL)r-w2!FYJGdV6P3?!z;+#Y5FXZ^Dd=K+^mFIda z>Q^6^8ue-8i1){Zq*wLH#@n&F{uVgA1)nj}AH}zf^nW@W9!h&hg;#u)w+JYa0{%;AK~yUoMfag#CcfF zue}cc4;LHhEAtOW>^IUk$I-_1yT2no1z$7ruf?Hj^z)em4*w7LB(D0?73O7SVb$Js z9Bz$w8R`4s@31t=`8ZytzlV*2=~!H9r0<2# z;Q=yzmcw&#o3*+=Yw!T9>i;p0HueK29Pz6--^hPYgqO7ztNGu^;STtek$y0~fyMPe z%(u}FPs1J8>G~Dm6fF8f%;(SX;!?f;{u6H@o+IP2)o9 zd3@Ax&FUPF>urHd-vjU2ppU;8hrX@%_owk>94ga480lp#z)4t~Uk8Via5-@`-g2?e zJG%Yn<9uU(Qs{_p#Vts$@*l)Ku{fS+pPP6i&XA6+!TxNc9uH4CoQAWAtMaDee5}U9 zM-Kmmw;So<{n>T6a4J=Naj{O z>CamXseQM&?vYJB6Ar#_o;3=WjujUU0` z(#P>pBmZUmB=G$&lH+=p-q@yfD&+Tw5{o`^>p#~+HLjQDeSs!{%O9Am^kz{`oN`S}%&GveiV6Y*;D z_?7B=S^Kb>Pxs)SM*3R#FmW|LTH_=mJ_uhhjyE3P!fHI{P-xGiy2zN-QI2_s$$cPFmK$3u9F5s$}7#8vwY#Ji06I6RiP>Yo|7 z)QA`0$;4Iti*b@MKi|U>n4f;Mub7{^aDh>uFYy_pyfgR>;%dHM#g~k@UqkwfxVYYk z^{oNEVZ=M*4CDAuefa)pwVuC$&k$Gh?;{*)#J|Nih^zLx zf@>LZ|7iMmpPtY4akLR{j~ftI<1GodFya$%8{+Etui$ti{w~fj&TlWC$N7o&66aTj z`;uRcmtS$Bk>6_MWep=vJiv&z$J34S2jbikM^wh{jsFEGl#gx@j7$6vUF{Hp&09;E+_{I&2t;%a_2!udx05qy}qYQNriu@N7Q z&k>K3=l=>WGU6X#pZ%WC(~0r*9o}ff|G^I!@mh`9Um5Yo@p9w*dgHB}pSs=-!|~)- z?K2(kH}b!R`x95|?N)r$h?n9_BmNUUWyJr&B|G%~vv~~Xi^cpD`^hJ<`F#*+xYkbn z{=rm-mt*tumnGQzeugh`;x7Gu%5}U8tLFs~P1rB+d_nYw*k8BCiFmDaDz3mjBopzu z_}a(%dBi(7`V;N%aS|RN^H+L^^EKQU2kp_%@A}{ZoFvoF!k4hhzaDqoOMT?=%W(Op zA@1=Z>SHzKdbLmApG4zGtj@15PQvwM`T2M{_L1InFm!jb#68^(HB zu~?<=h5H)u3HUHp^Fv#VurgM>;$S=Mztq z@mFw#@%*9)o8Jer6{mgexgQbbe~K@Lh1<_7PvFQR_3vv{wf@G_N#9qNU-e5vy|uSIereFe8E#6as0&&m*7I;(`9{29X^F?mFxbkz@Z#Z%olP0 z=KqM7^#c7T);n>%io!>+y8mc~qeve`T-?94$0^hFzxR-ZYyGD0mp>KpEBwBMtp9gd zy+r??b@-ygR~)|T@IQvd9Ph@jXJV z3Klpqp2p(XzM)nOl@)$Tr2jJ1ij?n%ti#ifhT6}cN^r{YP%B@?kK!oeDV&?ge*vE{ z(*K3ykA+(P@^}Gpx_v}@ggRWqa1`;nxM*@!D~=6?D8Ds6^I}!2f(@-NzvnS8tLvj- z*1O)GcmcloSeP|a9{(oJrF?NeC-Ohpn)T_e>hABK6Z@eYT)=#>_se(@=^M!OXR#M< zE?u(?^ON&Y=@W22zW+?s?`b@R^;z5>h~tgM$yltv!gKH}BVLHl`iI-si;XywxR~!E z{b9V!h@Zl(h^zWt!Ce!>?C-bqZp-nhkIG*I&!hkL$nqY@`WJKZP%IJf?^H z{IB6Dox|+?j^E>6)*RY{>E@1C$GIKCte2!4;%=lD&nrdyJ&xy+UXB0$*q8As?jJ=w z8=o=GX9hlMoX;zGApgFNxIYu=-@-L$AJzVca6hc}H<$5B=F>Qt{$Je1D6dL8))(V= z4RIajrz$@ltCtv4eH&vFRHzN!{+?1+MefI#MSXz;T^b*EPpLtOZnn> zqWsTs*Y08V`_n(+$@hd?56bj^;Q_1F@BdV_YIk6M8}5M1jP!$Xfzke>vAI6Z#AbiI zj@ugR=N_D56@OnNaN#Q1t0XBys)bFpf#!+4(I^LVA< zz)q}>h9Aa3>#N)Qg^suu7UhZd9fV71??zWO?~`FIMfd3Y+W8d-x)8)jkJs zEa&H0Un*P2aWL~&jmHYyhPaqz;{0#pmc%3F@xq?q_*fmUF*fIaJDf{g9j_0LH`+H1 zU(eI|r($z`Ta0V7-l_a=;}Y_#=L5TO+iCp!r}FysD{jVmuI8VMjcV6(VfOcnRKvl< zMgNHQZ-IB?>C%tmNWQ;boWIzgCgNWI)7Srg*!=e^lW~m;`g)m(TVmBd<8dMuFLAsX z*!=e_=Hmgx#qalu_^a6GS6#o=I2uRG{F`u3951~S7hu)@hwxgQBIC!g&u?K?mMs5A zoPC+=h4clSb4BkDt~mTRo=m(zmUqWtS67~Q6VI3NP=_NOj>16|`g+q0N8@mrKf&Q% zxQKX?j6Z{K;Ueh_T=)n5Bl~{>UW*q?Ps7EyKsq1C@$cuV_FRhNag;1?4Nk!eq_;S{ z8=L?B?jd}M^vh-WU*p-=X@BV-@VUQq|NP?cZz4bOEP1@E4*!d<5l@qGpC|8jki+44 zz~6fO)W;cEwQoy@JK;0LRr~h9ZTR;u`pV-aVRJr=z^nPb-WD=G4Ijs`(o3*s$2^WQ6e7gsU9|92NQ|NV%AxI8@Eu1}dG{aI{&fAH_PZA7>=TJCTE#+xF; zt;eOko??9n^6W3g{Eo!x^#DJ_;*BAqwLJ6jDO_kc4ev6Xj}IGu6Zd63SNT82`NYNF zi1~dK?{$US`?a6&0o+~2|HWbKzf}5&L@%o$?kMAp@JOuo=Us4Id1zj0^03U& zsacu)V~rlB=A`Fk=77}n)FGM4xuYj$j!sJ+nw_1TJucS%>tRDjWoL;jo>YRv4UWpq z(y`REG!2nZm+mgc;P~7jI%!(w1RI(BpawHGU$+Cu~XXVJhNS>IPlaZW0^sd~)QZuvEaff8)Bxj8o&PjXfk()U> z$5XH>(S1guDcrStg7cHLOYS57);QR>WIL_9rBn&-a~qXDYJ7Um-O1g7yOItam(EbJ zMx|zDjTveU8<#HIP8B6iPYsW|22r!SE1i};K4;vRNq058sN9g$(P&dF13_Sz}UV17>>$ia0EVy9dJf|KDNd za50PVv?RGyEN#rh(W5f+7$(NJZmwrQ8Y6l9*l{^l);N+3vs8McI-XH&^pV}4o!sMn zoY9~EC#}1a)ZgAcR%LEa&)${9ok@;Q6%ZZhK5$m%=;jPO&sp11Pxq@H9@aebITGY# zj$)+A78GO7-Inh8`Tv-E4*I0O z_nvP%-_yRQpA!w5?Pi^9)!piihDPH`t_KZ<&3>~>L6B6}+^P|U403#Hdv_&H?nY=+ z8qRNwgHz5Ye1Fu5YS^}OgVvx#^m1R8hO^&v>5YDUSDN$Sy3ZOZ;_he|^=q9CvnCWo zd<+Z%u~Z?pT(qsVt{l}GQLSy(VqViuO0O`5rCHosnhn?JcC5655&Py%gW(68WS!G4 zFqUD8$r8!xmPiS=+KK5|k~ChL9pw-$mt4q@E(Njynn} zCi6nfpq^i!afD8gi;_?e2M_IC9_y;3oZntIpFMH}-r7s7Yb`vMqB!uLe_WViyw9+q z>SpJIyq?GAqr;0#g(+3c(}78$LOoLmFO7`7)%CSbiXt{11({Zgn#Pfy>k_iY(;(Aww>ynSrd8`P81 z$`WwYnw>lBoR;V@G43cKmR#mrSdM;qan=;@kxY zk9>{lfE%?|XFwpSUT9;ecM_WxYzJ67(>&Y5WM(w%wTAUgN3poN9Bp42^@e>yxG#oP z>osW*4{K}fCLx~*EzVd1k5$oli6dno zkrI%aiZcPo`PHs%1hBzov)xYT#=h3A&28GQ0inwhs?{2;>C*wKJy;7|-gc2Mqjk$H zR=N7NjOGWYO}*P0c1Qha=};gdjVkYowgx*9B=J+km|!)DW)F#|V~1SCSuE`hJoi+W z8i}>|tQ^u1XgJn1e5=)nx}EkpOOHb=ywH|vlY=AaeTeY^dLoFY<-0HY2Mz?Bb zBg>m=5S&k89zL|NT8%E*;}E%QoWeS@6&NiCSeSFnNm({qyf`LOR%w9`T56#oITT$| z+3zHz5eE~5=DL%YL}!}Pa2?RL?RQ%>$D}yA>uW6?198^0dWj*cmx%e0BJ2Qz5u*=R z_M^dOi|S8_rBY~hwz1t!YQSbgZHQ58`PUY_v!~8rrs6xn?k;Ak6oaiwa*37*DVtKx zxJ!%7d^2;e1}D58y5xc}IL$ctZP7$Fk1Ht`=G9uChTDo5SQp#g$m9^-K;;liW|pMVT8M{v z#C4=OtdgTFr_mD9`dG&gC;<;uZ3XH?GtAmX_*e_VFk37b)%rnSsN`9S>~@L0KPrJu`rEV@DTZ2SyAI}hs~@*<+qFU8)GR8v7!7OkjE!J?Xk)Hvl~Dn8 zhUL9ZoQz7X(OPZR`t{9$i~w#lEkuj73f!>4PS7wsw3u~dvLEe^W}?~S^M|X>mjqD( zRfs4@m2rr%9Ao?_M|(q2aa~GGx3;CAje3>nA`EN4)}u+~RLoN?EUb_fR>q-a1gr=z za6&nb?cj=KqJlVy7R`bu%BZw)vRpW_SRHsm@yKW4OrD@xutFDR1S!_Ot7N?dDF{xu zAYE&+KJ2#>I9-tbNruO|{REcJ)J}%bVkr6yGRAUU>6O;KD`YXE(``{P4K{1E*JG_> zY+UHE%+2*dBG20iS4YS6*Z|k>Nhno>RDvu{op16P|*^9XI zRui9;)P?Y@L_<{fEk|uD(uySCTf5N>*fMd^9M*(tC>#Y6>uNR|rCNK#>M;2lbzFVcZ+7S=qB!~6MRq9x$Z#Q} zi88&?ulG0xE{kd&YtoD?Nq3)&({9�~>SgikbT0@2{W6d^ewSKweYDB3B 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

kY)i1Rvmcrb!iDLN*)=z6(BwKRE3A?Y z^!R@n+v~}ysTd`3iW>z|)jeCFZL}~CCb+6W9^)(fktmQ#X35hjyCwdvb-Pq_$yNl- z4uw^pu#54KtGZ&=Zn@jiz*@I zsCuRxVoqxy$U3b8lbwlLX`iuAI&6W+8CeX7ctwz|jX3X?#toYu68~H=3(>ijk1NY* zxz3wZ1f>ZuA)-h?5mx%zScsJjBa+K28F`YdT8Iv8UdW{;tdM~v;N7(#HyT%JrQs-!8W-% z?hK8{#Ln6Qgd9oB`TDUJDQLJeNgF^`q^Ns(QZvb6k1=OlQ4+6GNyZ4Rc`_DBVG;#F zU}9JhsS5KJEiF;wD-H65flv#NpGFKrltIO!GVnkf&iU`FvGL-vJV|pT*wbb5V%%7! zz$fC6eK!E&-b-a9n=5?Vwab;(o6VY>Z%!K~2=5?`i8;2jTj<6ZO=<+j-5I+}>J{rz zrFOv?EM+bYhQ;K>=GbFxl7!JNRXII5tH#G;VhP%$cP$$qeg#RxD^29iE6pE|JZPoq z?9B3%v{YlMSG-d%NFbwNKX;JQ(j%g;8cA7+edJrKe%Urmhj>^^_3orGsuT%59s68M zLE1hARUAgob#97~gU!)U4or?EYv(Z8DCvXmdoV%hBr?K)i90|`ze$!M(Zi-hlxlUo zH<_T+&yXT?$S@81S8sWdfspljha0dp#q3bo`lcL)&6tdwp}%z+wMzXh`MV|S$+t!w zeM$eGy9ut4^$C^eq;B!l)d>p)3v8;j1=a}6&j%|PCg*W$8ggr$y{vL(4fLGRUtAsT zb+vJ($)?V1MHeFGQj=h_s!&%iY;Ytg z_mj+EJafJv8!BTi=2#xV;5J8uk6S|Jb5waB3sqbP znQ_ss>?ZY@FkTpA09Li+iPif&cqj3@Os8FQ@tUUc?$+QU>H-Ge1f-#ry&?fDNfJ|_Ok}Q* zTg4Ud>^;LN{G*=6Zh3|}$W{d$xuVsZID78V<}5Ne;EoZM<^sK?O5|PsJx^zdMa`A- zdBHLEfe>?Xi=9H9km7}4ySXor^M~4n5iou!Fnb8dg{W;a#S3Pk3KyI0Zw<1`o-NN7 zL~fZymPt;Ym6H}&+FRz#P`{K@lO=HLipeB*ndp!}c045ftBi$sqJ*tNUh(CRStRe- zcm)zx7GE)`9+%{u;-VtkbZjBprL0RzqR(aCq6pc&y2vOAWnTNz!D_uz6KA&aE@=sz zU?5?4Wq#Q$S+A@v>f&qJW7I5XJ;~Q#r%tViDQ}!(P=*mDE?63p5~~ZbjZ{~`s=qNA zuQiYb_4Do;9n#~JtU>2YY`0WSY?jSnS4p$bP_Cn1P%YL+ zdP~!Q4!bO=^fx^;bS=R`byvFKazX5|olE&1$HEY;miDzjZ(0%HxsRlBle z*VTUVs$lFh%XhvM^K?mjWjZl&yv(rA zZ@7?2H!r;(jL+_g^Z?_&kXzNpHP7g*hmBYZZDOQ+D21ZETKGNp%r__m(M^g#I@$hVi_;@ zBwn`EO91p@cJdO69lS(J#*0eU3jpWw0t#=dqeT+N^(#eiV7ezw9SMz&%e$(amFrhy zRL#gJ^!y6Fo*m-k0+V5nCi|g1tU9N)N$B@^#p6!r0tHp0s;D_tNi~rCs`q&NMyjc# z8vuNamUneKo;)9ES1mhF6k!u)qN`KZM3Eim%Ond0v5_QmCa0Dsu>WHBrO5B&ohw2I zlOp5{1AzJQq5r?rX=lrU)~=N7X6Q)FqPI>L5MN?MB)-I6rHy86Y+YRX9(r~7zv^pT zv-mKkOuuL@HAwk@nA%_zM%I`tEKmUpHW)@p;%W*xN2it()MUz=HEML+ee|*iDwj`5 z6rUD!{3Vc*Ogm?axJ)tNCJU_CnL=epRU9@wXf1eYSixgD8R&XBTvXK4PCFjUQfC+s zLZJIGTQ`@J7`SQo&-_akRf0eM-F3%<7NnkIA$u~DVF(*t4T$u#iTqfg2}?LLX9}!#+5GQH zLwR39WjlODXlh)i+Pre9oAFew6{3W)nW6>h5G!`0XNU5?N$~?>A+3YT3@(q&=>2>(ROlybAMqqnr9=W&KA$F z&F_tL@sac<*A^Irz@U_cj7}7*hzA1FN`Tiq)-sbC@sM({YK;5DhS85pk27%$Sr;3E zof(hHSoe7t)3!iI$EV_$#E-E}iu0>i$SSRf^RlKJ4xA`?MRnL7F4VJ$SeGQM&(E)E zDz8SXyP{R99VWz-#aH3wJ=PZRvupYGzzX?cS@MLdo_#jUY?zy;wW!|s zR`^sJuGnx?QB_$!kQ!2#p>l@R#|LSboJ>b`CMPTCAtQU8gMd^e+ZN2bmUrpI_=1j! zyPfj6Im81>a)?ETRtM%N5-EFUYyv8bGdZ}+>Q>2Nv9+@1o@y4-bCQdV^RIT@CaQ50 zo)*AzSyi;47u1L1MK}U5Ys;sDd4yz~FsIL6mK-p3z(tV^U&)bJ8oQk9;zt&hqhQve zvR4OZd;@{go01HdZvKP{?r|eJ+K34YJwskL*2b5&_)`sjO&a-V&^fHE4FH5Opcpy*y_S_*rXm@EjeoL zJUL1``#aQ2;Ln$%u4;Iu%0Yx@#~gH_;R&k##N=E+Z+QCF{gfH$|4`AZ(!QY+l5O8y zrFfRYEQ3ks9Xa%EBhCS8_+zA2yGiZDY))oimwNj=gN#+_*5qcGO{2Z?PE7!L6Lg9O zGA2lBz|i(w&~V(8x#q(B`2V#9x_X23e`tg>v(dEnnZ^cPeXfxqTC2C*Idjq*^D7iD zbX6k_NIUhk%64B)G$~ruSkTTZ?`^QcwjK^u(Fn~-b2;2M+zJS!W#7UZ;4JyJ9nelZ_ROp8T@?4Rm=q#l6=Ms2Lj4_*+0nA zpk|+S=T%lxrFyZs6rxvno>f<23Z-*-JO=4IO>X(J*t(*{%f;kJ&qJQdpEh)H72}Xu zn|vH5O&ROyr##lReneg+nq%)lzss&W<_8zocFoT-j%r&X7nnH8OqLN7OnkW|=5!Ss zGOxCfqY~>U(VR??o|n?5HH*qWYkjs$O)gqx6N!!lkZPUUsZy`SMsyiifj3@n%W%u` zc6m<#k;Rstoec@XP*4itbEldY;QS(>BEBSu*+iVu0vE-#OVxc*^`NZmAE$b`;#bhh zL?aEoOqz}5yV{Rnv^Di>?9G(Tw(J)h6WghCB!h9FwC>cA$-odT*d0!P9OqFbeF8T_ zZF+7T=YzXhnz9Td^?UV*+ktvq5;Qo&=9V!^?`8?ByQ`3~Bri!O$=nI2eqgGy2a)XI zkdr9bFXK4on%gZl%#V>QLukw}cNXQYo*+6>gPF^I3=JuAwxtZACe@1rGOoJK^qN#0 zD$7A-XTWB&-II}Ewd8uVTTH@lS-_{X^PX>*XupK(5E4@!?-5+~#fL`B9bHHUfz5xu8&cQfzYrKKaPE|ZK!h#xLn9pv(p z{xR+ba~V+lcyz1h?)Y*=J&20ROpE;xa;P11pb}wn7KdxbxP%O7%QJctVZ8XgV7m7J zXS5)zNKk>ru9Qp&>3_6pM*- zC)!FTEUI5B2fCd^#XvoG1W9@zdu(%ecS?#&mQ++GWAb5UAFI^pvvCbD02RgSyhuxnSQgVuC;U(S$>_m;VKJxz)u|LU|3 z#)gWWUNmPo-b`AVJI@zjfX9@v;#AxhN7&f-3d@6=x(M66qBV;Oq%ex8h*LhZ#bI2y zXhG9^3I~{U8Y`4mP`JiPW8T17QKy|VWU`1D1L78apKWmzdXQFUHT8U1DIZ`5tJpqz zU1ryIFn?us?%2eSq#g!KPFh#p!uZ;aNlju)`bnu3y_0Olkp8&J&D-FzSnSw)Q^&Lz zLv10GL(a7SHkP`wtL4o*S8HT~m=|6thpL3}$5v4({v0^XwwkEZ#Xlf6}ANth(I?N>n&g}?49 zNwcCw>~`#$Q3S=WvR7I??slWNh8o*~s?3-H2}s2tq-}`CUFb)dU5nVH?Xo?vY4P~IiSCung_Pw=~)Z6PARb8Ww* zk51zIxKFA}>9OWHB>ek0;jhW*knRkBT}7~3Ef?kKYC)l@mWvB#HC0BSD$37Gu{C$W zb0>-yDJom?xY@%Se=6ol*AFB-2QU?$3ln0QAs;Ea|1b2cEc-e+c~<*PF6nYj3Ex96 z?~)yTZb^gn=qa^1a?N--Xgmav$M~JpIgE~5hzSThj)xiY)P4XWhbiyXwvdgAi*X|( zldlI1lXKW(vBE5IlZ~s!Vr0tV6oE#xwtAO&+=2pU-=a_&%;9hPO!JqNkWg|jw zbn=a2HLH* z_Ac+?P!k3mWnFAb>MP5cfjO*L^ajRXmm^yRbI{$qQbZ)jMH>2eU#)p=0HSh$TNV4w zv@9FzSQ@#0HCZ!JhjqrB;6|f}W~d*59^06cvm#Q9l`QT9d6gMQFvlq^R-yPpX38ch zqBTRno9$w{{F&%lsW{mudKt+s2ZWNegTXD{aUGo3w7f^kfK}sKI+G^8*!=PgC-D=R zoUV3K&PzSFa;hq0l(M*%uAAJlz13Vkz~N#X0Z5uFsx>&$?b6OoqfT*xOrP!CO*smd zYr1OMNkh^Y^7#YYHR7Z|o=&g5wdP=9qsi&U(pr#N6Kx^TNLX8w7?#!OsRiZ? zPtxRLrDyZPdCoPEp^BaJ!4$iWuCiY{q|j9fS32r`OaV%JQV^2!PLQ&JL1sk#G8o_L zVI>fT7G$_&B4y*LU1fj%@@S2-rDZaKK`YN4tj%T+*>BE99_w-3hJRUsBe5Iq@@K{s zyzcV1^*S;KTe&JrZu*MDQzf?3yrzdEzN;NN?U4+UIl{IN~oR5uDvgISvJ+9#nD|S$IxZjFH z|KcqnvXL}ADPfXIOLtYpIa?MNQ7~jdA~x($B+1NHoos}cb$Jd~r20`L8S*6nnPI}E zB*_ji+jJ$j(yeyc2cal?x+=xfwbu88m zEi(SMd`S}D($>HWJqce2N8LzaFS;`DR>v){_vvJ<<>F z$3qj_oXor-19lR2KXO-QUgYBXqgfZhxq5vr3g#-4jc8jBC@yWU+d;+az0uI!K5PSi zNMe*gB@wZiYb~XllpO_=LA~^pe*x7FD;0{UMW)U@70edxNMA5lRX|_fe~5b% z2OCSlV84ysQSu9rn#l^_@mQS<^k*gs0)cs?6PSm4fm&FK<|JaNV<|-RSfrPq8`_QK z<}j*ib|l!#sT59W#KMZvs$nssb}D@&=;J|;d%kn{LB zHu9)(l1H7>9fr@wN;Z6vWY21`G$V5|u^e>?mjfG3St>!f_2F=hi#TH9G+4OO5U;$p zS%iJHKMJ@dGCWk7LqN>C>jc$$Rj<2AJPv@$8Mr;8ro|}cmFYzeV?Gzl7=ssaV^ChQ zE_+BMAJ+>tW4VP`RZ{X$j?L#)iQxpf$hnTk7&!)j#;OplatkqWl2u%@ z!p)z@dX`gQ4Rs3Q*(=g(Sl5|IC*eegb23|PIpaJQwiA(RxRVf{Qo6(-@F(a@}{8mY&tHV{`buWYR6;RZ5zgx^ z;Ve91#B+~7gT!krK^GCmv3k-2B!>OBCoWv_~##0sEQq)Ui;b-D(U~}YLl2TkJ9Wc zB_z$@BTphhFc~o^u!=}QVoi2yqrFNEAU7^1YNX*RAPtHoh-xZ?8KI1j94Zb=n!$%f z>VX);4a;ejim)oM2ob9%2DednH+v_+3!y3_1jM{rzFGq@W(~VVJP}cVR7nN!SYQ|- zEEfqQJcr7~m1FRkUkqIFLUL1aX@?%1S4eaXGmb3PFn~{!qCS*g)sX9Bctk<7+oLiq zQUkk2m8S_CEgqJxempd5%?-Y@LH0xv<>Tru??J8}@yzLpJZ?mJzQQJr=ar(EROLyN z#xqMQBzV^<@w{n&<5q%47gzRPuy~xbRy|Zi`sU`G2Z{mA)K(s)Iox&z**ZecwnL?2 z+;P3(rAbUNAQ@K5123*<2ZqOu?ViO1TBg%_GExiQNi=0g z7`*Ip3m9YZ5-VcX)BUBmhvwx-5c6cQlnmN;aEv>yPWV z5jJm2bMP^8rdR}5G=bob{Be^KHkR$pi5iN@mgH&XPE3sTCMM%8?8i;Wnz7fDart~Y z8TFWtPzcR9j?PMloH^+)ciuc*jQJ z6bg*7ol__xQI;5A--eq)g`%OUDcHvinN1<0xDvSFIPmS~DKt=vDY3}L7-_{XZ+3^> zY4e1iG}cSkrtmyJTRshQb|>yMywXmQhF36HG6lPDeNVwMzDYlY5Y4ceVXSG`v)!;M zcy~1RlV?~RqoaZy=!MKpX%$YPgwJQXhiMuJ%Qk zK3ll1WC~^txm+Qdgx)O}nL83PX`*m~g5&yrNd!!ut+J;>Orw~#^{q=j4PQ|#POh;SL8l;%F8N1d4W>2wXSEEbu20c^g>cV&u)@~=1~&TJWhj~2m2^2Xl(hBM;+eL z+$w+Kb3LAtlt!!a>!(nCD_yw)AID2X{F`4e96QL>kN`((MvsDc#9%OSIWAhy8WuyrJ%(# zrKXaXYO_^VRGg3tdqrdj!z4sM0<7$X4+`UtUj9}DAG2_ z_GqV!$sL#NPOJ(mNu{u*)-<2g7|X6{=7g<;&=GxSEGk{Iribg=x+4PNHtI-GL6ddFra9IX7RJ99c3&IJA+Qo^PDG6oqx` z6key;CW!%7;JcVh_Ipg>U7mL`KXsCVlV`ZjcM9J^uF3qdmPI&fGI^FNV4lcVEC0Tx zPBv3a)B~{f#z|$K@Jr52I(m}_L^4I(+nt=PsIN9LchHZy5S~dQ+HKQyoh4Uj31@n# z!nDOsm!C|YBX{a|O=;`3n=ysYlBW6A??gFlT>Ezl-=%1%??uCNQ--`8tn!&$h4jMI zDfsqEpD#5II%)o-vXERYUA2&(tVfxZc0d*rcjzR#1UXsql+&vxrU{!*7CDqbmX%GL z|I67KiMRupL-eF;p6Ci3$kVjRoZpUQ!Mb$FdZdF~^g7 zu{%xx`XKL27S(r{=Dq`?4Z}a0Atc5SR$-z5Y7Rl0o@0P{8E{O7AK&rEU_b@d}V?nhW4QmWp`d7EW$tC00I< z@w(?Rrn)GhBeh;g0x;eLutR7sxT4$bD>_>`;Eu*Bh?>b;&f0u0tY0S6a$Nm28Fy}I zaYD9?t)7r8Ri{kGqiYn$+t8~=2*zx(X_Un57woc|y7?v5RIuM~;4^h@ggh>2IS!x6 zZSYOkkR@d~glZuU0kO~&ut?x!k?hwOxpiz4M`?Z#FpdT@1Ih4Uta2V>dT0A15;i~n zG;LpIB3?5)S%1YOWR`49>-{t$Obe+3-Jq0@!vK<}853uzZBEl_JsGpREbR0IUonG;X|tQNHw9kqln(=t^b$2XFcZ)bFMToXw}iLj4QdunLUu6zKZwD2r}@hjyFlJ)XkEPRPs#<*ZM5<@w#3usX{JPGJHtm93( zaLFJ*!aELI)dHp?8%msZS{TBW)Go9dhAi0YkzYC;>QRh!Hd&%2*wo?tQUjSsRJG}p zU9uxA&M301N%_@6n!^>D!XrVPieeJRqMeSJ?4}-OCkqrPddJD`410P`NWIiNmWNZv zIbiClI_kp$C{<_vuDgXIpequ-KjQok+bk|HqIjn7;7G?HG!Mmd(W?uRhZ3g?d3tVI z#re~uR;$UE7FoZOF3~T9xY8#OJ#WepN$E?0syob2E6e%t;nb`!RC9phJ#bFAR7uk0 zcSlp%)?yW-#x6nmjc<-k(xMpW@?L`T^Q%}~NtFVGv$+W(K4QUnB{4Pz=}K0DbZ1y8 zTiji-fa&R0Md9+B*^0uI!lfs(Ra6m32OiP~99ioyJiWqcBE~6%2Inz3bMNgu6-$D)(C4!Kp$IIeRTzgnA;a{_;zay~&5pS7A2pJR|(MuDgY zVi~=|wc>P~Oa8=bij`3FY%$KY;>M4UIexJSJJWFLXqx6=UW@Zl1TqTNW;jh^8RIB2 zD-eW>%Y#&Te?pLh#bJ^&f9#+h^+VH588R4Go5mPfq~I7NKjy$`YF*Nhr}p5bebLdS zh562Qr7}x*23$QCo!V01!W<{BvUoo_%7JAkkL^9e zMKGQ1`Q_zpck4)QqLp)=-NbJZ#*IbiF=e~0GLPZtSa;lTewNvfVdOF8-FlDBY^_(T zw}$?X(VXyo_3joFLw~zV_8yyZg*$atn&~^ca#G6f0Bm=2Sj*2U=VZlHTpo6I9F?8! zOT{%G&rjzh?T8%sRFT}R2qd%0rhu7{IzvByPPa9}*eWgM0B z%=C6d{@P7%a3&qKT)Ft{c@Ez$9=FW$dH*r3SH~5(?$B+7r7zdrc6WCgw!9N|&tO>V zo7r^qGh7MPb9U4Ld|a8!29upDbpw}P?5z7+TwNqNh32Yr_)+czpkvNab89qg4|FpI zcX`q!XBf)^x9>OLIwh*O`l!u?o_)982eGRcRd$U-RbwB-f4QfNErt?BgHpdKSHJS= z)V7+X`sP+wFEvZbGGuxMPyq4s7-DsG8WtM0&jAfJo7zMwX~yoY2iJ$<>b=o_|~=Hj?FT+ zex~kav#ZZYFS`MZNJ!oIUU=VE{*ucI7fW$}L9;e&E;Y~Cwg$WHk_88W3Tnv$x2Pn& zmDYB%;cocK8)D&MXucAiC#lbEwWJ9yxk02V^20yxQqVNp~+d$zXL+AdehQMA3)VmmyI$7p!2*VO$fdKWO^ z1}me4k(8r_#kF1Yi)&(DDtr5!=-=Iv^BF0@@f8`-u(mP3-}A`a&+=-td@=XK$juis zQHd+W%F!BS;I!U15q0|wx+|^0*+y%lHRQv+Yir!@TxyJZdNZ1gQr1%OfL~w4Q;1q(-#X z=W1C}j63p_wJu}MBd#;-QRZx_A=HapJV_o-ikgUZ*_{h_vRS=|Y)q+03Th&89I4H) zUOYizt56;rT?RFXi=JMH6b<_I`PTBq+shX(Rigr>=c^UH(T!awKJp2%p& zdQ=c2VyZ$Y7OB6)Zqwzzc5wOMdp z5e4DY`yw-H7WhtJB5tFk%#OC!%8}T}XmBO<@QKbD$$JbCNHw_9Y##y@f>)XwTqVi4 z112<}UggHoEcMA1E|YAg$QElI%Kk>PN_m!x%*B&fjL_q;sWx(&toNnC=B&XQes=;> zk_*8mA#k=xYOgJcTT;!(PfRS=3^SA$!#CR9HSS=DV{VoqkalzE z<4Fy!3s{yVT36$0$vnr+YxK3em3MKqe}r`yZEObKyIZr!qY@mg0JJb<0E8tWC^C>z zFymOBUp~COO+HK;aIsK{z4tU43NBgF8b*pCv9?=u3F;tCqdZh1I8CaW`C5l+nhICr z&Vz{ffo0FQHltq7!GzUaGn);BSn)xwAyrtr6jR2nMM-jNofT6S)-8pkS6kImDE)u2 zW-0bRV+)IGHVo|!6-%}rDD+5jY{tG8C%0zp^O^7+6NP%q>h`eZP+-jq%UVJ6rYN%% zh|8xX6{kc-&?e9-RT}eqq)h<6uuYJO(E`7SB`w_R{bs5~X$ESg)*7VjQ@Z{|sl-@B zn{-6lOoC*KBR%58>;zQa51KGEo$1l7Bo+qaowR;MVCeSooi{Buh>%JznjGuhew{0a zT$N^aAk+JjmPv{%AB-%8S0m*cVMR=nyQUN4IL5~!(!8%lRNiN4w!|iQ=FDczhLeD2 zjBbDodHmAJ9KA=R!j_8w%g`yJLVX?KYBls*3NnCMT zzO%B%&}oA$)t5?TU<65Eqz4(-vA&80!99|4+o*2^8Ai)q+@otWd&p;&E6F-x@hn7N zu|#6WZJ$&!$53DM1%#Hqk^nK83&9>yR8|mKaZbXpuhX>_fU51P?MAfS>JPc^5^hl? zX@R74Nx+FR0W8QLVG~CLhRw5-$PkeTO+gc}Ay_mejivQU?Owr9v*mBCOA|a!I3IW! zlhnZ0M}5XFgM`smr6C*4Zgn=~!o_H#&f=jp#L}v9K$@)W_8RA0fgLqk+k@6_zG_Xz ze4-ZaUASU!d$8GWID+u2Z7^kO^r;A7;%{SJWi=Y^W4+z24M&|ptFaDVUG`1yfSfg0 zZ>(25X4Gi}boRY9YCBPA#ehm^?~#thTIKT=UY8+Z0kv&2R_j5BM$T+2z2r-!Bm%%Giq02GD8q% zCrMI4Wp50f*BeduZkwAMjeVHiN5=roE1lbdxSkF3dM3=`);J-|0~cn#NI7#jIi$Mg z4#}wU&6v3!Jt3_)rG#Wa^5J9gO^xq_Ny8p0`17cKhDjie_>|9AHA!Hn2UBPa~YVQpEs@MgHQ zSyKc{HFZK^hp-aEeoY7NBpNMln`fK#k#sICTBV=9+?BDsAg-&m?PgRE@EAT@Kwppm zN)LP-br|&p(HMCpvn|I2;o~Ky%(wqy;&k--Y?Y34FDHmSBMcyZUW>$T4KVYJrEhI9 za;#;6Jnt+|v!UZ5(HaBkIy+ZloVQWJqMz!tHu|;RW~)B9-=HfH?$5QaN87v6wvWNE zQNQ=S&9P6?o6V={mOd;R4QHjdZp6sZd5AW=DMZQ@S3I42XIF>D3xw>!&2!} zyuS`ip66eqRBGXtrw@%hx3TvcxbO1axPGa0UB2bnWwg%a{(cSotAKw;=%8P`R;hFY z{H_4I0@(BL>&Dk9m9B#>@;n_KQmavo-Q z@#CGi&mixO;^27)GMeasLze-{&XKmqQJk)fo-GbZQ)zxeH-Zd;CJKCqi|Qi-yWXl0(&z$+|lIUAKZO$Uk3c1_#@B% zz$?$I_`M6h8=~(|^8S73;}fbT2N`~|<~ftTlBz~2$~FW}cc@DDNgEz$8Gfyr|k-NPrs@do&A27EU(zYhOt ze%CYlcku0>F9iPo9>B+fdjR2nIPZV5xVe2m|3Y;55x@UN)-t+`c>gy3+#fkNrX0!h zuh2gm88->|1pd^(ul>mWAowE|9>MQL&W(Wm4&OI3-UaB+N?7pc+Q$D_fbQ$&&$V$s5&8!k zjmS8~ZyC8igyxCx-;M7M-(P|Dt0wn$=yEH5$Auwyo{6l-L03cGufcPO_q%b+^EhxX zgh!q=aBt`P)|7?cAxyuA`#VN=cMH>Vcz@EqZ*BSY65Jn!_LjWgi7v0^`(NSPAf9fE zU$5YOC*Y5P{?>fg(La1X2mMWf-Im{n_`VT5H{km&@H`5hTk?Jfe3zk92mNNjKMuMt z;(iL>@_Y`OPs8(2;Qsjnxc@ZwC&9~ef8O6k#=k@BpX(#%FYxDO(Em2^@fq;nLjM;- zdkL^3MtDbb_y*sL(EKShcZ24S;Cl{qFNE%;eBT}#|2z-BU&5~j?2+c*&57H+(B2vu z&ql^!c<#sh;Q^oU{{ws<1@~@fe--@}fPE02TOsHD;7$SmGT+z1?;in|=VyRF5%<4> zdnE56a=*`SR``JZ3-r&&EzcsqJ0kZoaL)w(Q~3XFelLYio^!zDc>wS4Li0cTZU_BE zxPM?Ye*)|i@GL=hnb8Z+{rKLC|Ig$78gzO(@$^dkeJ|g4<|ofzn;w6Q%qQXgS!5jo z_GRQP^S%l3^pm_l2K}9&c{FhmKHmV|31BaP_7l+E0zP@3jQc1$e9Uwe*uSCA>&T-I zg7>@po(0YCHS zPcnbr2RwXs1HXrb@jmc=lAnLR%=i0|`E-82j=ztWaPYj1_qxfu7V=+8n9lOM8Q*`) zZ?DPtAN<|Kzt8jQ!T)A{;qyi0z5>42K)=HK1IT<6uv-y#+sN_HFI)H?Y<`xB%O?lv z@_76H4!mwPWPTNe|CQhC@ayC7-+(YZ9-7bL*LC528-Be+ zV9@^rd{5+kC3F!mc^(ezHNd{(oTVor=cefN0DeD2##5lX8#Jdae&><57x}LT_FC|N z39mf=4qXM_OOV|MwvBF2#{D_?9tY2Dp_gX}-QVzidwxFy{6F~p6!fo#?la*36#joi zzC7Op{vu@D+x)l#JTJC56#U&yrhI=Gnxpu67hu;Xp8RtMrV{MXR$3+U5D?h}yzlfWK|PV#J^%Zs4<0&saAWqSWbpx4L1 z|10j_hW3r%pAYYc@N)^d^8697=i-*<7onYVpZfPNEpOZ!{-P} zJrbEO26tUxx8`@&czzE#b@0Cc?r(ta;e8ApYQWxx`+e}q^C94`#s9A(_ow0gIQlgC zeuBxlK0G7b^1KYXqm~8^;{JXg8QaLaCbWMH{_WzI@d(8U+`mHH-N3?qJ7oVPwC?~W z&)dx}=b|3QJ!|?2Yzta>z9;bx&!6J{E9Cza-}mBuZS;Bw?-oKv?<3GY0J_Ve zxi{~Z16w!$u7m8`;y#Ic5&A0M^1Pe(9q{`N$a|Cd`5a4+KZoviz^=n@4Z7DF&!3y_ zPbW@q4DK_~JqFyS!T%gsliw0@-iseC=YTjKqP=HKOfzY@9I;Gd4Zf5P{p`0a(POq^|5n%vTC=wrai^Jn&c33|x$^T_!J zllgkyudwfX0DlCuPviY=@tfxw`1L0ADiJTQ;{6_Ee8g~9g8OH9mrTCU-w#;$yaZWI z;kV~F_?si^=is>r_>0W%4)Ga@5=Z0dH`r{| z=6zk>pGNj$;Xlc@Jm1ItJ%0ZPtvoN~eVp+5rwr~v(981n7tZ;Lq{> z8}Pme+z-&@n1$`m=<+)7hw%UY&^(FX9|!V3WU?O${mbq94ft~cfBo}fzPI_kj`+DJ z?>{y@1pi=uU&6mO^6$&<-h8j}z8Jb)_;p?Ue+Tc|A^$^OAn!j$*Sqols>%8{=-&zK zS@53Xdk(%&ihsZ!VSKm8{RZ5B!cU$%LibjF^4tVJ4)DD}7*0U<6lgYhKNNY7;{9)g z`PRsk=St{43H-6VZ-QRmg7*Eq{~y2Wn!FFeBhROi`vhoz0Q@b4?N3a`UjXmp*FPfn z6#UQP{cXZ>3Yu@g``7Ty!t-;yGApb7>q95c=kf3Pe19DI4}o?a+TVuut-Svmxqk}o zMrONT0PmfEy%E^U`TYuXXL0`>Z~wdx__N~Rg8r7sc@4<_g63xUaX9ctczy%;-$DN|xJV-Nv?=rov3H%YrmFGUdZh-uI5l=THP9B8&7fh$`@%<;z z{vGn4W4t%#`)iIh_4l*L7{GUZ{FY}o^5pqT;17WJ`n*5J`(C_XEa`!qpW?fW{Ezbe z0=^#u@4ZatYw-TKeV0t1@8G^MG`E2E9?1Weq$lq8<9;f*7x4Q8FnRvd;^#QBpAYQg z$oK(qbQ+pl;JyR+KLU3YogTvXUCocb2lh|=eh2sO;YSPlHzWT|z}^h(J$!!xId{YT zetxgT|6c`u2AMbE{TbXp;{7P%_ucS*6WZ_adn0@=1NRdA8(G{qO{oK+_s{E~t-<#d zgMGx_Blv!a?-~4TA^U0g*MaWyyyf{J-|sfs-{kw#z{|kb@bfS{`*FV)_|F;r^Nm(` z-@*5vfW5j16F{v~wxH{Ab#TjcxN=sZhU zKL|}5*tgBkC!4GzxPM4^|Iy&$=P&a82hiS>--G$C@_sq*@1es_L;Lf5{}#XJ;rG44 z$#cf!ITvjd{Qf4muc6oP!gCkizX<;g(C3Bdvkd)TA>$%`^4uBvv&fU@KP(LL{Xl3h z4$|sI$oM#Nzr_14$d%`hkn!uL$7z#yiQ(RZdzSAu{yu^4*YdtK^5^*tfZrV0%LDoU z4*qGtzXtrb(D^;Y+mq1iQP8{<`0H^GfnS0D-+|^FF#jCl`wt1%Q+=G^zB6=x6NKmW zMtll+J?O5740%qQ4tK`?2jadza<1fe1otl+jnF*{_bp7`4bkH`e6L2%1Nr?Gzt6+- zE&Tn1fakxUljqLhe*^fJdB527-UDt6p8w+aOUSx4Z~uJIWLz7Y^f}Y-ZQvhBeEbgY zTYYA>-QEGkM&61;}><-~St*58c6&XBzIK1vEFbI4D3Bf^G$U8_Y#J@I3(Bi9&7%d_1pj zXYfCtaZl>JZvo-W4E9BPTa{EmNn0TUy+y_?&fnM}tb%`dfd7gB3ZDG|O^7}L{9FjI zZ>jdS?E99`ymt(L$ohC_o@aEw&im6Kf7%FM6cXC^B^jA}GwuSG(siJ@c@ZLj?SbZ* z8Cf4T{Nn<;qR*en@IB1j@65nG?=Scdd%t50U4|^>yoK?6)!rWsWPCdKPB8_JD>5{H z4Q?&KXFq?Cp%?u73t(A3ao@EFn1Nj@BkQH+9zyq#0C!8;aM|Y>hQD_KE=xP9`>z5* zYc49}`hg!W19Cflmz)0&3UEUFm_ToF%ku&K%Q%eTK9!;Qj=Aq=vVJNf^V#74(qzbs z=DI!?@%LjHS%%8JXwIgdZwGw8iGMG~eb)fCFVNu?DNg!~0i8#E!GGBMO5^`XAjgyZ zzXF)xUc&GF8QeQF?*Ga7{pk$e`{Cc`0{W94n0Y@npz)}i*vH?4d$9)w?}Ntk7rgfc z{9opKci_Gp{XQA+$>%jQIv+IrjWMRL%-{rdBVb*l@vk=pbT<+sY|l3XzrO&@&v^vz z8QeEC+Gq29p8zMHKL})s`(5%U^Sl%HHSpsIw3~dt)%+V7?>}c`c=i?_uZDId(9h$F z-p>kv7mtxCBzpzRK4g#4#~_*rxRG5mjOel7)JIAh<(z~2`7W9F`#f3G(l@5jH4(c`v8cYg@~ zKf>+@y!Eaw40zD1tFE|;9Y(AerD)Zv5sQXdHO#^SRE<(0vI+r4yfqJvHSaezS^p=|ep{U7EqBHy(221)BHg(Yj>W15-=a*pA-3B8UDfpa|hnX58lai{6Nf| zseiKhqzC?m_4U^Ow)5m;kKeqr@^ih9xjXCH5&O~3azFId_Z#8s9+-Ph#P6Da#DnLJ z{$q@-+at-QGkr(Qe_hm%jJ&Uu=dlsJUYfd_Rd~^to_pw^GC1{m;=)d9FvsnI`2gIcfi! z*vE9@hob$8=sZ2v{%-glaldgV{(H24H)4M?+J7C-@ejuSEY>_V*1j$3x5WH&qyCsP zO!iug{@wEQSohUYmkfS<_~TJey_*k>JPn8Y_hPnrmw7RN7VF*`?Z1o3huQ1PBFDeI zbB1pa`(|gJZH6i>f59Jd}sUA@Jk}+M?~C@M1A_5 ze@H$%=KlBttK!e+`H?aI1+o5LgdZ1sz1;Z!lJCtiwiM^P7cnz;&hnnBL3Mi_fs+c(b0Z`{72%xBE~){&Tyr_AO2YE`%Mw|h?tv{m&WtF z-nwUrd!%>w4>AApnE&#KeV(z`NB@^1{!y{-55)Ld^e5&0&Uo94zqcmm{r<#P#@G+q z13 z?D+}d*J|Hg^BViyAN$i-^TLQ*j5Bdh9zNb9c)yaxcU{HO8-E&4ZZ$noPb_K#8D>e;s9+>eU>!y?bO#`C`?`ac=x%UkqcW9)wU z?|07d8tq@bv;V6i_Sf$8C+i-5e{uL1k@wND*RS2lvoHRwF}7fQFJc}Su}`%27vrq& zjdOi-j6W~p-x~XTXw-`se{%F665}5f?N7dQ*2&Vdn46Bd{mAtb@g9C4+TR#?rXudC zvDbQxABF$fJDQIi?~ip~8}ncKKrTo508fd$pBro59{D~q)_hU)e=~AT%1!itJH`_+ z|GeNb`p=B^RP6KO=zn(jr!n@0lb9%f8S8${{*N(s8U3G%@jt(FhRs-0i1~LJ`ybK% z%NRQge=6#4Mf=-h?p1M?`{mcg{tkaV=Dtq*-O>IZvBy(muN@11A^MNJvwkxC5i!3K zXMTO`@h4F$@%|>|o1(tNxt}NJug3aG`L>9gluwS>$HdrStj~N{{JtRiA0O>E#aty~ z)}lQr_w4z%(SJk4=OXs$Q9t>1I`LZhpBizmwZ~*?G4j1G@;o=jektn9<$Li1&v0q| zWX+dG-q*&vdPvk8aox!Cqkc>5`?8o{igiCD&pRUL zUq^j@jQ3*AA4c3)Meh6M`H|x}QGe_HK=>80b{x4|~YPmH|% zn0t7{{aVCL$}7UN*z4D0Zc<+8`JWW)hLQIle4okOMvT2HVpB0b9qs=(IeWA}B=-3q zQC}TnsmPP{9v&5Q|4X|o{~MzJ6EXgT$oGmE``Os9A8WrZa=j&-lvd1tYmC1)oRkeY z-VkT~`G`3Z_aQOA5;YllzA@(d5%&#Z|NeGq;w5ZG{(p?~P0BOGEQe3<9wy^2kG#JT z`Q8_?lk%QuKR)VJ#B7HLQ9nJ_^y8g8-Shl?#4bkrtHQ7M?*2>k{~&TrMf^Wk-WNGX zG5;wM(2(oDMDAaY+;6}0&bK`4B+pLl@mlBoq*z;xxyMB8&v~wIiT<1An#BLTJbx48 ze;DI`7QQIf{Z#nPan{$zeqSB=I^m~=o8jG(im}&4{Il%&d(r-jSo?X=|8(!@Nzt#z zK5vcw$He^4M*o%O-WTmBM7_Rqrq7SH^B*4HF~(jIbDtjlzw+K*9Q~h+_7BF`d*!%$ zo=N-LV*KMHZc<(m`%TLCNB_69C;dN)=lHCs50iH?_RG!)Mv)e*N7 z{Y=zijO8PCQoc3(oyhY->t-U?-}!bQ9`B?Yv6J%Ck^lRm{g{Y5j2zd|e`h!;r5N9c zJg*Y_?Xmtp#M-}#v5$zc*USBV(SKOfPl~la?Rmc{+W#}^{qoA#|9<(5h+T;~DL)qZ z{&%eT_^8W~^A{uMPSmfD_zUYlDfWG4%pFE-CFZ_2#-9}?W6eg4<-#|{*pGzw%fF2H zuZg-7YtLiuD`V~>!&k<>KN|04QobwtFSOR%Ndt=SH@9}++ds3br`5qGME+g)d5wjX=Cgndxjt`DAzA47PKKj2K zYbWK)!&k@J73+U4{Dr6=9(i6E^(B$(nbCh(?DPIu`|XkETW^n7#V;TMH}X>Kz1B{B9D5&w?J_k`HviFe-Ji(;=&h?v*L**9X%=SKSvBIZXU z=L_Qu&yMlmkM`rN`PIntv>5+SF@7BFhepotiTJ;bJzgH|Pl~a3$NYCkos^GsuI<=o zQhpQ6C!l-xp&qjdOlMjDJ$t4JYMIllL3_ zKk^PQtpCvHKO^eXV*Nv6{Wpc57I80#_9MjJW{BTMMy@Bt{1?aCOw4^})W=5Lq%6ny z%RS4N#Qaku$5+NPU&r|GM$DVy0lq87=c1pAem$I&=fv2r#JbnS`~HtHK8~D!6m!Gq zzcc!qF?Stte;)Ov@$8=&dH;XlTizccoHZ1i6ov5$;K};IUg5i|MOV86*+gpNqK3k`I%@} zWB*i)Ps&cjeYy6>hLy(e1f^_So{2_pA-Fh z0#L4YB?{SLLoZ&2! zoMVdfT;L+pTw;dH%yNY}t}@Rx7P!tLH(25(%iLmx+idWVZ62}96ZUw@J_kJKkkhZf zeZMnYW|o^QbDvEfu*E~RdBhHn+2sj)JY}C}9Ppe&UhtAv9PyfC-Z1e7_li@T<_u?< zd*<`OepW|k|=ag}+lvA}f}xxo@QS>_fi+-8+KtZ|oh?yWRILjpGnBqJaxX3h@nBg+BTw#u@ z%yW$euCvGumbl3>w^-petK4CYyR37M4eqna77y9x5j#9)mnZD;lzpCYz;h0H!Ao9o z#A}Xu!$i+_=M<+o!&xRd#}wzez(uCH#0;02+CE z+-03j9WRndBT(oaX`;ndTBR zTxOOzt}@Rx7Fgs4OWb6cTdZ)KRqn9HUGA~LeKvW(L$-Ou4v*R8HOIVR;*H)rr#Q_d z=a}L=7r4kYmziabtITta1+KHm4VJjcGPhXaHmlrWjk~OKj}7j#$pg07W{1b@@`OE} zvd0-0++bT0?XWHjk~OKj}7j#$pf}{$TpAI;W4{B zVUMTm^Na(YbI1!`@`@u~bIcniPQ6!7ahfxnWs-ADah?lYWSUFNaG6=IFvnHqxyAz5 zS>y&w++>+stZpT;L+p zTw;dH%regci!5`CJKWtPxyE%CS>h(QSYeer+-02&?(>KzJmUqgnfRUC=bGXS z=eWoWb6n#F%dB#j`)skz4tpH%l2;t@nq%HD@wHDK2o48D_b{JPTZBiDhoF#$7hp7n!F{&a<`KK>@stA&dBG9Kyy46reRN{-zo#+F1uinn6&AS863g6T zl{N0N!6pybW{1b@vClIOdC4n|nRw^zbKT<%lbquM(_CVfIj*w6A~#rOh1;yL&OJ8S z;vqZi@`Qa3c+L^8nRwUjb5C)aNv1f@G&5Xgj(M)J$PzbMVU;_qv%!6~*ya(t?D3QX z4tc>5$GqXpg?r5fE;7p%=2_r6ODuDXHSV&>1Gd@WF?;Ouj6){g?cQ>RNzQSBX)ZC# z99LOjksB{hRe(`&ovfVrXMyW1vCJ)2S>rAnZ1R9@c6iJl`#j^2m%QSbiA(pA zGfZ-h3rur~S?0LP0*l;WnH6rc#ya=dWQ&LFu*(znIp8@jIpQ@Ff8xG!nn|WO&onb! zW{!ETvB(lPSz(nsth2#=w%FzoyX^6l0}gq?5y!mY)c?MH4>O!)iVIw1hFPvK&jQz3 zVwqd4vc_FD*yI7*?C_X9_Ibu3FL}kpd)<4^Fv&SCFwG@qnd2%8EOLWoR=CX?>)d0L zEgrJNE>GC!fakpAh}TS9x%ZrAk}1wJ%?y{BW1ed)ag!BRxx+de+-Hkz9jdkv^$rcaUVV5WDbHH<6a>Q#U{@lIiG?Pqmo@r*d z%pCJvW056pvcf8NSZ9O#Y_ZKFcG=@82ORQ(BaV5)sge87S*EzaMP``g3iB**oh6pJ z#VTvuWrIx~u+0vS*<+t)9P*M^95eA3?muUkjdkv^$rcaUVV5WDbHH<6a>Q#U{>uI5G?Pqmo@r*d z%pCJvW056pvcf8NSZ9O#Y_ZKFcG=@82ORQ(BaV5)slRsrIm;9mxX28%Tw$ICuCv54 zw^(J3yKJz@1Gd@WF?;Ouj6+`Xieo1J#{K6ElbquM(_CVfIj*w6A~#rOh1;yL&OJ8S z;vqZi@`Qa3c+N|Xc+JGv{pU23OmUuRX1L58^IT(*C2q39DtB0CgZpf;%_DZ%<0%Im z@`59ddBdr{b^kfb6c@P246|Heo&~P6#4@*7WsSRRu*n0q+2JvJ?DLF6Uh;}#CjQR- z=M0ma;{wxMVwO3svcMuYSZ0OWtg+5LHre7KJM8j=eGYieOOANW#NWIBoMw_K&NIyn zmziUpYb>(FO;%Xt4(n`ipDng|#4dY0<$yz8aKtfhICbOxbCxM)xxzdPTxW@8Zn4T5 zciCW*2W+#$WA@nR8Hc>&6~|2cgL}>yCOO9irn$r{b6jPCMQ*Un3b$EfoqKGu#Y1-3 zBvYJcni(!L$2`|qWQm)su*x0Q+2B4~Z1ad+_ISzxhrHm3 zW8QG;{q8wunc@N$nPHYI%(K9CmRRN%tE_RC4K{heHak3KkA0qT$V*;v%*p?A%jD00 z?{S7n&T)ZhE-}Yd7Fgs4%dBvlHP*SuCR;pYhh3hq&jHVQ$q}!ac*yN@PjQ+_rZ~?u zGhAk#Yb>(FO;%Xt4(n`ipDng|#4dY0<$yz8aKtfhIQ2od&p*RirntaGW|-v)^DJ9xDr?+jgH0Z=%?^**W1nXn@{(5^Gx5RhJ7<{W92c1860^*4l?4{L!7?k{W{q|3 zvB?$>*~p|#UUI~1ChocSoMw_K&NIynmziUpYb>(FO;%Xt4(n`ipDng|#4dY0 z<$yz8aKtfhIQ1d!KWCZZ0vDNKmMhG&z;%{b<`%20ahDA?dB8S1JZ6u5o^i-aUUAIC zhr0iqVUlxPV46$JGRIXGSmXxFtZ!Ivd<)i)|jU%N|cT;E)#_am*V|O}YP^Wr_=2WQJL;FwX+l zSz?)6tg^;kHrV6=+wAa|J@$FVAuoBwF%uu={&R*&&T)ZhE-}j-S6N_@8!WTJZPr-l z9-D0OkR5h;!afH)=OstHX5z!$e@-*W6z7>{hRe(`&ovfV;wCGsa))&`xX%{bJYttU zo^rq;FF4|uH=O#H?muUl;sO_$VS(!`vCJ)2S>rAnZ1R9@c6iJl`#j^2m%QSbiD~zo zGfZ-h3rur~S?0LP0*l;WnH6rc#ya=dWQ&LFu*(znIp8@jIpQ@F4|UHu%_LKtXPOx< zGsisFSY(Nttgy-**4f}bTWs@)UG{j&0f)Tch-2Px>Lc89&N9UXE;7R`SD0sk>nyR% zEmm3ME*os}fNgeo%pUtZ!8rn{4rr9d>!bJ_kJKB}cqw;-lPuPBY0A=b2`P z%giy)H5OUoCM&FRhjli%&lcM}VwXLha=;-kIO3Q$oSJq2Im;9mxX28%Tw$ICuCv54 zw^(J3yKJz@1Gd@WF?;Ouj6+`Xieo1JwfoN*COO9irn$r{b6jPCMQ*Un3b$EfoqKGu z#Y1-3g5a(e6KInc@N$nPHYI%(K9CmRRN%tE_RC4K{heHak3KkA0r;l2=S5-FMC~ z$vG}C%_U};<0^~XV1?VPbB`?^vda?=c+L^8IrTBO&oRvu=b7O$bIfy%MV7e93ai{< zoel1@#Ws)FWsj#EaL5aeIOYwf9^rm+mMJc9kr`&W!aNIHXNhHQvC0~E*z`^p(6ImZR2xx_4UTxEepZm`S>w^?JIdu+1BLw4BZ3Hu!IoR=K& znu)pF=bz#{hRe(`&ovfV;wCGs za))&`xX%{bJYttUo^rq;FF4|uH=Ihj|D0ut3tVJ|S*|e80@qn$nOm%~#$7hp~p|#UUI~1 zCO*-9=QNW{ah_>rxXc{$Tw{?XZnDBEcUWhG`)u=wJ)UyN3yyiinMd6|=PVbv$PBYw zVV(u9v&1sDSY?g7Y_Q1#w%O+yhfL1jo_mf9Omm4@=D5lNi`-zD6>hV}I``OQi-+v6 z%M0*0vDNKmMhG&z;%{b<`%20ahDA?dB8S1JZ6u5o^i-aUUAICC*MBz zJ!Ivd<)i)|jU%N|cT;E)#_am*V|eTsX}S*EzaMP``g3iB**oh6pJ z#VTvuWrIx~u+0vS*<+t)9P*M^95eB$?mcIihV}I``OQi-+v6%M5$GqXxXS)BKWr_=2WR@$;v%qzhSmqY1 ztZ|nOHhI7{J3MBOeV%d1OI~rzMB2UQ43nH=noG=al|^o_%nG+zW1V|!vc*Go*yRcP z9Ppf%9Pye{pLP43(@b%m87?!=HI}%^DtB0CgZpf;%_DZ%<0%Im@`59ddBds4xUZaL ziVIw1hFPvK&jQz3Vwqd4vc_FD*yI7*?C_X9_Ibu3FL}i=6QAwga)wFHae-+rG0PlR zSzwVHEVIIG)>!8rn{4rr9d>!bJ_kJKB}cqwV(Iqzr#Q_N=b7gwYdm0==NxnPvA6lt zT;?iE++mZ)9PpZn&v8$=$Q(CV?xW^{j?6SuJFL}*-k8>`jxX5L$GS4*@xXvOsSmG8d z+-8+KtZ|oh?y%iLmxHP+c+lPwDhDaf;KN;VhG!V~X=!;3Csp zVus7ia)mjrGS4*@xXvOsSmGwj++u~>ta67n?y}B3w%Fz|yX^6l7rbI3d;7kpILCRW zxx@^YndJ)CS>y&w+-98z?C_LBUUTa4x96N=nky`DlZh|7jbB{3HNzF=xxvLJ+{T^r zlGjW;@pgWiNzOCPW#+iXA~#v#4(r@!i%0D8lmlLH#2ZfiyW8{5GQ~w^xWYWwS>hI} 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%0ApqkwSJI-qYiQFy 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 z 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

n}yV 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

;LV2)zNVfWw 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

~BZyHM|hLFjKoJp{MIVYmZsgqz@IxCL&7uDCs& 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

^Wv=@%a>H%o|jZ7Z`)=0cgb7*cICEv11oQN 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 WM(|}zPQGme#m~Sypn&Hr@BaXv|G2sU literal 0 HcmV?d00001 diff --git a/TMessagesProj/libs/x86/libtmessages.14.so b/TMessagesProj/libs/x86/libtmessages.15.so similarity index 51% rename from TMessagesProj/libs/x86/libtmessages.14.so rename to TMessagesProj/libs/x86/libtmessages.15.so index b4661cbc293ca737c570a5e812cebfa0c6aadd72..f7b9edf1ac471d6b1c4e4ca47ccf5f2bc5c43433 100755 GIT binary patch delta 652468 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

0OU}LU!?z%aY~o zyKDeXo$jS)quV_922tAZv!L`*Y|1vu_wQ_24y^-s@pQc+4D}v&4lmQQ0d20oPQaf1 z{|yWc1b6W?@K zz+Ey2Mtcdw>I}jSni@FHxy82dt4KAfZ}aAUEZQD;U1Y|6KnZsr6_Z6fg#i^UicI4( z{aCxkJH=<9R$I6D=*PeHV|$#4eJXp*JZdqFRc@3t*XffGqM;o#EF>sqjs5DfjP zaIl%>>k*CgdoX(yzkE^y)*+qj<|Zdj^7J;@Mk`G7W-0hyUR{xF&bxyF-qY({A)%57 z_Yj%|Xrsfgr}uj9gAUGyJ!_%)sRk?pMgH4>S)(+dChnbv+RwGQZkGAyKT!wo7Q)hz zD=&n#!p|2WqKpF}Y$Dz|Sy-Hfiqf2Ljz~D*;)Mflp@k)x>Mf>LeT{SLEv&QQ!4ZDP z!rFJ7J{hwERuA%C^EZ1yt<|(lR0H;bLCVzGH6NjmHzsX-?~8n3L-v;G!pl_DlFi)P zkd2Q?g0nU7ke4~@DS7|U%l$(Uhval?Vz$*00DYYLv zCF_2$>blXMQAZ0XJMPLR^Fk2BsEfy}v(gTCFGQ@^JxkAUC|~FI8nL+K;7KqAfY8)& zn(uD;Lc%B#r6Eb2NTOg?M~qoBGFEup@AZMWs_{NvUCXC5X3eboF-ZVAnBpnOj2bP< zIPg9Hs4=q|9v1O!jaiuC`g(q{G0QgW-p^yK>>I<%1^j}QHF7Oj01~Cz7eR?HQjB(C z%~dQrGSqSS;P%;^w-K423mj>(&PF|z`A29m<>;n#%D

b->hnneGKfy~okXFLS&#VgWV;XoYy5!@^qcxZWgD-;C1c33u_5X#!eoc|eM z8Aj-mX3Pt9@zFA7Z21O|M|%__4?4<&c|@Mo-{C+p)*h^KGn92}AUM|1+`R6-5h5~J zje3c9Z^HU^?6Mv#0pkw1K~_nbCrYbzr-?$fNL^as7(|($e9O1s<`~2C-}2K@CRiN#%2*ZfLbcr@Q(>&NA$mR^6UH+1;ru^gtheDe zn8?G}WLI3`5W8*hi&OD804t@Es^)?vXYD~#cM3%qtEhhF!v1mc3B_rH;I@@qFx**3 zDIVie#c71QW+-hWvg!9}$@(LTGfYl1>JQ0fch<>iVY&UgQgoAT67CuNuhlB-h^OXI z3l<`NGMrJUWNb6mvOdu&_oB(s$n7&Z>Z^w7g%g`GN#87GHUVGwvR0M_=N&QU(Y!B$ zHTmn!St*Lhwy|dozq$**wXqPr3uZg{IQpl;y%171U#J38B)QC7*fTB}M6X$dz+4u) zgSa3VU2BZ>dF`bc-Sn8;M?qUL7a8YI$}gVZWNNY1FU`0jt0AI}mRsU8%!TQ331y2; zd!r}8rjNu@V|=PtRk9k7^{#}EmfDyg+e{)s@#lgBM?uwO3=6Ayb3lz-(g=N}QvC|5 zhqlqkNHi0YhItS0?b6SADW2*QsEm*iAtB7B3!Im51NAY#jy`D%oOi z+dLvBsSU4d-z=UqKXo4JT&+HhK}*qAI44d(T5BLDYLG^hl6)^sch2FL=Dm-4ZO)Z= zKu6TtF)$<-P9-FpXh`ypTCom>CQJCCRxJFfrX#dTP)ReXy)L3JNat0CkwsAPS4Tk2 zmrKcNsAQNRO)!~ecS5sx%hs%e-pZfBkI6HIN^ifOFK^9;8g94b=UTHI{Qy3u4a+h_ z;2iHZ>}%6ElL=_xT0SX~^)j?>!8b&*2*ZGJ{Fg|UIm|eY6xEs&k8q}u(m*&QieLCI zuYmAX9zfcXUDH0PA^0>qt*PSkuRCoh;4Nz&d`gf50rFe$dh+Q}tZ_@>$t1Z&8ljX5 z7ZYB0HhhqKcg#YgObILt@1^V54!G6ROSm{UNqui_80x z^g@tNx=}6(JWMQ^d)ep+i8yp`x6zyzNng`V2^l8u!4-|4ZsbUYy5^{x+kLD#U&1$> z+m#{7x5>&T?OD0ZYM z15CM9tDTKdw=m$ofCVZoJ-#CFmNluwjq1gowT%V}RX||{fxHIXJ7*X_3wGvUbeitD zb|;(j?WpqJZj*BwkRTL+#a|E$AlC@U1iBp=DMz)GOeNc*WLPMrXJ49=olo6IK{^}6 zT>c+`$?Y-T5vdHYO-dMOb2d>1hAG)$=-7q{oL!YjsOo= zDAQolLix{YHP$H7!*aW4I0ACJ_jk7TMn0kzCIZ6YH1O2O_q|APobc|0bZq&!L5;M+ zuC55crqj1~CiTXy01RBCfb(IDNG1Bi^ZAKJ5NSPb# zJ)@*q;0;0h6BkR1%cqt_gUw8eWRPzYJi0?noO{*g$cPCa9OwwXmtxdAn7Js$4nL?1 z`e254XRQLGArgD!F(P1eyW6Lm8)*KrTHo{VP48`YwSM01sYf#Phm^^2IQLeWMWb{G z**6@$V|@_%of66x_drKaawpBNc6NFs??F_Brn*Qq=%FB6VFujG)>AI zl;Pc~%(ZwwdpsY~EN`4Z!*JaPylpgV>T0}&%7BMtG~yY;NG0_35~tS+9ijHUW_ham z;Txs>gI{mE*dv?`;fP6&-!=&{sW90=cZij&h zADDOen>Qa4it*R&SyR2r_qS&$n5Lx;tiX`JhJW0FMdEdT2i767!+2`{FYi4PLovdr zo&=-%UJ^kd#sW#*o6Kz;nbmY-96`VK9#8JbqS{Rmp7aG#sv}wRcUv66>g1YdgEKUy z*c%S|_zIF+^S3&(7N%JudoV5l>B#JLe-!0I+xVvkzuu88Fcpub(#O5aXT-49w%a}K z(QSRHL`8A!AMKPGu2mVS#`WOe$FRhfT}7S~s|EgaVtulC^RQs3SgB@DBMe9N@Ce=@ zmhGrpBqj()gvz?}KVn(0x-V%7P1K@pJgO7x5z+<;H4I%Jr@hoyr+4EocVa{97ClQn z>cGt0jsMY!;iSOfJfbre(zizu!f$e()S1Nw{hp|qt51B#=XGXwmm%{~bL?if6BQHmY+WN1)EDGw=>(A!jJLxdy9UMVTj7i82xC z5k|a~DRSBAu^T;RM`Pw_%A3To#)fU_ymK6DW&LF&p*o``Bg9KEm4EhIJ}ZtzS$^$} zd21h1>usU4pkt4y-+sftieqzKAE$}78%xvMK{w0IX{W2X4}l^L{u)7rE_+*GqoM`D ziEjjBR+w!{e1j}Ov+K$hbQuirwy0hG;%(p6?FgsY3VY48dtRCgwF5dSk zmSnI`=JHdlpFy{#@WfN>WxZ|fZqdOO2(&mk&7`CyAp@PdXQWY_znjmFXDwah9z(^; zX_Atb{3KM*$6u4=v}7eM{>iWQ$6q7mw0I?dFLmS-mG}Wb7O9X={Xnr$^jeKVjFd37 zFZ}5Z6IiC9nR{ov5(Fbz!vwukQc|q4LEc-w3AFMIvU)G`QHd;civBsYC$jXZog*sNmzWc?xFPKTWlDOS zV%Y-U_O}mwz6|eQN_L#ALQgLL81MMyuO+hQ*>1?w4DU9~9u;akUY*FAnm!#&Jdp7k zk4VBYY3=7cEr~@)J1dC~5umMZspPYhpokV!Vwk{0GmxK3V*Q8VP$D0YJVJI8M^}VM z;|S5A!79z5nr*KhY!Av%6DoS0(uPTRdKXV}gG2|_kEXbMtV|+#PB+#} zAIR5qV`0#Fx8coDxRIag#!?K9jXb40JENV2fwEl%YnH z2t~uEwJ$|HQGH$U1Y4%T5u^xHW*hC@So@wv_zXqeuxqLV&=<)r#^YPg|U|i|M-|4~9>PNt&4%;hi?AXJBY{U4C9&DJwcb8`* zvo?m~cloSj)+PEwI9rvWcLDG=Jz>^Q@g5@WxH4${RNu?A^BWQ}mNz>@j4Iv2FQg@2DrJf~Jiw=Ky$w6b;J3YFK|7Hb1_?Jv~|T?qx+n%EkgIRc!`E2A!d* z4e@~M;k&`@lLri+P$%#){wx+bnP`ks#IN?mx-j@G5A4NKqCDVGD75(Ur+6~qX@YpN z;^_~tlxX@pxA>f1tVKJ=Edn><(-iRpm0j&1z@dGru#i7$d>>xii$z=d(#J;lc90g! z+0+?9t5RVxx})t26hmRKd*^6%A$T0iwPmoC(6XZH*?G^JHy=^nDj1IAi1nv@7nS;o zZe+QG$`McJ9z8`@)us(2?h#+di?3d$y?ssWF$nAZk>%fmt4HqQZ>O@C3_q;prZiAv z)mq*rjYT)Cf|yXAf*<<4I-2ZZY4PgNwS00KD>7WX!K2dIV8gOCJSUy4H27BW`WbAZ zq2M~7pTS<}urq_ue{QLmZ7#tlmlX}VTj20Q^HtUM9w?a+t!*6taSdmgEZ(s1ZJv?I zS~On&Ha_}8z8hn&d(9a77Vw{Pjpt^vNWejkSVP12SNX6$tc|H<8Z~N{i!bZL`gV8w9Q|CBTe zKwvfQ9j#u+7V~Bk_LZ^~Z(&=huMdlBf4m%@aDd-*>KKF#!|bU}n*A6RcX2BXi7@r0 zxB0lf7%#Tj{Pn)<1%vfXUfGvLyDqE9irEhLnBd0(D^;}6%56f5)~s31EAdKlu+kXo z)*wuwR!7Vv_hPIET9}K5HlpPqel7SlDMNKif1_-%1InnLoI|2! zdNP95^cO^%b~;^yy=PaX1;?icI|7xtanSW{dC%NShupm-X0|MtD$sTHaMcD-vrJOb z8)bS!#n|kkeS$sd(WhjGsifIqC~)|friJOe(!Jfu zj({>eQU=89+)HU?H0RHvp_&41*PKVDIYmm2ruF>@JeQ^LZUflxuobUkyrkh~6K9Ki zU<^`7NCtz1YCQjT0BawD!+0V4wy5~DI}s*h0dF^mwT(S6N5!cy$DOJV_ET>|^^FZgA9MamBFSEl+b|El z#dI5%yA%$oE_#zM8^p#L8V}^^AW-|l0N(5w7HZg9z!RQf(T10%@)w?giEPU+e8n>` znN|PFe|?6Hv8_p>O1sU|)(#+)9rQEe*Ct~f6Eu(aAB<8G4)V!^S(s%OtV_8$Q7}fL z1E3U+DWAWLzcZM%GHhtgiv~kgd8sv52Q!yp=8OErA*_&YNo+Bc%`&7;=5GyUKj4 z)qFNO8sRAhAacz-V!|Mm(*cF(6>I)@OlXsQ$y8blbWmmJQFrMh(B9OTbh416fQs4z zHjp+0LJlQD2CLg3cjWZDN?N5d^k3QtDW_M;+5eU!zEDgF{MTn$yem6TP^;AO2ibR! zPid_7r-J;IVK#avTUvL4nho&^wJA*0Wmkqp)}~lRN~AI@x;CX8>I+e57)?E*oVy|= zW<`c^Ihl;(lvKWK1Zy4gp-4|c;6g2=hZl`tV-31x+%}R8X?T|u5=c2YMN)=U5|H}W zD_kDQp6>M@&?5KgcjYo?e8QA4XJ>O!PaFIh3+j{_CVJ;jEw*51CME|!=@gp(#rbo4 zgklzX2?(m*7rFl^*8XYqFm16$H4>CMM-y<32^^<`Y$tOmnH1@*0+Af_F3hdu(ePg5 z`oE-x{H0N>tqbweJ~_ZkPMMm8isqp?59uBQX(nbZn$syZ>%%XA?aw zH6PRkB8kZNC<#*%poqqgl2%ZMW`p&j71tBV4oV&XzO*ZPcZpzgXf;+{PH$xpF|y@R z1E+~)IZbM6e<~giG@UpaD}$&*9#!O}67dllxYb>f>D`F(;&HDfX7=(ZWb{mM*`Jhl z37tsr{EnzqkYl$(_gJ9S=Bz92B%jF20j z;pmK7M(J{*VJF0fbqXHeO0jZxHUJgeFVOdd7V-gbNp@iegS!4BNU+7avDjP-(}NbP z3?(iGOCTy8lZa8i3UHHrbIAasPM54((%-1dg@i4-;PZ*i7kAd*ORHmq0eYwj2A&WC zR?9I`V9Ov_h+`^OB>!|=tT>W{*T1hXd4iHP9C@U&o@AfVDbGZEE0kQaPLvNX@KNX! zh@s+O3H5b|g|hT`d?6ikH{O(G2k?R^GC=jb%S%SHkk<2>V)2195ny3=1g%J~gB?uO zdqMK_WVKHd=wB40^lE2bHJS}Gb^SF2aB_DEY`3jmM4#6GY!wq;opv99a}GItO;au{zy=SxXy$E zv`rqe2yHg1ZG*V~c-WtQo6Wn9NBqfWv-xx5S%P8uY`$hZ%6xh@KQx}b+N@`^@b8Qg z)E+7y)~3~dNL{k)+9ba4Iplfa693^jHfXHvuwYjy#l5GW_n>DP?Ic#K&meI|Fro;W zkm$aOQBOMBN%ZYiJX|}3MxLY5E8iX?mbs^pQahT3VQ_pqs!TtLPkf$r){o|^pJ)Af z>j~^NQ=hi<`jv%_IMBk^PGk|`eclAN@Uwl@0Qf-yWx0S}1oGL`FGKi+iCBIuh+Z{`Sxi?W zsqPie^RP)+9L)^j*^}5-!?zcB{TF~sPY3V%0(&8>I#@KO=8!CHyGuXVK0v(jeA^39 zDzbO*iWgvB8uBBzOvdkleLQ|L8x-{ACs%-pPEC557fgniZnTA8o{Uw``}+!8zQ`PU z(+hSgCSWZ8a0-jSZ5Sue!gyXb1@8G3v-r&^P*B#N;o(zRGZ)=yN(7jOxT`GuCSfGU zD=DU_$wrcoHYG)Z9%Vx+9xX_rX=fa1cN3u9O?EG^Vrlj@F(KR=TZN3K3qc>2JZz4b zQQ96h4StDZ7^2azc0%yhKZcYz^OuJLO0EXTxH-Pe;g^D8iTP9h6<~4lLFCn!!D(Ip zSgjTrmT=6~9~xxYybRQnMCDS6GIbD?P^0=aIs>UTCCi2%yZE36jY49&5kBsIYCTMe zkZEP+yf8>djAEZBJKB@l!k(q}%)uw0Ijsz=wMZ~CX*-pWO|Utsop{PL*41!rE?+o} z^)Wmb%uA;+dq^EkM(%+hatQ8SsZcv^K$V)~ zbjC`&&P+C+*#&+0)D*6EQ{7-*tJ(OxC%j`6$^%FTgN2 z$@)-jyC37CLj4MHK|m2EMVPl5@W!*4JuvIG_%w1kPo2fm4I#_TdLG*hmL2^TJ zvAOeu_49&q=hxSpm$`)rSKaO)8YU~jn3T*OwiS=wFoDy8Q}z0BkCQbu*p2)PC(JBnBR}e7v3)-A zBO;ZhXA0o-e)Qw*uma9$ETvSRK~U9-z?OW4REbq$w(+k~3sf03WBjJas|RQEfpb~o zZhyZFsAYRmijr+r$BDO^88T3PWhub-cC4y7Me|zv z@ndsYgoWnO()0$n)5UAfo!<^tSae9xJhrr<476x>DDLhRLj#>V*T6rX$I?QV(WhF9 zlMi!aW1@D}Gu$_iSwoN1p%G)wrzjmr0ILWlU#)&KmB-9yQH_$Ry-=4hpEr;tT6Be} z!B|#R2H&CedvV{f?P5{<8|;scV)Iw zKBQLjb1$=|4gZ(`6w+fnZr4JTkPdHzI(RWRFT$ems|mdABK9WVGKbZ3VG(wu{C%`_ z(*2(PCYyZRc{BF9dts8!c_p_;rih=y$wz3Wk(~ZwRU@gJA^8-Sq~GKH<6eeQ@B9(% zvx{g)Kw!ePpcf${uR7Ax@I{iVYPn(m@5tB)^b?onV9D5xK1+7B{#ks0x?590#2&)l zu349Ug8hl+Zb2{D5U^vv0kwT!KVG^BYQ^Lm{MI5?U^-h>O>!fEzq%Ny{mXdaVp`a4 z=I0kPr=jWxJ}d{TkJUf$EjeKCnLqH0IV?TA%?}hsPFbYx8$-`O&g(5Z&_^?&Du>q?eY~{`H);R;K(NK%4Ks6BR28-xtMS}ZQ{+B zu!zy-O(2yRWuUY{ynKoNqdGL@=Eiq5ThkXa!ZbWnu*gw}!(@oVRA}m1HS+h=gKESg z2AN+mkhdsrd+-##W(k|G595uNvLQ|J6KurK4tK$bR+-O%}yBV-{+s@VXAxPn?he628Q8>r+D%*_-qG`;?FLF zo;BS>&1b!|5h7*-e`T_WWjS=0^JTE6oVm+SFJr3>=Z5lmudwEZiC^+}USV&Tiu@_- z*c2YK90fMJ!+S4>Rk_X`{{3>c(d4c}Ut1>gX)?2gw!2*|=BYvigDP-CL;3sFI7 z7*@4p!H8`r^8N6C@*RZcN~Jf8=C>8r*|yU_NIds{pcd9Z6}RJQuQEFG`ogO$mx(3N z5i36f%Q~dG{ z#63_zykojDGbVR2b{kDVJVJ6}x^+&};{wx-e(5G{GZ_jLyS7lE*cI)3p8DIVy%WxG@c>`?ah4}qRN0y(x_pg`7 zf(Kkdi2M&WFU!QU`J2aPJJ?>!qQc#H;8LP$8$3IqRt5SJB9HNo_J7`DYmQd*IM# zV8>v!6@9@2nb1EblUAC}lV&STW4h8b6r5%(_u`OEmfWcnrXC2MUx;Gp+!s3D*JcCRiG(`E3E=Yo5hLUL)lG8*JV^662@V0NFFP`kk zG9Um-SE_l#_)l-LIMXlx5FRt0;t$?L)Wgybc&`FB*)UP%Ulp*Xu2~t>SPG7zUX?rr z6ZZ*yLj7tW7^;p4mxi2q6eCKm)m>Fo;`3cJv1#5sB@r|<^`E*Y$+O6i?0yKM_6GtV ztpVHLO!D3USE78Y+UEn{kJvx}t5-fGD@ZUSWZ~=a%t%%XKHx*%Vl9(5;uB)zkR?b4 zgN@AsA`M}b#jvWUEJPfg`Whf;?<*{?fU2W@4iF_RMm(>{;)QRq3`5k1tKMeKqfG>Q z)q4Y*NbnDG=Jf}Je8;%Q@~LL3yL*|x_%^e3v?GiWEr!ua$m_vsFOlQV<$zcHogP zc9^$}&>3(iIN$O%mg7lN3QxSv{0!awa82TpU29`C+SCA>^RHm~R8u+$r3dzwRTy&G zcF*dIP)X3cM3b~Xx%C~^D~vXy3u6~qz3yyqu#JA|YJ$TyYCi8B7HOi>31sY;=bygA zS_IL4dT(Tzdt5vI+dFKQK7gmLhT;Ch3w-Ko)~0DwWChCx$Z9$6!@*9`7&L$=yYT}5 zYBko82l#>2ti#C8cB~Qpc2;;cYy^O3JMI7R{9psBWFv9!feuy+QIJXyZm~n?-7Xz3@v*kyf8CpSKq393;As9t3H z>m1+r9*c0@xlKJ@&|d3t=uR=}k$=RRy4Oa7szY8>0rA+ID%pfJ2<_YrLx+eHMr$rj z?EdTD(1)>cYp&!y4}qsnr+gJPo-u9o4OW+nsv@A`*vhEO;dC{ zh?vTdR_4Bj?6e;?wz$k~!B;RX>AM!3(gnn4RuJOmn!2Iq+0+5TsN!shoirg(M)(^a zFjLr$B%rRHMEmG?lvt7Xa9jTU2ka@s51;dEAF!pSnKwm=ZTZ{}S@T9EiHMJ&832}& z!RpiE+o>qN;X@YH_~*3RZ(?Cmb%Qd#8^ygJvJTCb;UmzL#10~gr$I#7VD)POGa!n0 z{Rr0D+ev)HM=Z0&XF!h3N{*A5g2T*(9t!ructA9PeEiNj)m^}Mf5g%ZNd>&_$82KH zV{ejBB<-vAkdnPX6Fy)l4(RqUC=JhDfe=m$MmgFB@v<~ws1zdNCk=eCSUO{YbT^AK^Y-f;CDzV|=u6GOo+KJ8N`o7BIkz~vGA;ip)0P5gpK zeuiM*y?n}NSUV81SQ zXRK|*kCBGm2ys|Zn!xu6L~4Z%AQ7LlcMSF0^X;Ew!^GW7RP|fU`K`}cl3x-&$9%z} zCJnv_HpRKx5*s-R3$P!IFFR4v>Xewc)blQ zw1I9bBBY0v;9RX5J>S6-Ho!cYGMT@orl65sL6(3rJ^XKtq?QC+<#5MUU(KwSjn)|+F4NdzlP(3e(@vyJh#BQU+ z+rLdkakNy<1Vw9ZwfLhScxMmUf1P^wU)9u-y_6)p9AWCs8+^xCEUaNH=6~Q|MZgX0 zL(U))veWs^uUI3)J=|pSH5=X{=RDQfOsho|#1VwiQ*kKv#eICq*Q{;*P6F;o6M>DY z9yakGDf#|6%Fb((^F(s9(cv2T#L;9w3XoAXAdhQEyiOcpaI|y~C0GQ;I0|LMUJN4T}$Sod#dDRD(MeUjBx4 z)0?)RA-qOfdE0MUT%(8R-SX?iYN?>2@iS^zgWiRXZ&{2!WoYbmZF>#+yF$%4Ksw3d z)_}ChS81q_utJ_1dr_L;#!A(N7S_05`N!X3)AdNc?>pA2fujtq+M!Y=9KBPaRzkhFZ6S@56HE2k9N@)%zX2 z)l5EP6GGzJMDYuoSRZ{7kN%#O>5~fYe$O5n^lka=LdDiS|dLnaNZiNxI|5sIs}Z`-B=#!vdy~7M9EkykcwwqBYlWFWOef z!s=ao=vJ1XZ^K{T%9=O#9;IRwvnWO!aDWPhU6;n}Kz?v5i_*8^_qQTkqmYMgV{aM$ zy3D`X#+K-x=ds(_!208`S|KIP5e5sKzuIg*U%4HArPD2WzaQDOuDN@);YfyeEk2lR z(mx-jYNtw~+DqyvbO|D# z(->7@Yo}2k%~$=z+FO!gXmI-s2q}TL*BJok@o1Hw_=&X*3jrMNh_~q+A=vz_*-;6# z(dB7yJ?(&XeMvJuXa`I6JN2-dzq5mNwDd<|-ulEmI0he7!Ez;%|FHw1bbG^jP!W4N z`Vba%sJ!L`JzDlK=x9rJeHEy&0#+kqa8~6Z)qpZ*6|shmi+6z6AQNiJ7*J z=(h6rQ5^UR}oueLnScF?FF{xUZTq28ur773h=!hUY}^s zEPWJ7N?dH`N%yVj7fW|hjL&^A$1}y~?1mG8&=MLWHNygQ4?W_(xYfOLJWfDCU-}#! zAMt>T;&5yvd?J8|x3S1;*wz?4CJXDTO+5_qq+{9ihCohmr*L4OMowC0^#UMVeHG%g z6txTH1Lp13A*mXdJ$T3N-5SUy4|GNF~%Uyocdp z0^ulEU#jBOMX(+0FJ`v-56~CDciVJAu|m!D@qdb0c=iHh0uH%IRfqfz%@#3>gs|54 zkx0SYC1R~@^#B6`2sJB85y}&a|5Tw-?RZ<^qi=#Sm94;mYq98Q@ ztaqwX>ncHdlHEsJ66#`}_!)$nIs z2Y%RZy(|An4(-dPNy>&C+i2GvVJj-5n9F`zbzyweP8Qh+_gT})T!M3IqxH?n{N0_b zjU5*yk%27?jMz_S&fAHS&}aR&bs)UaHLAM)A-}v63uN;H-eDIDW7!nI3zYH6dV&wz z#cbhGltj6RCu(|)xC9{M{^4)!g0XBq-?EGKGrvLW3hihNtLi?>Lw2*4&rU&1vx4!s ztuIxII}|W8YIT271?)h~Z9}v#Hh@L{7X(5IeA}p-P*>n_^r-_T5W=oPy$*xqZq~G3 z#&DdDmrn6qR`u)|zGXLyZTJjfJj_ICHTbF!lE<0>mG=R=Kt`idswJt27zZF-pC}2!C+PEcjNEuVKy7_3s51&c>p#xB6sFC z(wzZ^r0=Tu$vrR_FF4J^OIfS%Hh-h3;MrI}pp{w}A%)yjs=e;=v8AkGqa0!u*mBVI zHi|nS8F0HBUs1|hcUhYRW7y`jR-|r)O)c){`M%CctenxUVLpTrfirMqC(5-d+5ZBB zg8e)E#xIv*e+@6O3K)P*nzpGW5^O$q^Y`U^qGTA|Hzm1W7l^1V zt#?inTm}xZz_t$(P}n9~LsQ()hokYy6lBG%FzTiw{6HDbOc;5D|5e7CXFenjO2_>W z=Dd{}g~gZc@)x4b_mb_&&Sq0VpiGc4X4{L@m{dLKcmlG2CGWqNg}FK+M{Z92 zU?&bP+h(Tn2pOD_R0FpFwR!8p>qHz?M4h6s%V`pW(A3;F`jxlFqcSwc^TUtm1p)XR zzG9GyiJW>0M$AaF=Uw!Sc{5_NNZ-s!M#Q2gHC1m?GK0|v!4wmMgCXJF%3aV+=WGoM z(l`f7I^6A|p+!SQRIvC;wXeJf^)zzvR{L0sCehov5&FQX7AT$wiFZDJA8XkIH?)D^ z_Ro`nB#a3eI9l)CZksu;m@0sgRuc?i5DXMYk-NABc~6mu(_!uvap z5$dU!zcdY}+{)>~iesc#A*q7mC$JF}azcMKF>8n`L?ea-#B@{lTl@wXy+bhSWgM3k zdjxaNdG7%8jtm3ZU|JD?abVId*CRoX;7-(HT3~eDKZNrcQcUhLBhr2D5{nO(qSBP> zIyt4XEahJ+xHRRaE@2wZ9sNN+LzADH&rsXSCD2NbQJ$f#;x>;lUkIW{ai$pMZ~P_{ zqY`H@U~x;!7+J-jeeVS{JlzsQSCwSP$Vp4eQkQ7@)&O4rC`)MaVM73{IuC-#5Ehl{ z2uuwq0J5J4|IC`WGQkBR1HxN1hzmzVML0lCT=csWnchPXpj*w_nu&J68SwZ0Tgftl zE7EjR4`q60(Jg!y#LC2Y7BwWHYn69``SdFFIX1i_iq5TO;vST^Md8FRBv--P7SAHR zX=|efC=#b}o9?Xl9-o?OkIS42_RZu)KeKTE%;d6E7RN9C%_ee$$&u$ z>rfY+p4GJEyiuv=ml3Q4dtUTSy-s^?`iF4SK^Qd-9pVEIvaC@CrH@frNbAC|75+)@ zne&E#rb+KROiAyW^B05b;kw9MKtr_V;45tQN5Hnt?3qA`1Hv$N?DGDpdovS znRqnA7JFS87RG%C5v6n-O-yqaTfJv7k&rnAnoSZhohL&Zpfp@?d@Fce&Ip6KF9}Bz zF8>ICQ;$)+c^I}>XGhDyv^g&e$82C9R+dQ_lu1j6o-%&3f^mNb`rjwd!j?)a^vEG- z6sSru7CIM+2(cf-j>7DSat~YF1-%hQn<{OJ6qK8QmcBx0V~hNtFmwLP;u%}#2ieT| zGw21-a;D^-FXM<$cb6Q z)jDBlusJ`5${83Ldp&Vx^x_t>CuM`F@qn(Y3o!GmXMw*Lr%U{- z5RDKctXq-!G;+`+xg3BV9N2*7nLGod@nclqB(*LhvX+J)0!(qy1Y3?vO!OsktkN?x zS?-A|uT196G{-@hV3oQ2vnxbw%hg?jV3K!xMc7p;kj+C~g|e zHywgmQDWSC2u7@qK|J6vLJ!Uzz+vbty6#6)QA8znHr=1fCm)7vUb&PP9A=-I6ME8= zrHPR8%~N>qBM2OG*5yl&Aeypqf4=Dm&YYpqsvW>XBvOOx@+(JJKKpyJ5I(bnn#?C0 zW!(+K_VaZ|S)%E;Ewsd$bBA9!ibY}dXukLu90)`Ap|ZxHL?oT1zh`{=`~OPNUg8+G~N7TsE5jeGGvKgD>;x$62^NvXF}1d#f?6YcJs#qiL8NA&MLg zz#Vmfo2TGo{`GOz(flb^ielsb=yEss@?j@o4$Ig~#ayZ2o|9~b;VR<~ zPqG$IwFlvGi-0-rCx+&d;JZ)Lf@hwdWD0P?ZN6JkEUE%i>(qzfy7HBL=S*VD z7WR;=`zL`*Ti!j>8+2!7zvW;cBJDEWb7mW$McP+ zS!~@NGwR`FWIvp0K2Tg7Y0yvS_0C{;R8Hq@&#&Bv;=B?T`~BfFHlcNK z)b=g@XqS1I4~{5vS_$s>dw?&txxt`zW_z4LxRw8K7Tbj5`5$Ll)2H{sXxhpL-4w#D zZYHj^EI5f2?=2#V!D+m09=;!4l{Lv6NrqL(FZ@N-YTXZb%sJM`ei5~qhh0ZC2hGd= zM9o0QO~+Qm?n53GZ|_y`Dd$+ED+uqq=)DqOQPD}{`FYMcq^za0Exc^WgE1HWK7nY-MC&x#HS-pc?gpBsSpUwV7*Xhr2b1v+Lz z_~Wt?dz$EUA}=^*QXZX@l%&UL8fB@LNxf%G(uLl0mm13>(45$PqVbMwYCMV+H-yf{ zAso*tC;77TtW9*h!P^c+_aitOM5CPzLEU&i>;@WjHIYV=^~gWG%y}B)JM@dH2Q^Lp|udM_&qrMzsJsJmVsZ zZXECD91g}D?wMi8-zVS1Z9v8qU|GK6B73&(Iyj3H9dHBwt)ZmCkuCtybC#9L4+rs z-9h58b{NtKET0V>Nz1K``a*OAYC&{>Gu#`i5PyqW(S4DKNo)z&_yC6;rf&dIk+r1} zjWH7-rDlg8spyeIDH+nt=5vI{-a`wamW7d8hUDC&7>MwCcuV(QrUW$~CK9={{2yRR z^_b0Xmk8WE{p1$7evPy;8UYsm%_SC|8DH14{c~Yv+=#yrNkD~6H_(&;YQy3z&WYG* zcZFUq#W5Qwur7s#fHUwpF2Z4t_oN2WxZ3*O6YON;Q!lfY9seI)Zvr3V_5F{}Oh!zWxla;B$zNs1`)BV zYD-J1LW|B2TP93`F{Y~2?V>HMs+P9es-x0noefp?rcm0E1~xd+^U#U$z=8+X*nf6YWKq zAdcGu2Y{PYeg+Ay6#wgh{ox>k?qE+H zZ+(}TGAae=sh9_fF+dCUR%+dNgju{7A|1x415}fZ|{gt&osg z0zyq`=YQf>4c|R4s=nsa4|w+r`q6PsP!Von>lb2$q{90%%K zRN+3Y<4?S9=M(+cKePl2vQ54s$Nt`S(qFaL0${k!0Rk>GV*!$VaCC%x+APH+7qcjOptqj z3i8DRkPU*M@YT3CCcm{!Om$I9rP8?!5EDFe4wmy)Q`fGXBG|f{9}e01Hx;~`r;PyJ zgf+>pA?YDr#Jz9oonF-N@hM*CioSQRS(l*rF~OVxT^y|(u4cmLX47a zdLf0_v5bM4U|n>t6HEFCgq~S+ML!Z_`PUWwL{~$#n9EvUshPAs=$G7OHcb|(tQD@* zL0%WZUz~_!fb-qnXRnS_{5L}o= z)j6#tbK0mJ-5`Z}hth^tS29qos^G`2>Koc!!&<#?Et!M&KzjVLZn zuj^YU44xqvmRVrIUWUANH}#!H4y*m}+B88$ zWu)2LT%E<-Ta zH6RJ-P2ekTLGRz;EI)KhZ`LNEEgp4CZ{(~>AKv%DfXr|Ts779wEMPiB7})F*NqA(n zQzvhM85v?geJ7eNf|z<>rpD3vx-<%M`eW|Y2bC6A=}#FxCB-_(n9kMf;q(tao>KUv z+xmu$gXqshAisM<9Cthi@RjKOUMK$cZG9hCCYteo0zI|p_}JPm)tyhAcE!=`jDI)#lf;b+b{?A2Osq{tU1N1@W@mQ(I2btR)9A&~eFSw&` zW*oQTR*i3s`84n+SRZk&DM*{UKl(UdeMjF`GwKii-5q^Hv%-kT07UjL6C5v}Y{WxS5h2{m_ z5=gxE8-MezzFot8zlo-5t>rqsN}zpzl>dQ-TBYq*7&uU6LP2@yQjr-p5dx~p<&^p5 zqrCY&7%V)&N8i&MFwva%^vxO{{^F5(Meea8xArLi0)%-l6THn23lPZPpIupj)NiAeavbtd3pd~5pH}N%(sZB5 zd)DYPI>av))hK-?vM63cwKP2>YNkaN22D6U&~(ROjdlQRl-&dguaWk$yz33SYpdY1l_GEf?Vv{6s-~RzZg; zH(10whOp7$_hzEEm=^N2Eh|GhMr5eD`)7a6yVPN(#$6y;!0rNC|Cd1YSdw*K4fVSd=acI&izb=#x9hNs zUezlw7}<1yVT6R`xk$DSJN^%qhKssC+8-RsiQ;yTohH{8E4VR~wbqPU!E-`cGfnym zK0cIn(G-5cSB0{Xb^E;rcC&98SJ!1dG+*4{nRQvW$P+iJYetgN(673|7u01bt^ts_ z5ov92aG1b^6f>?4=YhBi94g`btI_N7lW_4$y>il76P<6!%OQ{Z?@$-(CSS&^Ck?Sm zXcmR^J^?cvNT)r6klq*kAz0a^O}GF1{Q|P^ZaVgqW@9FQQ^(qB@;C7VI@Y@J z^Y8zcr0dQnFhAJCBf{7$&7fs`VHn%0zQZ%aS^Wm_;K`^GDghi1lE4q}n$F`B!&#he zHO3Vzv<+Vp&gL>=YQB_20@LT7&znZD?y**}LOp?Q0bcS?fDAtOOf`Qof;lu%hq*rj zXw6CI@sX^nhNTPP!8jrVS|`j2VdUMq!gB|KZvg}LElxFmIg+(i&*eKJ*(gI^H(WkI zdv*4#7>32=H@tc_-*m-mTgP1W!6@zJbxM04EmAf27hy^pVqW@$|tPNJ2Y>~yedgQl=< zn;_JPVK~CCN3&;P4K*@`B`CX;+-%LFNR9ifv}kd}4!$IYrG;~n?;-w=?;hi8j)s z3n0Sa!Mj|9b##~0$qGf6(IPCpa^@N3bCa)H&t9U!}1wT=rb<eQ)r5}D#N)I4b_3R2vu!Mo zYsiuiDk!%hYx(?l5UXeVm>(5rwDmYrjQ61PL zqhcfyPP->Kv|%fykbVG00phOSMp03|QjxfhDnBvwRt?UBg`Y4!r4ei1qCWvg)znj} zu>?U8tZR^{;rge1Ya`Y@TxfxaYT;S05zEZ~)hX}9un<}N>O@zTO{BUogR$YRjdHu# zEL4(8pxY@9G0`j#xN0XTSvt-{GW;%n%3p2_UcH0wXw1IQENscA#Ia`S%Yh`%UY`|W z?fq#@fK)nvv=GF2CegEI*+OIi(OGcYbJ-Mt;OtGdv_%?zIF5DF%x<~D$Qo#l&*ZU2 z)=~4+WS(neuhx&BN{#N_pkUcUet#FY;8jMJ&}-mbwWr#``>nzBZ&8qC9r zEHj25W+_6VsS1<_up zsbPhi2r{W(r4W%W-J-U8u6eHB_(&d*e+&0o>|m+z z#-SLv`rK~*STh!vQQRK{PDBE&iOAx~(gu>{t^<%v5v~!L4s!`wSn{Dbadj3=|M+1L?cie5jexiX@P=HUO$3e`(7*$CXGjwTdQbcYsBvJ3f3C=( z4Huou1_v^E4{@!t&r^5i*4Bx81F#Jsuiq)sOU=Qj&ve7xN#EKE;frQS2(f`1yT-vNN>Q2^yk_WOXLXC;OrUQCq`d<>|f$ zADKb3Q*9S&ZrMg2W@fE=1@Tty%oJ1#oQ+1mG1PQspv@9lw-5$0%v;0jfHMB1L#A@- z5iVnC%{eYU)yxv&CQTre=n0lJ<{^+ayc^7WKzZ`vXZc1mYhl`qT@@{Fz)F%-dJhXX z^>Q06;5XLGhsN<+X2ERZTd)jud;Vk#mcn*Y!=&aXCLe-;C9H}1d%mj$YaabIeFB7Z z1qwhn$irFD}49pz>7ZB@n|IFLBVaCU=qPGDHw9wNYeu@l1 z8aeP@J6bS+ga?IM;R_7_5J)UWZiPEv1#|OaRBFs?NAQl)xUtl5op<>AZ6HEbJ;e{U zVf_nj;FPe+0-E8D(Co=K1KIL@(!f{By>DRbNZ|YEDPRc?4>&ii%%49)^$mJkQ2Zr% z;Nt&?BE10=0D=jGB8qh2bK9~8xc0HQ-!Gcdfso8L6h!ds8zXvbD)5dQW;J2pmh?iBCa9vkorr?|5{8?X826#t_=>)S|k8f$TVHEfp3d36Wo)^t0--AQa;{l=%D zWX~tz_^SJ=Hto)|@U2Zw@sY{Qs7XAm6E0`0;K`lXSWWlKoOfc&HMhI)b}8&d&GWzVcT=!MoAK+GD=AE`)^zxl z-|q}!?EEW7aJH{C{eR`*UD*{)A!aAK}CeR5>oNhFh~LM7C)v>7qEibAOrF3938hRipD@?hfXu8xrApTSP! zb~#F^;J*+*M3U|+k;kuK*|w=G)3Mk9_o?;JEjoR{XS&6KWAKFrln_3I6xA$0n$A*P z3(KJyS&xkC$eb!lQ3UUVfoF>#eaCZn5-Wc6HO6u+WxvWrd=w>7npB z7XlOfd@SOx^n}nnd;>4SuVTXRYDP?`|gRpgW&SncNF_QZHuK zRD8&X^UrmvliVyg{-8Q4Bi7M9;>rI8nv+24TehBO+E~2-W0fk14b#?x#EvzPD-go3O!SkE=@Wy?SkJZK z-4%+~y76Z84(Afff=BgaVXl=M@b_%2UE6d~!>LkHgY0u3SNe;d|DrJP`qT@Io4kwv zV`Clb&a10YJ?ZbqQ?ghZyxh@C1OO{3hL!y<2*3>J;G7At&Fe$3H815$vshzScjT16 z`>uB5g^JQuili`mwBmuyQb#{{6fC}LLJSKq0V3yCI z5bzm^?VKnUM9N_Kww;>gZlyz1+UGXFVjcEY$tT>YDrcO}oq=|!PZ%WXo;>A9FdQ{% ziS-<#BLa9wrd94EQCnZ7wm;>!F_ApqY`xG(t-^)kk>1dtwnPnR<`yTur@y|_8R{<1 zRTcHa1qf01a@dc0LtVj)Z3*o8>(FShZGZs)p9=znqeujKx{B%niIB+sD*+n}o^;ag zY+G7Iu_@@HXeabkDmhhD9<2Ll3hs~O`3BS!-X){k$dKX;tXhR#Aq-SR9KuuAd3<&b>kr2ihjLhxR^^j}WOGl>$|SgPm8Xy%Xj>EO9VAeHv=e7` z=2iRo8+IHK4CEdAu!*`!SyZ3Cgs<(xy6AIyilZ)cPF~W9`}?qF#_yArjig6@$V#r- zsL&D@H}_@fZ5vWc*qkXEsOOO%ivW?k5o1DH{=u-Zrvj~Ad{JMPq#G#St`+lreOXK6 zjUNQ!_e9M$^Pu|ks2KBV7obHIpz=qU$qnA zjk>F`(#-ZMij`<&4{DMgu&ySeik-6rFb~g+;LHjx{D&nu>BegdUN4U|??w0cgA)>V z+#p)w-*UxRDE*?5tHCSaEn>c6rtJo#56@dxS_w|LGo7Bt9L+6I5dcG}-D^;uG&038 z$ep`2qK-x=eEd_negOML^XFzR4`7|tZ*XHi(PVS`@QJF2$ES;t#`F|+VD&H7_yE_c-TNTvvVcRZ)xL%E}X;! zQ5cJn7)y^fV(f@fD~D`@<;S~I&Hqg2TL-cyEL9owwqp7t?I^qB$6Jd!ZDNNDMo}Zr z=b3|8?x?@d0(d%uKGx-bn(9IYlr=$VN|0>6sK0VruzvCqN8aK{$ARD)*wjA)?7NBF zKZrGt+5H6+EV#PkwEEoYG(XPL_>{rXaXfV}Gj(A9+o~h+|FkM}Sc}uCUzTZn!C=-W zb1V2Y(To56J%AZ+~uvW|(ZQvL^FzLpO_ zC)W#u)b< zvaPt@Fia~C{f(Q3v&Ol{yApU)rV0#H*60ur1pzaPXg;rn<~4Ag_R{Vqb(G~#o<_@A zv95O7D!M(NsH5FfK7TlSPSdFlzc!qiG`;HZdLvk3+OaOw!sIDI98>5BmAq$>poI#D z6Ak5oH=tk9UJ@HEk1HXr)Tg;)1RLJ;8a_UlS;1K2gXK1&(nFKEe*|l7f2)f3Q z;DpKi<;R#gzL@I%5pt+bNM{B!YS7B>nF)SpGdgVi@iCU@NKQ^)7tNB|6hnlb2? zy9g3{c}}!Cc&P1h+JGLH#dAPe@T4t=@Gi^6Db$Om0HX{%&(Wi5pUJ5&Ij6<#xMe?} z$^i2%+eg39ZdWQzM528Y%~iDKTc!yW?P_Hm8bp<_#_;OAeMYApDo!3OHxt$GeqQua z_SIX~fU=`3?(@C6hI)(ncJW*fVAm|sIq75u_37f%A{0my!@V7hc6n%n$~}2 zzaR~AtPlw=8L&N)C!gaxN3lLV$NvfXt_T2B#b9 zM^!bjfEGdB5_r}V%+ho%>PLTZ^BvXHo`fW#0Ori1{d~z2EQ`H?f@nX*L)xJzKKLnY zpAJ@Y*HbKBSCB-*8(PTMJ;gHmee#aTNn9$9hE=%O#nj3s;-Go+BQC)PdV7azQGMGp z$c*T7wIYJ`Hr|KoJX!S7$~%l^u`P<-0541DZHShQkBeJT{#YAtV2N40}Pd z$;byh&AP-y)m31wtuN~q=SbJ+7W1P|qrCQU9`y{%N^V3KscGU=${FCXc%)mkxj|rC zBT4KHaN1}ga1)>9^Pgean$B_jyJuLFW<6?~0lEP78K}?#tw^RFMt9)G@$j*%WxXT_ zZ100AfY$)+?%m~f-g_*2R~O%w>fAeyUmnZaMNFi+X!32j&RdLQ@9289q0i^W@^8nn z&aFyoKOeg$W^}CrKeyt;Y$+lSwLPYqtwN(3`=6N^GbS@sWB#!aGc~ zo@GWj2Bum*ep>LjuK_1{#;4o4BM>kdH!uM;9m+=82_w$#wP8-Q$p-^Z;FQb+9nuL* zN)#|5k~^4*7LSGy+zS?n`mljmLyn7ZUC<&NK%b+)Zb+-H+IvRh0ydFEH(IYbl?6g7 zb)rICTm%EfO5$_pDNvg!ehIWlDhd`1wH9uP-bW=R#a#fy4Lk{O9D3AFhC3>MIsPol z?&>}h0+mh~sha3=ZZp&%?&LzZg;@3geMp7bW0-3VT!NMW0%a_&mX9xhbApBMpa?-x zc!B~lS#a|l*huu+qOjaaHX1yl2n66!&MkM>7es;3SI+SQc*>01>e?t=<0J3G81SEI z52{=f#Zda{=ZeXM3of80i?cN@wctM8&t?L{qx}%)T~UrEG#OA|6eu)SDjNYN9C)f1 zeVV-i!JMZV{C|P{B7>1{e2z73J~TMUl;S}n7cb*$u86f|L>w^{Ts~Dk$0liB$>dK> zU@1|;(+J#PfNge?w&Zl=?@eGmD8#tum0s=RLY@X_D~tz2`x?sriH-Z za|;1NIZ%?*4MC|pPUvae^9Y{cy1w+%LzM#DWn(obdpmM&^PZVn>8-T#gO|Tmh<(na z-}&A`Xwmjf=T{10WaK&slZD-9Ff1y^aEONmPHvgVV%g0cR0~}z9nX$-@j(+=V!y5i zffU<+CGz=zwvJ-vW_ut zKg6pzm9DMOkGB$m>4S99vXlTRojk+h|63N3>)b)+qWI-({-jiUv*DyJ)d zdlECT#~eXGo+T3J-%euYkmJ=i`He{|Reg?Io`=0%Q7j+%JkE6n4&d{ihpM;smrxAzcBA$&~9^YeKB z7uZZq{ak+V1=v`0<$)Ji56Kc7E0B*tj_%J>Co`9!aep9lfDOlL*4RF%5H_Cu_~FSg ze*8F}UzyChv~=bRDoe}^?8iLJz)i7L7!W+-T2(RCOT&C#It7PnOZs6nNnktA>>-VoBrbHj$L8O!DGpT*9cH~b^WsMru3IS$J5EMO*yS}367XI>7)+yod zJkc3jW`KkXBkHlFgWbFWn9!qCH7>yOzo)YCZNpGd@xf9l|4I8+-092=yb^@;Wx@%r zStIJj$qn4|BF+!;`|(ZqjT?-D_=Js${Ma(l1%L-M$mL7tK!QZ$&4DBGw9Yc7x@QEMIkbI66tnr{}3F z*z*7Y1k!6ovM)|joK*?vw)W$vrn5#(>QXZku>;97!OkHU5!7FLpQZ`o zdtR{d=pq)E@C5Ra`3R&&)fE|3- z3^1l&d-Jn1Sfkc<{X^WmK^f6+#le%nJzkRtg;2sI%w+NHo#X?}JrM--D3%2p&qtyr z;7geCpeCPtC!abK`-H7FzH}B8IYV;zhFPph;(6$wgH6c0nhV$*fd6%R1m?U}lBkUS z#k_hZON#ytm;ujKJY-eMW9_`>EEZSyGbB?BV`j1Tns0h5EsV()Ei|u$P8goYa0?6e z3-JIYXcPxqY!N&At#}@o#m1;V-GKZ4_g0W3bv0A??N^L5?$c7)Cj-`d3nJh_q=r zI!C80cLfoKE`5CD?28bkVCMya2_h9t2#`z^^#t-4-nY0YTS$>1aGcPQmJ{jxx&X5> zrrH5}o*4CXW1u^S}qs8{WEARs{5Tr7EYM&M|sXb~LUN8#2PD z4@D7cl-wHRUy}NUGh5n>C0F=Qh=r^aJExx4ZcNKvVRW|ky6o^)k~_@qY(`&T`e+C1 zS%Gmep|`{Ai%_9;VRm#Nq*vgZ0&h-?wB=aYFoP0KNjUG)RprFYb500Mt@>K+yg|M3 zO42TP78m#S@fS6~N!v%O1-U`}B9&qvh!Ck!bXi(E-i#s!5#A88Vi>)6q2Je$6A|J7 zDi6fAr7FQ|%hsV_;APP{^veRXkC+<(;pE;}=kju;_-AZp6l5AUwomOa=M5YpUUsY+zzxwIO7t z*4q=dr-3>UfnWoQk5^Si%^;h`0sO)Yb1ZT!8eSi!q24|wZ{%klyDkt>4ztw?x)%tN zz%IZu-cVr`a(FM#WTQ95TyBk4ms?{H#dWeBqKl5SsENo8tU$Fj}as2502T4&;W zN?5Gx7`-3xHgKQW4`EJQ;4N;0>a5tzN?8Z6If_nngND)gLoI?OdWtp0a=Z> z2?v-o{IHuffv2K_kXZ&s`68p-vVpd=d3)(Ak{cJeXGE!r>*1AhMTl2l{v~O^zT|`G zJVM>Qx)<9#G{oDNvc|5!ScnPmFIM0g77NFD6f(P@>>v?OUzaIJ%oxH{uS;9t&Zw&@ zilCA0t3J?L4zvy;UD|R&eZp(ki7y2q+USC|w&?1D+dvmE7~4Y5GK}`9mHnAv5^Hld=2Hq z4j8yfLS$rE3wb9;x-dz>q97yTlL280H)lt|b6W`9H|`M%GO#%-+5f-{NQ<9XZ;p+6 zfk&fr2Eb690@m@4*99iv)d-^%`!-?R|1(vbjW&N2VOn(QF2j%H?t*1LI^!Jtkwues|Jdl1O`c$V7gW?D;p&Fab-fT6N+>b z)NM1PR89lRA|iUz5@)zK+8a~Vt8tW5kLFDvR+ax6{t_#6shpRnkwpVrRP9qc&)`{C zmD$GR{Hf$zqVqUjW4$vBg##lkh#XFvf!#!H*vi6rp7F)cATfN5y%NGCCuHjqhDC<$ zbC4yK&{e@M0Q!sn7>s7(A}&OyQ!p37G7_ui-4?R?`c!nsL`_4pY38FAf-Vxj!d)96 zD!V~jm24QNOexQGWK62aHmj^ERRs2EM7}8z@I?p74nr%~`x-i#3X2~Xy#+4|XfX6c z&0scV7f>C=!i5r`0848RJcubm7^MABB*7zEY=gh9itI%AkjaiF5NNe~-smYt>_$sf zR#zH;M5&Z+(*vJo{HWY>EGlWqR3H`A(g@5(I+Q(t6ln-?iDV{xxNV`v8}B*4Hf?Vh|EH=5lp8&*9%@<1bJ z@=h|)G8%zy`|lDI=nsGehr!&AmAgUqBi3FG){YaLBUGgj^3W4#2&K}_C|KJUd_)js zs8!N+lCKFq6rz&`Kw`nHfX40|)Xfn7JbRsukTo$a)98dGiFnf|iuy}i`gcSFqr6$9 zpiad|k4(m5lGQP-Vots{i@0%7wX-*XN-eA)K9~{Gi#C~w1Zfnc)J1O#CYa#@Wi=s) z&>59~6^W8_v<2yg9LGg#+JV{E10gwqb?CX-Pv<}w6cco<*=BO}nS3xA$_nh;r;`q5 zujgk#8F~BX+s6}%G7{{mo;zU&V71$5kNb?Zjtcp~N5pVBA45hlot;BHF65HRO3*G1 zxKuWcARsPaO)N;uN|Jn_NJ=nNS)1bXaJ;#q(QRffA69=lXvL zr+oSY!inFj5RSj%KA-1h2@TIegD*T0CCR;^(vfz-$)5b-GQPvhy4L%uBLJk827xBw zOz^mTD~g9MW^WAm7`rzSm_ADWZWtc3s^H5NHc9Go>U;Fha!1&bl(7DsOGdofFwTB$4uex0f{;8a(m!AUg~3gG%sJ~M|~_s zb7e5E^AhevCi8YLu`aH4YGVKP48i_|U42(900(I1fXjM&V14--FAx@hcbn%BWS9H` zPpJ^|9r~)A)DpqJxBCi?2eqWfUZ6|_)6m?<^Wr2}cp zKIE}b9{gs|FBXba(k2xFUF12*Jk=mA*jGo)^CY~RB=;t~RkAKnCboyEXXL0;j!N2O@_y z0q1!PZTSCC8nVDR-(k*`Hg~X!#S_ffnu0P4n1E4IU}J$K=C&jH_iC#v?E;I~S8b>H{rzCRQ86A0gg#orvZ7gS~nj4E&!n^Z+a z&SbByTa+C!6_c z=~awspk8v72((KQ#M6QzT&e0sV4%r+KpjtEl9rd67oz(_EMrs;JAEek^7rRJS|#`- zZK?1qH<#iG39sQNeS`Rsd{2TA5=7FL{MfV~=UAXnYol_u@Iu_xt}F0bV+uZ;r*_mw zgQG!va5XBkLd@HFUC*dHwHYt zj3-d*a{OQlh0qjQK}key5U%W!?`aSmpe9M26dfk%<73}n1a=%6&oMMRTJ1gq*O=Hp zQk`gtv|(c(5~M)~go)k%G5M4PCJSQ(Y5_YE6vni&*36EFSpsDtP0v)2*9cOCJO}B_ zWlBeXoKFRsdWR)~4+&@ofxf~imj~PFmtKX%PkPA?fe@7=8xRuR-MR3;v^C6x($s4d z1>*`TWo8A4&>YcN2FX3;Xw1qwz;xh60+Kihgu51~(T0y>Af0Qa(k(Roa?!ziot6t~ z={7_c>FiDYP;FE%8e)Ema3$G~VX4B)eE zcG~tojj)7^-&3P~wEUFH8G)ZvER13b6AJ>fL>-QZY+XcNWO5ZyP8xy9)O*xu#eau; zj}=LF_{AF{`Ib=EF@T4b0>3^B%2E_Y56jJg@#eu%rb9C?3 zI@B%R`c)S1nuu1$dhXIBR(H&eid?u@jFVJqB}SrXKS1#%gb`&bhpEE`!bzmUXT<7& zB{&EKw44BSBfO!Ck&w#9A{#-j^0&eV?2$I0B4Nj*sJ{5lS8?;}WIulHRn}cyhnrR~ zqq-jNz5=(+uJGqpunb+hyEn1M9_hqCUcuhb+{xb3hqLYKs9r;a(;e{IXsm8_RqS96WvddI>~y~R@F zS|vaf-bz@Ssq?`@BWMZ-&Jcp$ox$6`&4!FW8jq=x3+AE&2ZPnu_m7+mufRPPjC3rB z97p~?(H98bkiq3ETTzM>XG37*qcD8D#L5>@8|0acT2u~}D=P_{m)r7-Z^N>|9Htn4 z#p4$w1#7Q1^rSV@be88)tt5WZs!2PUB>GY*f6{^Y0HU0A_remz(UqKv`zF@aAxA33 zyhKbWGPQHqNLHhbLIy=N1JChf(fVTZWFd@wAi+Dth@?un7;-dFYs2FoZ-~bXJPzio z-(hn!=d9ecip`8kn}^D@ST|8YEO=2uC%$17d(j0;`;AwqOZlyZrvA_1)(#Q^#2a}D zWJ<6RIE($pNe<~#YaDI7p(R^=K(5NE7=1)~bI95QeI!E)>OY~h{bq=&IFhf#SSVLd zF3Q(oegSkMx%5cExM+>7^IjZ+0j7$3D7CoacMbJuFt zSncC)tY&8QDZYC(YuMr=oH%1(;{_IEIfQl_*s!C#`z>@E?rr3~uke3Xvo0+8An6n0 zE>oAcx8mL3Wl1hXkca4CLsVpMN3=Tx^g&i8QQj{2o9L+~{Xv!xfqH47uM!#rX!1#a zkb*-&1e3*+30}L??#=1uh0@zQ&5|}*2Ln@w*_trfh*}JIv?WY7Mc~ni)B4FVbN_bH zey>{X=2zZj&D(%$g$&nvV@kTcfiR^wUQatlbPmtM`%t?9zNx9=VoTag-t9f?q%FRT zZ|HmBUW3n8Hx*-xkxi6ix(j`b5# z0Y+-@3?qkjsZ^;aPlqrA*^z3xDn&FG>nWz)s)as67wR420u|wmHN9`-oRN4idiz+? z>^f%_ab#lJ33g*bktyt`6ZRhVn7L#4>s#qrFC)c}u(dm^_jDkc#?@ zi-tr~HfdwL&RDZd4Po3%|Fdx<;6>`*-kP*07X%8tlD6(gt-go!45i zl2vlk`>b^sX-AMAGLR2?pS`bH(v#nPpY^C$k)0yCpPz~vvC)=`pW(gNvbGZ4?m@J{ zdc=(6A1CoSYnid}@{M44IXc4mDUfGHj*bfZmc0_jzgP=DIlVXXOKV|N6{+E&AF%xJ z6NK6DKGMRSeDnt_v+17TM54B+lG&e%y*&9tQTYe)-5;=i&FYuT)B3=^V@^!~HZUxK=fD2}Mg$Q%*$Jn$qkqb3@@ zS8)b`M`Pe|#1F)MvwYs~LwM-vhV>4rDHxE~%pGU0xeDs;$0vQr%9tGnV#-{#Lua!2 zBi2W4Jcub5h@~2d0zG2Rklsrxclz~%aqF4dkb?yo0S&Mzx0#1YyK}1L&Q?BS1FmBZ z((?BK`R9<%oSOP67Dcu{A0P%XJr<9CJ72Yl zHB(3MJ)2mA@HjL=#+q%y`I$|)4*YC5zq^UW*Y~dmedI%e%TqbpQnfy}Bb;~mk~N9n zLZ6x{X~mDii2IEMC+CyCWVZN>u#4F ziY9nfR;X1f6B=BMgm*G62#^EZTVn~yI61>#niKNVRU{-86_w0U^?;3Y17f(zCjxqW zjP<@kr}2R}vJ5oNi77mU_>e4xKeZW7xX$w>o7r#|t*&_|iDs|Fi1mCqbo9ZYDxo%D zjypcKYM<6S2XuKK+h)%(_W?S?N34_SQt2(EOmCDC=V+VJ51b8e88B+=3HtTZRq2cc zQfWiHWW4Su&X_5cwZt>#7|?=a_=#p6uCb6q5HzHsaSh~ohr(8;OrcT5?#_g7a{PNl z!U$l(FYjR{BcTVYLxH&CTEN~s)PwpP^EE58fE zLDQ(fD7UMFap1G|!W8TCJic}>OR|*YK@0)HX-nDywfZSIwip3Bf)a&jLA@5K^m9}^ zH;-%f!8Y<4Eh@n_3fzI@dTZJ;e3-@T93cUj&h zLDkXL?lg&VumlrEmY~!NwKcz})Lb4q&Oa&Gse;>3*d{va&dtN<=tMu!NgYhtX)wYg z1jBe_FpjSR52q7Bi^^G8m1TtOo494p+wEtu^;%MXbYH%`5;z7*YO?r<{mf+R8~gy6 zn*%hrK((U00x>hLv?mbbUY~Qk@u3<0!@S*1_==wkpk~6ouey>AoC4cK2k9+&$lExSSi|%{CV}H%nAI$R@`+w%Hy^%qps<3YJOJ) z@3{?&<5fOx8%s{e#6Y-RKuXysP_?3x#F8R1*;s`)WrW}4+qPknhh64>ZexjYBS3>R z!AUdg9ZEa1>|jbFZ}k=HU?2nXLhx9-&k?0_7n5&a~=ac-pWs69R=$-;Xe&_2?rUG z-l3_Gu}AnzQJHU9yV^34wNMNN+KB>E*#=_T4+iUP{`wAP4DE#M{<(bn4s4vB$8%te zJOgSrbQ-f{C4Ee#Vv|yU%v3sZJN|EQ-z!F1Ds4}nl~V@q_$1PbQRE}EV^ZvSyw*`^ zSt^$nr)1c4T|tegn<&!c!E#-`9IMISkSNl#R9)xjv6Hce4AquAt*;JT3D#O+6&tVG zHmoV=d;=_8#TjV5xWKxPdf-k6a#JKycYK(kUFTL97S8yGLc!qd-Kr5$~21U?XEnW|@f}m4187q$oan~@A{aye_ z0MbX8#x5pQj$Q}`kZnP>Sj9obo`b~GMr-*S-@p}3e?9kq!@9;!T_6-%MsXzqjJLVS zwJ(IHmP6uCXpEqpxC`<4O}@CCnWLUR1$r4u5jp4{YqXK?DQ9g$`qfnN%jK+R>`U-2 z>i+?Fz!XfB%@7^k zerY0ae}Ls{hIQp72XGVNhlc!<1Go`3eILJifYonu??rN6hc4Ad3npbzS~>OW7Zr~` zh+3!U`GkY;eFBKr9%PpKpNP9aP*%kNJwy?)@{i#42U%0insdDFA@-i;O+DXm2-;8- zIgVd_X=5?GvEU)wpX2JotTzH(WF5whw)4;Pg2T`fO(|;agVhN`wIsW&$}ho>=S7vG%U( zntjwM+x-UQed23xQdO@uQO;=o3aER%GD zYSDb?e_;JTCsqYp+J=r6Qv7~lIhAwTVF=vpHlRq{Y6 z02IK3c6bA92(Kwto>=+lNvI_%vYMlBcf2cN0ambqiuv?H|3IWh7y1x=o&h#TB3xWGPlkG9XmglLdWLE}`wA+o&4EE$%uqw6yaLV?0uj`bN+k~Ns6wRQ zn2hu~A_YbP4Ht^ud9$oI{m#>P?qF1f4mqk;0DEr_4S4T=_^j{Pv$6RbMX2`no@?&2 z>V>)H4mz8;gU|gLzxN%RoNfo?DHMtp6Fx0hlY-wAj2s<)WH_S>PuRg1%w-3?js~$a z>XAY5E@^k3$+wK=>H9})hDWYI4s;JD48Z9`uy(YBAx2w*VMTyrUEN8IExE%x z9LE&^{u}Ri9A3I}Yr8^s!NnFiU8yP(=M$mw85mojDr4=uqh0D)QIS@GdJSNnjM-V_ z!DNm-9GvKN>8&zWOc*n1x$$~dc}*fe@j6O4h6G-HoHgo3>H*lVVl>dh48-em^n_@Y zD|p@LZpzw-jYaNrQdvBRGK7@Nbiv-%jSoD*j7d};gK9<%7AcF2(J(Dvpq{~Sq85qW zaIuxJ>09<0f9nKm7_kKx@P!wJy<_<96RdHQe)WeivqbSOAPOI2S(>t;#@$Bx4X0^9#39I~8kf{6K?Ix7h4HwTkE&A|(x8)pK3-bUi_MH!P$cgmA^9Nx@_VrScT#!P_iR8{ z$3wu(Vz+=iFXEPMu*c*Q1tp35()wRJ)|Gtr53F(5lCKB^)2;u4U~KRR2ok-3#A_jF zbbufE0n61ZU3tila8CCBf?y7r-6%N!|AFA%NkL$_kIaf!wh=TPZz{8*WGiB2sWi^n za43p9>o5O&pEO1Yq=hr1h3GW751{eqU;W4$$GlmK27$th&}#A-B_Zv`ZMvXL2{9qC zcnG&NSGH0^FWnFg{eXUv6i2t%oPR5XAeCMO_rjJ0Ga>dTLE8pFF~#7Tp1rWmwR;B| zFkGa+zWpOF`iXVWm@e=Se`0A#f1wg$lkkxE5Gc}eVr0Hk41_vi${O&F-NK+tJmzPX z(6k+VUVuI<3VkS%hX>1tw-BU-*ZJU|*+`9)#XtQS{^i@?I1Esa0HY^XE$sqJg=F_T z*Pdia$>#|<_1raM6#QW5;d~6Mj^tY~8zcamFKNMV#GHw3$a0L1k2{Gi{WZSyBT zW)Jb6CVb;bW{4)II>-smjutI)-(UHUC$SIwg@^qDbEAbk`4^TOdpcfp*;19M(>dxx zHLfQ0IHDQ8`U@K}&BMyFXB`w(9~B zeATaPy!vAvb_!lyuKvwionm&4^cSCUidn+f!9-5l{S!>w`3I+PL2CRNUVe%l)RgY# zOHae?^0SHj!_zD=^VUBKTO{TRPpY5O==^*sIDKgAI1xL_+1MCjtS{__gmGDVX*J=x zT)C^ajmP}Prn%NYSM|TsLnzaNjQE>lk4z2G(3780L)8J%&>FCc$tZ1x+yar!U7Sb) zi`Wd|SJ+8;pO3_&6%ErTTkzL@01r6y&UKOWk>X@NH!XB<*azGNT;5RRRhDhB-2A0b zFWKv+P=9a~iEW@_-%^B&2O(M7GHfVN*yMoaGHwwrt3(kHr3UTDZSRUfG36iwLOT;6 zwUxVQ>tsRtgSsJ6lC3?=BWJ%uRmr6o=tX&5zp4kB5gD~8kcb*6e2~h0HUy7?pOxID zNEqAd;iw2X%!srqkA;(lM;R??OH3OHe|s(he`{cE=EC$*!XE4}pFxFiI(vzJ$fjlo z9uNv}mta0p*(fx)D97Su5W;X^N%~5&cRn1i<8BIZ4Yy)ZK*PG*-&j#t7|yjo zF~BJF@vwD0lZ31mXB=_@2hP~KFt&Ctm@2sQi22Eh7zwhCf zE=-vU58|{toR04^z;R4C>pmbKBA*p_anCWpAqb9JX#)u%VXlP2dKmaBuP@;hPdWgj zU?0XdZrX@vMM9o!u4H;GmuSL^&>a-(NY=R^1w52A(b`8v-^ToDutUkm2Z1%G~_34gzxz4c=C3IL?|0} zy8;ctRvUF%k{tEj7h0PfV4z0oOaq@gl72z1jDCTcrubDrUnB9kXIX>Hl@QVcDRVCn zejTvwGvRX-&cq({TOj9lMTdln&nSP%SDnFD z0*XBObCRT?IxZ#=9_rBSHU(vnpNTrctFp<*aU1Yxg2}h+9i<{7`Q*#;6Su&kV7Eqe zh)q%2{W(v7OWWCeM9Xv{5Vfa^x{+#_7W!~_+9zN>T)$W_TDNcAU?khDfvVm_3U{$5X$cmChO)fyH8IEMi7 zIx#8C_L^*iyBO9M*-^gYM28``B>I+JrViebTccXwn`qtT9Y(4z9AOY~Je(24b+P@5 zQ|?&Ul*^>bE)^9tLeENyt!ii83Yh5wQt%dKk;W$fc{o_9z(QaXApZH60P)ZC{K#pM zXbI@P3Mc|?JU@Dl@4d_m&cne#Xp}&_mYUSo@a5;3Mfc4|)WdOq@dM|fO?{PLInRcN zOsl@X#r`L|t*$#2d|RGx2Giyu1!w4P_)tQ+%fVeWKbVn6(M-8K{zE;8YVVRel3 z_|^Up@T~%G>jDH=%#^mYMpywet`0{{H>AHXcB&+83G+oR@`j~DxRPw&)Ih9uMsAJ% z4oDb+d%yu>O-IxQU?U0G!1_EtQpxZZw|Io|BWPJIM7`hF5^9Uj^5qwBFngNsya3yn zVKV>q0t{!#LmgdWk;;Ap+rW8PrR-*~ZQQ9-`{`_$QfOk(um=fCUWg1znGb_G%CjwM z8qNM-Cd!wm@C9>&R1e=>5Yi)j(nzItB;#I9J5(vS1D`EJXVR4Mw`3^iFD&7^Wmt5p zmhf;t8={`bpYlTwW%!VP;%Dh~ZxIp9Y|ktGP&@s;i8s6m%}kz;@3@HfyDonIBI_Q% z>I3Xvvdv;ALiT!E8UivSBujFwJof{h8DPnpTX(r5z@F87d58ZNV1qP`f9A=TSnt&F z=wuu^OQYq@w&4dP+$>12a#>3tpM0@Ip;9tdx1oM?@uP6Q;Sw{ZE)Ex}50lDSe{OL~ z?74O@%i8+Rw?w;bu^aeC;j13myI5F>dcj#8b>!UDD=xE!y1}byoNk=r%`QU&7Qwq; z#?|dbi}{GlEV1M-X{XFPrV}YvFXONAH!wCQ_b$1K{y-qjR%CHJl5$} zHERZ1pSFqL{uSXMwmwa*J0j#(VqyrubqWy0MHjjcpb?c8XRZ;i5-`5ig1Slcot+?4WUI$>EW@Cz+<6eKXrVTyk%spIYIBYLDJo(7>k zjq&=E!?avv50Cj2?`f}AstTs7$R(5i+sGfQhl}_{d{uqK9Oa{hT=^ZxLP6Vj&)*}` zl6zJWlrU-|m>k;FzfAN`e7}QWgBZ8a6;S09)}Tk=g4h1wtA3Ao!nNzrzhpI%s7I}( z0s20b1C%}s!Rt&S0dhSN8+jVildTrn zd{3ymDdR4k$6Z4C4pDCYlq)=@!yG*QlY238i^3j!-5($nUsv*~KO(w?7X631W%!hT z`$t4{CqRfK%$6X5_sEZ5f5O{cgX%Mo54;v(A71nSxxMc9dve zxdy_7<{v(55@Xgz88(OEA|rwOf2nV#c3z6|1)Bg^5Ry0 z&tDO9yDp;deicfSLt_0F_pc#dcclS=H6sR%rqGt5tQ@E5L@9|c8R3Rq(KVE}_kW_f zW=Fty#F-VhAP1lGW(A^G#9Sh)ztkwyoGdt^vf|_ywFWdP_odUiTKQdx$eW zS9`K}-J1;jW7dF%-u+!$euS>exdf^uZ*DRVU* zNxR~8@8Gt^h#u_fakS+K(MjrZ`8anrLO~uom#=Az=&y(;`T53(A-ZaAxPef4&ur$o zHzEe4o_r0m2&|exEfi-8+BQ=-a9S=4&yE~vQfAS{W zsoxdB-@XaMsOReVcQ?_=T^o7#zo8!tY|HQY8&-BN`1s_%BgXdHaTE-!)@zMHQ`L>J z)LYSUqa-X~YVd#!DTKNzzAWYE|Ay65LR)_GZ=4>iSj@XLMI^MQ=~NtT5yp8FAJr7` zpz`{A{OzWQ&IloQx+$VZ`<`tva#Gi!W=S-Bb^JCy#4Rn6syGvkF#~M0&IpkMxd;Pf zV$#oi_^pTmi4&;?Wa(H{g69bnMyf>ba@V*Fm+evGWW?u1O^klqibF@)RNcm}r==qC%vF{a(TMRD;A6`J9U z;ScuWY1WDP4IaR~$oZp4-=l?wEjR^3NO(5$Yk(YrJako4{@fjZry*|go#3pX{1A%@h^AJiY&dMhL2X5>HbrzH0Cl9 z9oZQq{#YP;r`CwU#Zu*nP~fd_f}BhJbcNTrb8#;=pe`1#WryT5{3;*?vJ?IW)VRmf z_Zs&&`Vpls@pI^lYXaV^@aKR{?(a)iQkKHxqf3`XQM!_&Px2IB@7t*obBHf21&^+!_~`iMu(i($Xd{YqXrOcYm&j+z=gxu*I%!Vm;E1wq3o>I;Z<(~&LQy|pR zt3z0#^5+TOD};?wR$6&+2#fDP>S`i!?o0B72mDbyc7neX!e;jQ%S1@%=q-MH_)kE> zyHduF$|NVS`t9>+ts1dp4zz+gOk^5(b||YLy76HsGb-P|$m>H{oHBGV?-0fcVoRU7 zg;QX`8FV@u?Jwqk|KxkbF7HH(3T*wd}qHl_DY zZVqSn=yvkLaF#RZ=~j}2V?Vy|X<>hWhU#wY;Ouo^-y+oJ#Jz1`9!}yY1RwQ)l4%LA zZ_R%RXNkHf-mwkKq=-z@+OXk0C}tH3U>D+9DWWjzrxXyy)Bv^As7|zbS4Ons$J(%& zrl*HX=mx>qtR2Dzwr_`dK<&Vd6uOlFs=2IykB(s0Sm)EA6;Q3q&yv43uRJVA47g0Y zpKp&~2@1w~F#G|h|H`V@CF)-SQk^VC!5a!lx)+{j5W3L7%`!lrJ+*b*|X2;<)} z*0*P$QnV;U5UN6KNUQ<`jKh0qXS_!N{c*f4IZ?_*4qth3%IQ)*-M~78UMQv6pL>9p z8kqeaHzWu(%U-r9BtV^%qh{r*lk(tJ$o=Pk8leqq#NXOX?f3|_Pt^Nj$`%Fb9p8Gg z(#6G@TxrXeE9HfJRa-Vw*>R5FY73B@+`(hpvEj<4LO!D%>!BD5d1X76Kk$o-w_wIC zmDRr4HCcv0P=12BCyOr0_x3!2a~83Bp*)+99sGFo0)`B~+{Zh$2fRH~_>lH2z0c?= z;IT_r0itP3m*emJpt?2DpviF%%;E0XuatS?DH>z;UcRM0`%*FXWv>*L7sZ&;=EUbleg-`hA1Nr^O2p<#MIt=c_%g!JAyAeu`SBV`*}qa z8>{QfKZ#-V&aAu9<&Z0h!rR@sJVmPO6Of)4AD{6y_jG1v<-_~< z-p-&b^#}Ro&TO)hdp}R>f?67&we7;5P~PapZ+BrON@6cw(iN?Ix{0sr%KGaP`Nv(E zLwR;T9}&%Zc6<$&+9j5Csk39dC^a9OKj&&R>#w|bk{^x6@CFrdT{qT2nLU+9b;B^7 z@AA>zSRduldwFR$HbZ%RD*rE~$KiVni*B=KFOW!zMZ!IWXT-4BwhMBkEj?ekz9b>J#r@ zyQ1+LxO=@A+E0oGCI1{$6V&=VK~Vc}EAJl5VllZHvCPzUqD_t(>Yn8wZDotvB4k$*c6Ur}r+hxQI~&y3i)Lw-oL#l+!I1}Q4xtavG)Va~%PRhwNDIe`NHK^!S1+P3 z@^8Acp6!F4K)Gh98R)2d6<+E(@~%BVx4JyZhxcFulsOam(>+*ncx$_ypZ>^Z;|F>$ zlVX{~zv;oEl!uFWV-MiZ#7Vq!97@_J@r*bYiPbZSUZ-5-i{e;f7wc&{PsBFUaT)wn zUU!4`9n}ry)p5);;VyI#!5{;i285t7cqh>r>x1Z!dJ?nS8ZRBwFc#r!1xld91@5d) zI=}WEzA2@G$RKV%@@MnAp#YxmBlVW=eV$@sla!PRe3^+wC7#H`{97OJ>jH=)t+Rc`<6P4IXFI+#C(wt+w-$o-D5ICpe78z#{4HBpktCFXTIW zvK|qG#$tltz?0Zg?pS`gCxp5#cDc$hfA`gO>9KG=_73XEe2A$(BpmLt#H2OM%QAa{$ePH8Z0H$v^@2$8;{I29L6lGyt>j-PF>6Q@l`Oi&O}$y#T?ca{{fr!(84ag#nW-Q! zk)pJd+;K;Oj#R^2i`bXL%X_n)%C9f-oxNFtu7F?a&5{sET;GS?tE=Gm_hDHb9vcaK zn9ufC(2A$qi)QiuZeG;~Yq{G*#D`hfX2n#%>nyB~;V;O&SmM>rToA(~@glz~8RF%NWS*A{ zOtA6w$t=UBAi5AT)j0CtjR1O|5OH?_8qD$_UNv;&o(kw#10Waxb`nv9agVIER@bC_R76fddQ0s zUG{k0-}9sWSWIhjcj^X}VCDbeb*N*?$`%@*gG%b=;IkxUU*L_DF;kHMT7nZC^HB+jAz|WCEDz&iajyCe5bk>O{3<8-v z+@3oJv6pncc*I~fwAB|a(EXlI9?Wth{-Ad{ivxa&a=v#kd#v*|(&)fV13GDgkRoMY zJ?gdb!Rf4@?tcD6I!kTUD$+ksm3&t^>#STV;AhiWnKH3}kGThe7%Skb?qU1d#!)_~ zr&}8NhEE;B`gX8WGNmDE2YsgYIo~jZO^qZorWSEBW-LMah|1dzW%HENoA{EU?0#iI zAO7=DHl+1OAd2!1`qXjUVr3m?t=TVyoN!-4^VrCm%t-i4P8UOQK2w{SP6Q6}(2Kw( z{1hRljGP7E>wf=jwA9v*ruM9ratEpFIG z&}{gl-X}F3h_NfT-tq)YC+m6bS>7iD%d>d{&&|L_O2?ndfDrfD&-`)*>(l1HKr3Pe zQ}3&rAb8hd?3K3F;386I_3$X_NYD~~W*B=+Ir=;?^^d&CADt<-?@%TpQTo$(I;bvUH9Dg+y3 z@i+%dv4LgclCO;oRDK%GU$#NuZQYMwwLwHr@5kF^vQ3I%89$K84k+yd_}nZuMfrOv z{~!y}?8s!U&t`pwJmY$1 zrQ(T5gSdD~Zg-(Vc9wc~mqhZXMzRUY%a{2_BiWetL$O~0W)qA^kqat(iCadodz5+G z`4gkq`<>Gt1R!g0oe99yL>WDqjKx35C*-j4(a&U1>pe;|a*7*@Xf_&{Y!vV`T%E&K zD+jXql+n!G@ds?-@KJgQW)(B#36aR>d^C9ABmBr{$hth5D`OxV-XF~e;aAs&KRJe_ zv|Z+3Ti)yrgm3@t%J+?754L{?H*m2qO851a_0zD$jIj;hY7>$w{VL!Dd0d5dRI3SY1)Vz zMISgq0sz|sRgAht;TrxR3ROFvGL97}A3n@q7{|D-1MfMWWp%l}QX*fJFAM{Ys{0*l z4B(3v`J4ID@yyu%ovr{nd_>sc;mA%Wqv9F2=!WyA39P%WJCDg@lS5viPk(&EOY+z(-M#$BJnSG2UExU+ zS%&UBe|#bvqI-ewn8^Bvd`&qkF7i6O=!`se5@f)weDx&k%v{Mld@_15A(^L6W_?3q ze8_t10)KKc8>m~&w@zkRN<#|bTcP=Oymvmc>rV6e`Jir9>HKg$v*^b2tNGXget(eP zH-#;Tbbf{kUVtSTT)>fb{gm(y=5wujVE0A7v5zW&p2AlbNcHT&eefg6Sl{F%|B8inDRhoB3sXWT#$)gaKQZ_zD`n)53x?XrIe^j|#XxSG z#(L<=_{?c6F8cCJBwmL%2N)B;I6Nv;?4SzqCO+Y>Ph-ow)MG%X85e+9#Uhdou&<=m zSHFkn-UqZh^&MY)AM2+4@)2KuA6pXg%Xb)O#{0bY{p`)q+&(nT^|Sc5_hYkLhBJZt z*~qT9&(rYWhYHm};dytu4wCBJ?@_KDpE{it=$_yQrn8F*v}w;hz*6s7OVjn*DG0F@ zKwnsfwD$}nEA*(sW@{JR-fFgn`xr)P!LU2)z$$>7=qAX8U8M6{r~+z&0S~f4P?SCS zARDS{;JY5gqz>iZKgbee&QtZ1;1{)y97efCC|roS%kk*RunPlEdgbYV1BrSTQ=JMT&viL$uEbU5+O;4Gv5eL{K+H*=3$N zgFUG9`Gs$t!KOxyhk=}!b`m|OEk0cPO4&!W=g|){i)9FX?SQX7JA}$eNCSTR8AK+L z*v87|VLJg!7}}D0Zt;?bSriU{UVNA(b^Q`{6DkE@!#y1TzGAeQCgtjb{HurABITRy zyr7Uh5ONrP(8Q+W`~+OWDi59It!F}5n)(4xn#o>PN)%o@6O?%tZ#|2332lm}8rDwd zy=Sp!u;1D_3rnty|1=AT^$HJr1h9RK4|;?dA(c&i1Owez&EI>373spbC&V>UYl^Vy;~AaxIy?_V|t zY9^g;f6Zg8vo55(9u+-vi2w9Bd(?RK7^Vj>S0sV}2*95wMYMNaW9GGDgQ|Iua zC)gWGZTYAf|)rIc!zmdnBM_1fKni#(|-E`c2L)5^JR%Q)8Sm=X(NwVi1Cfu zZ(hg(bxNrIK7u2S%h8R8UFPmHXUqgh>Im<_nv{Z zU%qE2a6e1b?M2K1_^KR0fQiFs%<*$uznaD-4Sn&DrStRs6l_@WBdN%st2UBOm&IVVs{f1HKYT_na2 zq6CIu5x(Z8{aH&`x~@m(I%N2E12V{=gL=A;wp0H(?rj{;H$BTnDEAid-=1X_#azI< zSF+=}4gAMSmKGWqL_OO$lqaaHVA%Iiv8c6L^wVa?0zz`!k;t-3HFmg341^>IYc;6L zx*-+4F+yY#=OIrV_~{b*v1vU&p|T-q&msjklUi&sL10=Y<;OsIz|@447V8C)mw!bv zjQWT0!AsHC<5T#OrR?P{GqH7p@K6Bq0y7AR*LC}m0wOeZf0~DN(M9yzCNoU&jYMKU z{=hP*XkC2QGIk$0w86_jxi}VI@Oi7)JG#4g!i%6CAC>aSFET51hs@Sj&?%zNr(>XV-VW!S~)@UCgb=+l7*DZ)RkWZ8*^9BCE8a9YE z9=}u8EE?AGH`g#@msP8^M3Pt})S!VQ$zs)0{D(EHZ|@I}N)RLT9Bn0%v`)*d#JYnm zB^~|o$t)13GrhKQoR6!GHf}=>9M_N+&C09Cgo-5WJ)z#xI6&~Po@oR)Qlxb!A^~Fmr$7M#c z{f&X8sb!@>0ZtRCkjPmW)Ctg1i+f2(u+v19f*3bsS&hyF_aa0!80yJ#!8Dn) zr=gTr#fFfiWtdruPo_eYj>Ring5toEE&z%p+O0NJCfap0U`z<)Lo4lLPqka&IsBBW^O_ ze?fP~U9C?$GmjlO`6m!^@iMTr4yc6yiIZgfq&H8_0b7b9NQ|IKG<&jXCm7`t2^bjq znS#&MagyN4^IAHZHX{f8Q6mE86}=j1av#;K-^sKVBgDX;#=y1ip+b}&NrNRX4|;KN z<(&bS<31lY2^bp--;xQbuP-if~ zz>|^qF+r;iO0K}6cstCPv7}>dRyyj1%iPR%bl7HxkLg@rEK)J@03RJ}^n$+~e=SJ? z4n$rb7D#gdl+SHZI?-iO_8YD3w-foaS0KCCPw*A5u!MnwKF4yYjVCt=sKW?<>!|nN z=fg;~!od~DG(oK%aI=Ypzw=*TVZD3)e5pyUaR4RBNwKQTUU{+%j0z=GS2eYsSaF7D zzRG&Eo>K~C1#QfaU*dCLg*pU2KX$#!x+?Ep;vc>WIlSZ&XX~NoyZ;H^b3L^2AOFJV zt!Ft({QJCmJ&V?L=HIMm9og5f`?+FQkcbImc;IWSN4M90Ym!VY`RKpcTF+l-&}S0( zu-8z{n{)Z{*Kq3lcqQNe8Z#PW!H{r&3;h<)KaVOKSj9;aq_iWQxH0_tYivO82KWg8 zC96T;BFZ_m$p6|#zSiAM+KqNP`O^7$e(wf0PN}-ecWi(z>c`%^ZUe^I<{~$51fO`k zH=n){40UL4{`^MPP4_3?u@S?4>|=gvBS`a}kNGbfaY``yW8Qfa>k)nH2@tVkz(6mk zq3puL{=OX_#V2oKmJT6ZIa&^Z3VCKm15c?vsn zSK9zYRiX(F!DJ!OL#Wt`W3Vz;y8u=})>@tgNkHsB#2UadtsdS5!wx+>B@f5J;ZW2}{OI5uequAWeBF5H>#T35|K>{N zCz!4j3+bxoI5D!8k9(bUobc*Pm_)iGy#u-KRU5VY(G$dvKhgLrx=UWR3Kzl3fRUce zNQ!U;eV6UyCTNSI#5K5(g1H>1VQc@Fo*(n7*CA+L+{A<4U_CnSI88aC%8Ek)rCMl0 zlP`$1oA^C%uv$n!L0h0})Lr2Hx3EW*^2PkMEv!4Me?%@xQUv6S4VC=-7G^QO1S3`$ zoz_~D&=E2}br*xIhlqzI7OIW%#=K}4%@en>?opLc&C`^#ic^G=vWG#U?gW2uE35!= zxA4nb*`wV)cgbAUP6`2#FM7<@sJoqiJ5Q) zDx$e>8?zaH#VOlAaK8QlAG#f8R-xa~bZqI$XKcqp=sbe2-Oe(UJ|p)v4ss#k?P$AvUUq)vQb=k6VBe8}u`c=_mQ{?!gB&ffoxo8H0+>%!mo z{I{UA-;}cd(pxN8rvyauZ{KEflo#6b(L345j@SC4zi>pJPgss2s6c^l`|=$-*;Hj* zE^oDqCB%MdL!(j!;+zax936<*WttCZEUU2YeC#gPp>sfuM0C221XR!z#y4k9!9j`cH=Qr{6)xl85uJ-eFHF<4*9gyIDuYbb`;^4FL2!!Qb4? zepa45##ioPDaxE<{PZ4{8vD>O3G^CAGHiWD`eD$bN4I2f<6f4mq#olF_QJO1$4e5` z+wo`jvR9Su)!e*~CAcEUNd&x$h;CL)2%?sj9Yvj29bLsqRPLFCOX)3=vH=O=Jf-4# z9U!CY4M;!~xse3%M1cbjn6CV<8OFg+smUpAHA&HP-~>(4V^qVEay()=wPJ80OO@?S z;+OWZey)hkWHJDyAURO!ffooqnu!CMv0uGM(z<%_B5|a8v3@QNsoTjeS;d<7sB7us z1^j~KpHIVpmYhO62v&h6npd8McupOTMu*YamSYlm%JKat)YWHn2EKGZ8`*k!%b8NA zclfvafg)oQ`RD^|no^_i?FU$Vba;2v4v_#R_Jj;qvE|nxOgcvLYEORk02`JywI_0r zHVkQFwP!=!@G$toB9ssrfHOV;mC{8eo~0K>(aWD&D;#+8?EZ>74??pueJ5XikY)6k zMu{jvb&jK~AgZq>{?pFNM1JES>)EQU|J(hEymu9LM&s_{qpH}fPJI$2@){w4mcJA% zk=!V@1n@Ie;G;*4y!|28r_bF1G84kt2@@XSELVqKroyOVXn=!KBPbPy_IL~o;7=T4 zDaKz8Vn|g}flI_G;mscx#oz>QAc>s>ZE`C=8uMm3R)7v-J-3j*T1DYPzej+TqhSbI^pSM7|)x_WCR-~BG@ z+3scktf62Ef#~83{I_>m_jc?5zx3B$;608oYqvw#A^17wyM!pH(-MGL&GoLF{~323 zVfMJs!MQ1m!$=LcIso`rNHop_tswAkF!3u#SaIyF6?ktfKZ*@{W{@IJwk#xQWd^~# z|J=iT@q3_X3FrC2_i&8WZa@FyJs1#h9(xoA#oqlq`zWhYqSx}kYIb+zG&JKrln!*o z2puLsaMS^wRn6kMEu;>(zcK?3bX=Kj13s&V=w0kQz?W3BmDy$6s3YQ53apnGVb2F~ z(iB;B4hD$W(ZEY}8I4q&#n63;EqXBnK`WI|+K;eF-TCxmK%4{n`J!Xk$ZbBuUpvO0 z4z-`5Wg_(4bev_kezRqjoLIrvq2OI5T%zf10vc^>X1~^k5ecdEtRZ{^fBN z+vBA!eyGPn1k{sZq~GhZ<|=z=B?K`*X7d%O7{5qfyVl)`ni zceyUl<>pJc(G2LNsHU$s#70{ReZ0IchKApG2N${|n_Ubnu3cDxL+Rt$I+XM1(9 z)`A#tz=9u97VRH&+bS9{CTPYn-sdEHK-u#qUvZLk>6k?2{UE4Zf|UeH^?o;AeUf!( zb01ps_hG^w{@;^~kG)bu9bKyPgE-YQJ`$Do`T+}vq_)f`&qO`E`HE>o9kFjw&*0Wf z;AF!H&mcz|uV*D}k!6r%Uu&eU8L3R`DHmwO)v8Jf@b# z6^!~53*Q~Nps~3MbSwaHK$A)!oHYZ`NC<%FfYuSz&Hru1VM!(7#4^9RLFR(;Tavv- z?>N1fOP@(0SueKob+yo+ceu_E)DntIq>=tWk0he~)P|@+Kji0nxMN(qo_}^x_dFcnXExOsaP8 z7nmF+{`!SqJd4%($OV4=ETFjgcb@nGrZwd%w|~ImU4Nl4REL`Vtsn5+zXN`NrC=HO zZGEr`K75bB{`k!fWUU_wz#%}Och8*=IqG$(Cdq~16At9ZXsyXd(fv8NCm|PHA$EYK zgJcPEZ5xb`m&sJOE6vJss^MgT@_4kLvY-A&0{KKkC#(n+WyEi8A+w7=J{;gTr1(ZPTC z6q((Sv$%#q_2K@h(F+}qMCKraoKz!uj+Ez;)E%oZ zIU}2{KIYbDrvg&VYNCouciQMwIJ+-5g%XUgXUT*nlcwp@D`+G;Nxh+FTXY|ys0o0i zyCLdf31aNtV>}g`C}EH3GYnYGPVqi#qjv;-;hjHXv#igQ0uNTn*oTAXhL=7BM4cYs zOh;>wd;@0RP9mrCk%U)9f`tKz2x6m3d`uD_&E?e}F|+G;NJ3CPzmerzp;geUWd^aW z(}n;Hh0Dgu3}fMSbTmMZgFn<+V>QtxAs2On_h3qjU|O_Hn-yX>xhQ6)z-ddVVE~QX z@MT-QcAYxbs^&dwYsiY%J6tm$+aV&(7;=>#P4!@INH1yuaz+m}l-g$3Mj?(ykF-mr zoji}|*}geJo!m#G+&@BB7>kCpeLo_1G)jegi1JY1Z1|T@T%|+?%yXX~OPvZk{9~atZR{k=;jig*RMV2S8)t;ghbahr#%Y-_x z;w@>{OD*JVahaTCI9en>JRdg6XvgG&Q3eA>AkSiB0IRg3m2BTxk291u8C@taOfrPs z0RgOBD!QZt6y_!Ig2s=AmJvuCGVYypeF8AadmQ);mAHnx5neUa$NG$&D4mOuQfmlKR>Zn0QOadERD_PKAZ4sX(a#1WY3TUv2-VH?e(i?dJNhy>~y9FbE9 z0vW)zEgZ;rCb?Py965u0A6uR0vbDp}`H^+sVA@(x5g{CbaX8DPbyT?69uuIbMWKYR zn3*4FX12>^(~ucs#Jx^R$kcm^=`xtPAshYxD~Q53SbGC$_R?2t3M!*@r6&OKnHShl zeX8(mcwCwde<-2ph@+Q$ z8ns13R*f!OjE86Nk?qg!n^s*)tB{=0SyZX&3dd_IS)0*pA{TAELCP`Hh=MLg{75$l z@q~5RN~^#*0Z!&7Veu}_@a?G0GU*VA5kZcP&h97y7j0q^l-wv{Mr5B0aT(UQaW=d~ z^H)A*J$m3O2;@L8u~Art7B4*PA(kYro$hTSZQf0B_DlZ#$83-bov`~mlSjX7pFQ4v z)auDSfiL-#0yi{xl*=8zB-I3X9}V?7T7`P-M}eiOeyDoV0EhzZX1#X|jnoDofwfsl zfe5-_qGIY83miVAGIt+L2gs?tl9b;QlK_|k5&9+25x357sFT8%W}0wkZB|%y?A~5`^YVo!6USA9l(a+>mW*1qY6k zWg{q9BwqbOLaitaYc0%G?XI=MU>ZAmuRj(X>2{G1{SQa7SxqO-B0a;2S!d)N6~Q^* zUG&Xg1bwt18%pWLY21BRYyasD?9LOB_20GAko>h)>=s_Xht+~`ax4k z?qVxe$NO3te{1jhYbYy@*LjPq;AWdJ`)tY2_>0v|>lth7bNuzVB==84?6>#nb(O|6 z>%}Ir3Bm+npS?8<^P(eAK@?b)C zwlCKJ=Z}Gt;7&Fv)KN%+;fw%ahBe;caOHc7V6ztva8NL8TA?+n=zfj}arZyePs3`Q z13cN0vlk!&Yz;D*As?EV`z;zFRyJBojmtH~6`8|61&6dWWa)K|APUKHi8|s5Mu?1P z-E!jTuz)w|9fLees860;Q$vlx*{;wfxvS9;SN4=62ET3dhWLLf2*RKD{HuGnq)5Rb1=C z@A?cRlUOYh=7@;@LQaCGmVmPFL3U5#VT+Yjti>+@+lFeE;~8Br9vDEm7WR;#OOn)# z)B^+Q%Onz=iHk?mV$iBh68*GONMl)Xj{xUfP~RRyU9&;jjfhx*fDR8&B17<0ln+o5 z)yxsjwx82sg`}Rp0(a3QblIg4gp+nUS;+H_BWjt76(@4ughbrk6N2)R6w`Fe9w4Z$ zUsmc*KA-^%Zuy*b=<4@=#b`Wmcpu^+rKayOWH9pSpEHxoSVaR-v(tTpfZ`P7Jirm- z&rM;pDTQ9`y3QA_UvM8A;PZ#0w9)2il1*+W)XY%ec|K-78XZmrzJ+?8Y=JV~^x|vk z6+WS1a`FD|a=FUQ9+%a$g*jrkDrLAV8%5nhWLDgE!P6XRQ7Js6Cc`ihr;4FLi`OyYqXu=${^fXoHzh>p>bTsYeY`B>WwBfA4hQlt}a z=+Hm9<1eEylOi(Phzv$gs3+O85cJvwlIlQ!(79G1kO?Y(EKKz;wr_6I>;`)vqIi@` z8sr(1;;td`ZUOKnUTkV6)(Ln<$7#cg^Q&|-Z0b0>XL8h1gyO^UZ;6^n0U)a3dbS}G znhk8*Sj7=&(=hPuE{uo%)zu;ayM$;!G8gXIl4#A@Lg=(GU23+HJjJ2ZMPd3uZaIqJ z)e2Z>qrz~~H-kjsJQ^AjTNtxs!=9a_o}OJs7t)jPQ8HwCDvfZ%Ru_t;dfhWMQG6E6 zq6(Nh2U#Vu4Dn>>TkD)T4Ox+jGpiw6uX9?_M!M7)Q=nwI32KU^U4bK^RCP_I90{UNow+p2}gG&#lmk2 zU-T90W=KIs3qrbp5cfngd3@VfIEb1>#l<5jKx!hcfB?FmLSWHJlAPcDOxQ80*&>&# zGh^`t1Kcy{ zD}HAoyilPU{-`Gx=XVCRg}%Zm5U#OR9Q8)N>A*&UOxVUC)F6>0RiWvjZFTZ#?`}$! z@J;o@*Y$q_7^vF;2WM#1LUo|UTu-)9O4b=4JL80hNee51=OC;$pjr zoIq+0|M7t+U=kGcpU`;(QG}cLOUosiuTO1jbZM<4gKie`5~m~c;^?X;w4zdyCW9A{ zB_S?;h0C|p9G<0yoFoby$P(c}6Z^@~2ap?$8c2U&*ENEmn5b-{2!`Gqe}QZmx&&k}X=iTrq86Qy z(_b$(&?C`J&?Z#49?Et6q#98m51Wd5v3P%zi+C;NuwiAN#1&|~YRtC0tPyr1=Q>ER z!dad*rm$KBx$AWxAfP+j2|gH{CmXs&I4H(=NNlmGnFb1giPTNxwpa^pTn0}NYG#xp z1s)nh9eq&FEHTTI?Xshg-Ku8OMj~3J^L`p(OWX?zUfOS^Qzc&`Ryods36HFT z++=GQ)=uZ>jT}Vr(xoKXB2`LUH;ZR~COHQdH(FFmo3E{>ooBqCCYi-+BS=&88laLY zL4~g90aew%QpUpC&zq&wKKWs$VtoxndYLO)R~1h4gFSrbqwdRLZqXWDF%Xp?O$o^y zTF*=_)ElZo47I~5u_ikj>L7PBbKQk;k(!09%wpKa#(5M>7XY((A`jpxTD*R`sX5zs z5miOQ#DdTr8xl2x7$wQbP)4{f|LqnJRA$ij7mL@ZW~AWBu3|CZPIx!qM!ne8%>`-w zAXXGYStBMg`n)BGmA_4W$NE72RMea9DYa{yGc_Bo#DrREr(Vk`{kP*#oL2Pzsku3= z5hqq*Sm#3Qj*$ovU6r8KXz~%Q5sPULG^$h zwBlDrqtloM^(NA!Y$?RO7)aetCX1)y67=Hl735xglm0pfY%w~*J(De-zS2U#r%!H3 zzOco>%5@-zG&pyO3nDy$HGMg&7~38~TU#u+h7$@a55oBdz)Jv#_AHF5(O7YSX9PCP zkWw&_MPMEHN^@G$kQJkI#Fi~G1}y4~H1dm|S2%c4U-m*ZdjVXL?K|xYkwRVaX|^BS zW{VL+u{m5()CP9no)PH8E_t$r>g_(VIG%c?~Q#m1&(NVIObn z@mA<5?&--T&8B>FLE%lCL(d{RP(8}~1ktuFNYGWQ%S=1*;MFsDCV@%l9B76r`U3@y z;kKEtQL>X+q#^?}%$|T6>peOO_f540IH7smBOh_+7q!m;5@V^L)iQj=<$uqUp`9F1JuQ{ru{F+@5I=2U3QFNK<03I;);iv(17r2iN zy+aWNYR0Ef@dj#<4X={rvegVSy?Sw16G=0AR&_UR7BDw-Mo^~Jr>C;ZWOlLsJc?`2 z8H2SJOHS9t0r&mzlc>8B04UHFhBurj0QraxM;!zTSvj#dKiOOJJqr6jolHCBa&{`b zp50ETb7W-=-XkGjvZ)S7`J|m8@aquA8?k-}#^M(o+tM`n&Z4#|BfkEt+al`|Y^2}u zgfwJ#fEop65zaoM0W1*07#)s8SLILvNxg~16kx-mH#}qhz^yvQ_FYJWWZ@X9ZS=bqLgAC=NQSnOFx)P= zR6gLI?`tR1uw?vcCDMJ6U9NZ7#aunaT+=fW`yh?nq?&(LCZ8*RvzzI*EIrUjyg^YeF*E z5qQ%Vxms0}fD$%uk^fUv0oW_cvi6;yRWul-`GuHHMJ4rHV_A%4HWpTB}L`C009 zN`sr#eMb{((Gg6RL@vn0U(;goyM|pQQ4#BwLR#SNqVAM>8^9n=9_o!;K|ak^1&aCb zPUK%WT0BbM-Y4j`nNQQorx>;nGDj6GLM-kum3u7+$ z_Bn^Tv0H=v1{l1by^HSJ^hl+jBLQ_p?65FUmlA*3pwBo4Gfm5;dr2mRR32y zs+Sih(f^V(Z0;P`cfc!`Xg~|hwLiD7+;y16x4XesPRcWvno?MngWp9K(O|?(7=FCu zjqKx}f)ecMLaXjZJ6SD_ynqlmz7zN!UX@85(L`_1%TRwAOH0mVbQYDSO0{zU6pU7%uwX?RYqEPApwEg=hn~G0pIhdl7u0mr6t-|sb-9n`suKLg;=GU6 z3oMi&&aiTvB|v$25SxGiD^bE>F1@OFhlQ%O*EV}H^~hwy=n)oeSgsV?5LqtO)ob>d z9D>X+wbp&q&h|MXl4K3oGV6Z5w%PZEhZGy~zJ{G1q4I=-JbCntu@fFj<&s%aC_qF) zgSrYNccH+Y4Nnh{4j<9CbYO`1vOVAfh^jSJY3Q#9fTcp!1XnuSBy!xc>IK#Z2y~+; zdCISe1*(JWWZ_SdT4eW;a<2%r5Wq+qKqx{?z@+W+{k!{?>ef(onz%s&;yZqW6G`LX z1ElmT9Xq?0)cD50#nMpKFjy0su)!M!gpzvVEIjJh~jMn5#(KME5X7+6wZQ6CXT+Gb!wr@(M}CiI4S&l#Prw%81_* z`b7(;wV*g_)^+9*8*rHxUh0BHG#E- zT(lb_{Uk64Do$-D=%AVNJ}WiXRH-PtBIgZ$BsJ{WuMx6Y?$d+=HqbMdJ*`$fg-ezw znvbeA#3KGxgv#j%LN?@YfLxo&ZHhLfX3_m;0wU;!n|cEz09f+xj6tJSB)SP5tnk&^ zx`A2;(qVJ}Tug6!%O#1EwJ$0ukZ$$OBKB=52+zP#XF)0TWJXIbs7Ky#QUF>=7R6eY z5-W8kljQhfRkmmro}Vyo?Q7a82YGqWWILNlJIA~QB9ZNT1v}GL5L5yj15jlFzdXng z>6+mmYN}S3Ner%)9#iuJ)Y{^yl&>n8#ySTpK!d^zNf5QM3L6>KgZgON9<+zPYp6E| z#2dTfIAj2hpiw%$FiG8y_-ivb532U$VYFJqW-&GbRcS=53fn=Fdr8wTMPPqxi5Lgu z!q!w1#EloJ8VI@k?rS)-fgUL+tti?V4=R(64N5~+PotyN(qYGCef8H9k;8sYREwv$YPOWmz0IlY1%z_oUw7lQ9;QtT=`nkTwgF4nynN3W`2H5-O%OpMpGJ@Wv zsEsw&yLI^LS0H;NDT0Xg9Q6)?Od_`g`=dcX7llw8o-yXQiMF`W_OSD^2gVv}oDK(N zdH5RP9u%N{;0SKWz$xjy$){b|bIah0(N%q@|5lUgpS53ctpb-0{M_^kFhq+cPE5;> zz-@9+0`G{*rA_V`v2J4%%>Kqi>c^7$IA7Z$v~*k^oPa75^-l+Sr3WzAb4?o9z?35~ zjLULJ)^=N-VdWR`+;Ae4mCJK!TDFiN(u%-er1Nrs7XJ5G#SVW3z$xO27^cNzL3a&! zArcu*tDYDFj3g@Qk&ZV>kAf|c-etlFmmyWmtkCYmI37Sx^vTS^~(a4<;BVgr8 zhXCp^N1A8ALBcGWH*iqYc1ax;?g!W%aQQ*?!$>qts+qvSkT)SvyD^@mx*IO-{3F@} zlYHFECaE!tga|p3EIXd4%hClRK9baq88)huH4Qc4ii|o5f&~qhc!Sn8?HHR|$%hue z19$ukY#q*@f^nWs!cCS5c0lI13|rhdJ5COI{2yJX_yJ~-h|bGN&Bml+t4WZ@{~Ywj z2-(>|?w_-h>Ne087fscDtT6!Kok>@B<8!3u0eMMtKP*LELMQRaW)-i@y4Bn!`Doo{ zEqhYc8ov04wp~dq5*rW&5pX_9=*7xEx`aBil0Z)F>gXgmyz*v~eH3Z)QfH$lk%jO( zi{2z@@pb`>0FMC&WecVPhXJFiu}Hy`Xf&=-C51d10G}Yhfuj3y;Mws2TQ8^{QMnx> zi>?c%mZ59%X3(rnM-1z_nyWxYXAdW0bc4 zOAakMDt$7^wy#JoE5t*glHi=6{s>{#<_}Kd#B6MOd_BPgkKhgyWQqy+Xy)A;v7asJr}b(n^w+nj4qfNd>AB8O_jiiBdYmuV{oQSM^?2lm zK2r|kSBT;?3?IUq9(!N0hHn?=v+_{|$I>`Y=6wiqq9X5l!1-ZUkc5tS8s#sz!A*uDUF zn$Fd!u=+|M5Hkgh1gPiehykGVWw}Kw99Ay)4w&k7-|(BsnH+7SX)nPVy2;o|Nu!!3*>SNG$-kdm$K1#pC$k zUS!4749bG^LeGfcLJZSX_Fb6+)*h^4B;^4wDbK(II4V8^$G5=9(Siij7b$xgN7=NV z8}Nv_OocE-K>Qin^0SISB)YU=SZEk@34~Sr3f>`0wIqCk1k~Ay7M1%cvTUS~M}-xq zS;aAWxQ@01EU=jLznB6bNl>UQRhH% z>NqQ&l4>&a4s{$I?VHqb$s78`F*t+h&iPtZqp6Mkt+oHQG&fF4LfPx2JO91Jfxc#%gl05s;Q4PH~1 zTFKrqkFU7RqFnt+`ooSL90*xp=ptiu(<(EH9_i3&ob4=4Me?YlIqqiNqPy{pq8($q zPdu5Bv)nwVz8M^x9I>ks;rk6{_0C!7>cJgn~4; zG!41(sbNniuj{Nx7=X%fspkM~<6#JcBE+b2A%MX4UOly|9g?i}YukM9B3n90bspL- z;0v2Unyg|y`Dr)?B9|@>ECijGXZ56_hh=!EKFe2)mSDe5*n3y<1(<=e*=Hh$1={t6 zwHbh~Pm36wMHD-!)=IJwE!!m6(oq-vvo4~DjY3+H%K`$aV-%f)T&Jaxq{14VCN?*z z1xM;d-8kf*oTP#=)Qfu|R70B3sx|);Q~Nt)f>D&OJ+k4WQ6wWHwSu}acCyEj?46Qu zf0_&l!5eYsz@Pp1NjP&W^kfIa>DpyoVOUnMCxd3cm70}ao00AxiV4L5fE3UC6jVS6 zAW54SLR%e<80jS2LL31#OZ^@V9^6Z#^!;Ep08xUdd|7HJTXO#mut1s7qQYXOBg)m~ z_|u3iOViFI{+-Uy!Ik10;4ca+ibkhFv5(!4`W)D6?IqS!S3uQgMQZ(WMq%1h-8GW* zWBjRuQ%ki=)C)Ta z2KXmBt!-)!)Q%xknG0$!BkW+a=)j!tm;g((TC344K5}9z0195E7`o`p{1e4+Psas& zkw}ywi)_nG>KHn5OX21~L;t>Juy$-S`!@hUV+uAnp zMj2Y2)M0$R557;3f{l`aj>I6n5}kTwv24~#Q6V!DWH4e~N%c-kP) zXY{7fJu~=r%bI*6aWp_uqb@M}EqK6z9zkxbm6nA_giDC?ZazQAV2KJ*BTZ8I=C$cs z&J&EHXb(RUWEg(;_xrSoAnTO#yYP&5ffz-#*-=vUauq*he zV8hVhL(hPblUMPiXNQ79}Y3hpwMaWhZwS> zntFkB){BP@gOIPl4vwY(666TpJJb-xM}!)(T$1e2K)l*A5Cdjiqn!j1KBzmRMC#iT z>rxLA&B1)7Cm+4G4Ih)#?Q$JqKzs1Tt6d7h+hM%HgNqevigMFsyujcpSOzFVVVW@{ ze}!aNYKwpz{5FdB;IqL$S$Nw;Z_qqo-pIG(Bzi43)uRaFuaukq!~Eg(=XGBVCe7@bXr~)j>MGL@$j>Ssf)a=B$g~bY#YZ(^ zVimE$Is8zV;jYjpv17&CEPf>n3#;o+2?hs7=FJVHJ4O>p&d>4M6*AhO1p=dI@%j#6 z2)=+Dc}MEh(RTVsYtD-gNX^%*Vo(Wcprf}4977`)7#m)T10(Q)Y~ZUc=se{eT7M6j za_%IdF}bjed-C!>JQ0nNCNhr(u)Gj#!O@gIW16d~9n&=YaprfG82ujd2F6Q*8s0uhy#KQNR}AGgKoEgN#zO z@=z$Hig>cDL#rNL2o;;R@t?yDF{3VF{edo=M;63kLa% zIhq31jEjzXCrvFbXp??!Iv?4_(9PA|A;*TrZA2I5pw1)L3Ke91ihT9_`W?XzBoGS~cR! zZCGbFszCU#Lo?pNCY)qIlR|kVp*|%#(?EhThq53lC{QHKp zkh~?wQ7_J-hz8dl$T5c-m?6rw8Hqm9R81Eak~!cb9WO>PbS_@dSFO`TW-$W7Wr9h) zcw8d@sd(H6Z1RjT-chB=mN8$nD6u?aV%!CAu!2T!uFoO+*vtky_aUsHS} z=<}!hvgrQb zT~=6h^%)ce1a;9>LD4`_K~NWk1qBro70nBop@!GoRlF{?i}JXxmoz84TKRT+>#g3b z%u>M;%r{M~)b3VRvu+k@A$jBfJ@YJ9@9+Kl`N%%cJTqrz&N*}D%$YN1V8iga<#l1S zOd^*@7!srKgHyJ1gVqr3kiB^D75->jmK=2##g-3N;x8hlS|Xc&*A_G6%3v8#RE(ZY z#$&m;imMVbVcKyu+gJL@PtND$L6IuVo1Rn6AmL(0JE7!|N8JEb9~dS*(QDDFWJe#G zzHz|KZiE8^wuT=<9CSOJxodTg1lrZM1m9^phRJ+aJM0|&I_nBH9*_z~BYo2dAZDN| z71a^D{b?qZ1OJ`3H0??*fJysF5bYDdQ@>+6lJ@L}ORwM{E!^+SI43D-){$gQy_iUo z0k~Tm)?)i~Fy|_3mo!{M3>HUi+I9jMUDIT#ZZV6`jAVmd%gNjpGz^OSdjb$_9uoLO zH%|Dzt7(SL*0(3w1@~SdPl)XVMDg4J!{hB?dRt@iZTl=ZBiCy)auzZJm=&jiad?(? z6z$RCv!~H&LJOV^$DZb$+OvN8{=Bd~>yWS>1V#&J(0}v-9=FSbEO_(LN+r121r+ip z+A~W$VWAkH3Im8^d&&VB&08tdyR<(xMYJZcwHnCT)2*m_0Z4aonlz0 z{z=q$%z>}b5((=0c1>Yy6fZ`h{B|hr)WHgYOOdBl#~_d zM#ZpvpSucj%Dd?V0Qt7L@vLMYLd{lPIYt)=OVW2YYqAVh<41#14cZ92b-;cMof0i^ zx|%Pq2I45{Q# z!~*W%r}*Jm*1w(S8Zt%ziHaE~of+L69HS`V}MoF;7B}e)Zo}Oq=t(g0R zJF|!4nE`rawo@wGwt|(aAB^CcLvf=J6@Q=!e=~FaC%{OVqm}gs=(j*|XHuq7fC>m* zGrtgepq8eS|lP#{O4i*Sx;u^@GsyW2qqVr;2;;`L?^B!FiY!l`bMj0 zoKG(2nF%b;HI~Q)_0qow&B`3FtP7xbnG=);x>8*e%|L4&NQS{y9!Cj`Sf6mMCEi1c z8#UETMp%XV4!)8rA%6q)c)j8|4D2ksGjo~ZX%D(Ai_N@S@pMI+^1yd4%5pEP_~@da zeDg9Z70*TVUs<0|@dvlM;s z&m_D*u6R!2<^J}WPbi*as6F#Zr818o4v!0r_YUX(u&{JPYzRMR0T175xg(x+PapOc zZVLEMuukut&7qjlbEAJUpm~RzAY-UOKmu?LE9*`SxLqyzlz7&$>#LMyg~?rKfCy^; zFxcxF!nqLL)KnOf#I3zN(ZU8A3@!Q6c-C17eH2u&n<~onn3bEt`7`mXTgO%^X4FlGBE6PP>yLdu6=nAb>Y z`ID3tF??tjme4&g>2GAu{a<p}-)c;u{D0>uqr~!I0$Ll!Pj+LS z3wPn=Z^gcY;g?WEr$H@*dEf({aY+3i?1S$!XaJE%+{q=t(Ih_1$~wgF2?}NLcwh9U zADX5dw0EUgT*DKfPUEJ+rB;?>DBsTaTUl?zt*`h6E9)3_oQmDv5;TgRa0QZoRVa_` z&Mbzp5Aq@1Veu{F#obwaR0sY)==A32d`oxMC88ZPYm7A=VoU^{RIm95^Xl#_8JEXg z>dq1jzkkAGd$8US{R^deDLL>u<`-NJwuDdW!8#c}U(T2IU;{gnu_u=?nnfE5buzG(Cf>t0 zj4E2(gq6!Fhz{f3SjP7zu)$sI(=kWkWF~ZBSEP6t5fvd>(nz0Hp~;Qs5s9pi;o3BA zOJrSBrf!yUOo%=dd65=+Ry_D0r?IFB4`M+n$WH%;2Cm@S64@P{$81B_585p_HKJ7I zA~Q~ogyb44%G>8Cm4o=XL>3kL3UO&ielwAEG5qS|oqMrf`dB`)7n`Ja^QU^T#3@-m zR8IZS@IzRkRe}h`X2$K>f7WUr4Y7t^B>|rnQ3B9tYM;|`x=WR5(eq_TGu<@?{}P_s znZW|pi+wt{t<%f2)Z{iBnw?){Gerp_59_rZT^=HSnIf(L#0P_aU9aE76p zL(6zwZ`PNb)o$-X&Dq35l32IsLz^UMtg6K_tu?^An0J~FO=5Zai+p_&>oj%M7HHP9 ztdUxDTJDNg^K-e;QVoQ~>H(HD& zq!b`gx@J+Kc~EY_A&-D1v>ke6%2x{xPp3&$zy9U_#s8T96}hJOPEK0(VWlw4|0=QVEiN z?!{l}%c8U12SoL-7Uv$}-S3ywFNQ@E{8=xc;S-golF>;fppBGJLiQ4w;Nqq`Sl`6| zsOUMCP|BNR1lv6qVDN^c0mOiCENP#sI z1JGr7qDWN1NYzwD7th}8mlb`7d;LD`gC#j11jm1g{X$jp(3pd z?!fEJ_xA)n zfVt%9Q)l4H2D+bAj-P5|EA*~5Ng~k7nyhcQdK8Et5kdCKR2kK{1W(Bu?9nj$hF(2` zEHadn-b*X~IDMo32xN7#j@wgMc6+kZdpn@NCTNgyQp82Y{LvKFUGL>J_%ZB6AjK3+ zV6U&^?fbEO!!!iP+1+Bjd=v?(glWgF+d{h*CZZQ*N zamX7HqHA>>>)`%Q{Y3a7vZV~CqoKBx25HYIRF4oNOwG6hazyd1Lq23mE31v9P;(4z zDz(Xlri}tRAZL-!*cVls_=^KURH_=+B&|i=_!Jae@Kh$jC7U&gnuSdJDgaqLcQ?Ml zG~!3_dP;b=F z*yrouZuEbN_gNKAnFHr}nXQ%ePeO#?T!`1>{-mt2Nq@HK9LmQ*^g`7nXL4!@S|sb5 zcblQZv@TjT;|on6#Eg^0aEuzMgVr3yWS$M!RB+!S0z|Wz)-5Y?BRyKwR6rBytmQ)7 z2M7f0kKw}2Ik&4vHVg5DC5?4(iM7ZNhDZ%{j>QKumdiaZ5YPlRAdsL1e7VUA>>F;} zXV*Gll$EunHsf=%`@58H$S780SYfaxV2@R5F$7j}$UJnNEWvQOz^^>HlB7xmM?)P9 zOhi-9Lz-gd%m1^Y+nwu4V9`p=@I|mRJjurFbp;uL=4P>V2B1(Fgq1jGj_(u^%V_og zLdqU02lL{BJtMy(orOgo$2K>$w#u$2C$`6^=0ksz2QtJdAc_DsFPr+- zp%9j_|EKRI7?6@+-y8wK=4ut*J|ZKr(9D7ZkkxOa91>TGCqv6^fhm{76lHc{Pnv{C zpmPwRL(zUqFcFV&c%-~|q&@R0JmSYgKOSoZejvE!-9^_0O!IGpn+OrRH9Vw&lE2vN z@ER?K0KI-XGY#y-?TbfQB*#XBSqRTUeE=Q9Tu4~$hv@MB&D=Mb#YF2$foe!QwccHA zz(bnkxUf=wU@&$Z$le*Ju?+|YMgVW3ZJM!M?qJEfm#+bEbWG-!qXbB&nwxR8d9}u< zCT9Zj{5ed})@Yjw7OEEqz>dvU!rW;%qKqrmj8@y~WIjEEb?lFciTScyG$At}M2l4< z0FF}meWSF#W_#yZWsR_;CRxQ@YxxTqFo4t(OaHh^vR8sOKDCCS&UgR;N-c=63;Iy= zqeazJjh}$04Zsu9=q_(*p@lm6K9mJ1NGK`^T%>5WN`TH;ypJ^TAkhd8c5{i0zHULI zlmAVyprmH=btkpz3B1<}T+e(@CWPgq2r>a^bG_>_LB+ZplqU13GoEfQyGFPtj`GbR z!}o$b>f$;qZeZG4h--Phrpgc2oNmZzZFF=6lS6*ODnUCmbf9P5Pm5_|HEBMJFtbOc0%ukrsC!n`rAhK1HpnyjA@(QjW3X|l$ck>xTu^vud!Pg9B zd4{zs`H`V4)s?>zg1pF@>pqGTf~TNoteY%pSwIzvdGE>D#p?eV%LJUnp}o^te?5_m z0@dJCP@8ml6X=CUTDyKwEct-^pn3v`e!RI7Mtaa;of1aUAsj95g4&= zG__vpp}();uMJ~y#aSBcSpcY#w1d>Za|LUmq{WkbjmBu(7^*#udn!8wXH%q%vs&8wH#(AZLj@6RLvH0$9f;!*aAS5ASkl z-yYUjz?AcU+E{F_Vj3?R9(K{#rZXD{CxI-NG2*a8EDqM-rCv;`-jT(6#nVv-*iO&D z69i8i3{{8Rm-R4czIl}9AH~za^Rrl&p4~}6g3xa*1$6L94Z23VHk8R-PnJg`V9w=R zvsglh?Gu4%S|E_!l`Mv^lvdX8j{s<36ae{u0~IpIFDnA1%rP)?B`6QHM-uh2UMz+` zfOitY0N{h1qhM&}*5NRFhpddu}`<3H)OLuaWz1N zM%%aWw85afc_cF*6pJRZ4$EO(a3AT695zyaoWGF6y5b($4|7;t6J=I(m40@&Dn1=s&q&-!;B)IP1t4*jei~XU9oy`wZ7E_;dBVB!@-ynn&15Bv^kX z(MfV@{Cl+r_)$Bvx$cCb>OXj!L<=aRMxy9HNz?+I>3<|hf-8&U?2ru)V`9>4veP+4 zG>uW)P!}}*HHa&EE3gG|?#1<4dHKm46cU-Rl*kSUU|qLJx) zbT>$*v-|jsT&Oc0TS1Xs14p$w)Mj?dB`;Z`FlnQOLVQDeU9;p>lj=3-42R*pLu*lO zReuhHHn33-O+^@|a5njq8} za4xn4%?SQ$a)i=B^#E4tIGjgoIoi>V6giM*c#TF*o6gZA1EWiZfwYky#9jiTWNRq2 z$tYbmO46=RReWpl3~y|$Y)8Va&pgn3r?J!<*|Ibv(&Tc6mb$Oqa!w*#`y$&Y2hEF0 z-GAJY(P@*>ZY)f^V-v78QL)}6qe<`Y(fW?CSb%s&luDL+ad0b|WENgrGJr0}?dyqZ z#mTgrO?E#nV3SG~;RP%6+bTa^uw+ltRv$nNl@p_YHL^F!k3rL^7o-IRV4&s)M#7}q z>1{4XvcxVsPzU;jv!pH2FRMFqpU$xgi>5foQaU`#dyQg!JNyJ=LW6yfNv$F5+9h`F zseHjG785&dfn*E{HTDQG2CQhfE_P{Tu74(fdKBwt7&o1t9>w~Er-o~Gsbp@>XWddp z%>!xcMH-63j~fo6*D;LI;u26Pt+IM~m^U|x9+3nd7teL#CHbt6z8~L|4>!3p3;2uq zuyLn!<{##>nAYRKo-)jcRfr;fIiC&Ix8r>ZSjT?9Vzi)VG}l_i*}cF*j$Ydj)+B3C zh8{sS+CCJ63;6N^W;N_w#Gfo+X&s)QFU!LwRdcP2`@0+NLoLL)e15Tj#SBTNLTDq! z!bZp8o?vlIhO58?UtS1w52QdiPA5kvyJg=jVj@ZcHxrBUaidws$U>ljnx@_A4x9NO z8*g#fXx7y=t_+IjeJF%IO{g2BI^kDSbfIMR!)MxQld2&0_gfdrRy)luaP@Cy2=y-N7IsM~P2B3~Yq z*os%MmUdqr-6}d>R16`zg{53>VW0QjPx^rwUOltHYH+(tp_pd&RQSJ+!@?NIDRpPA z&>=p1Ia%DKPFpYl`oMrBIh};$22P^AX72UXmtlp&#iRhm5p*wTbT$O$H|@)d?1KSb_uLj#DDsRvHkO6m`?F zlsqbm-vat|^rX6!gYuk*O)POuztI$qeBmeqcUTn7bDyGU(KHB(>vA++$}tj4sW~Jw z5S5(b`I49XTUsF3_;JAm6{JKzA&ZVVa$Uos}b@#GyH2e3uRZ6UD{UxV|9@h8HM z;9OixwF{q;OV`eV)Q&1$i)WpwV(23c<9l6XD;qa-;bAfg~bK)w7J>s2ULC2vPH+MYucE_h^9X^1( zSel%1*EXq_+-I8NYt&our^AmcmAmPS(dyeMn}@N=@JQ&xBY74P`jce$VA(>fD2-?f z!d>XgYV3?u%_KF1{8TUlVwj*L*&x2uQ8YeG*0s3If|SV1VmCZz{2Sn0j`wKk%tl*z z;__7jsUA{13-GP1F$vqFui^vc3Mt1>iBz$ORUlVxqhT!2;G*wX^%jQAAr_7+b&rmO zGgpHx9p=DKQGP>c=17Mrb1ZHI#2du~S1R`tT)SC(0TW2oAq4$J$FjvSGKkYi0Y)jtTee*K#%YfxP`$0rgnN^4$-4S$ z@VmUQHqVHXCF;@AwcqLVbX!Xi)jr&a0OWcZTg%y7hP8syg4#LP83SYmj1vR3 z_O%2y*5(U226ItfirLEke&|PnER~J@=HuEwW3JM^Ya!nL#m>61%Y?~K; zLd}f>dJX(}3#>O0@(yfi2?1;RyP+?cxk_bhD2|_FkZ4;)b0FeKdN}ZxmVt%f3kzbj zAZaS9Bu|hE5Cm<7Xhaoob5@Ut^z~@dVRfOo@}lCY<~2nub@CeWv8VBQK?GV!v>`wR z%{TYAz*~+PccBAH5y@aOBO~%DUW@4!GY}rL=@Gxl^otB709MorS@@UO&5f$ua?-)>) zs-~_{)xj>7BUd?W3CXL6;Win>b;S8-F&QCNz;CNCRytru3Rz0T^hua_P(J)LeQ81o zcTG~DhCucvSl}Bx#v?dfJUSDYiUWTL4uCj0&zqbxaClS#={Sk6p2#}8N<<@;+5{;4 zba+iX#2poEKvN8kmUtyNxElVy+Y7(0Mee#J{~T@4wip14K;EfpB?VN)f&>Avb-M7Q z?rWH-uAabvG*q6#%|dMzPbEIMSDV2pE9njzKqg;E9IB2iU5i^@jSjLHAu>v zEBhcRBrg(Yf;|l=S?YD=wk`E8Zu>l(wZ5W+tF=RQa4N!McrA>g=Q@^R(-3!dyU+E& zlTt}*7)hNH+5-y1o*_7dct^ZUdyz1<(9!Y-WiHY-kb^bn@XAX{o#o0~wZ6ip%0mvt z{Uc8-W(qk)^zKd@qI$O-3cYyw?sueb;^bBjSjaI6`dl zENXO>0Yz!lLQDLqUK_WULF6Ry7?!!*#$(_vGPG%{+iqh>S$G0+nU=aKwamoYO5v7RWrW`mS9VIDno0w3|=TBx1V!cGV7Lc+qI#%QQ~_Jj8fq$1e{*{2pb0kOAfBJFpqT~P6|{53AghnH1b=M zSr^yOx8zc&4gn&Htnp>0y%v$fTcp#F279@8x4Y4a9e5cPx*ho{Jj zw4F-jB}hC7SnBbQcyy;>oP0%T$bdUSK;lN2$5n`CB5@IaY-tFt4zGNU_(kzNg`7A? zX=pfPR6N@yC?kbefI)792|Mt(qeQ>KX28=NSZ+(2qb(Fm=vWruEcBvCXpu_gBoszv zvtTTOMo@_v62wlTdv27<40=IUo#;3mZNb!%4OxY5OdUc7ET~k(E7UirZQhErU=-z` z%R&vLSOR5d61;htK1ama2D=G5NgQE9CuUXa{#k zHg5{F9k~}3>OMXPC`I9GDILSlqC?C;tp^r8)J{73LH>k}`v|O1i3s3R?Znblnbrg6 z^9Y7_oJBoCI^HO8GhGgtsdY9pK*$zh-P~_C__k{^ZUVINZlTX9O@DosQ%bUUsMF0R zEHD*MJz9x+BKgT_tbO-nJSK=7OnvBIwiLlmQn=)ia7SKX6*Y;sn$F_;?|!_o$$idp z^+fy;=v2s!tNk{3dhdRsv8l=!F&sC9Q<~&+FIJ!gi_e(O+S@G~JRy_|2)Ed(46+i3 z$@h9pl=Qro(fNS^*_5Cp6)Nms&_v=Oo1`De)4%Y2)3KW#Cx%^2q76uDXa!*hes-yto`AB}e5YG!%M*ls7-nGrY=!qTn>W zlGb1&Pa z2+z>grh~5z%&@6e2x)N*yp0BtaWc3}%0aM_(fmjWYh%d+K?}lj;=(6b0!lOgr!@HE z;aY_Q1CQ~B64t|@T;!eaX3_aPk!&4Rp;vhz4U)gy|py_>ZgTy#5SA~;wQgaCmeSL**fN`-cjo~iSX zf+H62X%$aRflfGD)_ov@YDI;~*e?7x+ZK{?I4rxC!! zu41qZx^#1#99_k7^AT|Fn8I`Jg)i*q$9Uzv%+hnqL{vwnt7lViPeV?q$r0^yyZ;OE zXMW}%-pk_pwAzLq(1emh@e*ibWfN6HyMc{jECAr6)jJ^>b5`M}yn882D>~i=1YeCv zH=drLiTn;91@du71*Q?glg#V~3T2<+5EU){jc2cuK4R+3F(PA<*O`ntd7it`fz&+j zQ2tsen-G3BXe3(7mD$+zd}%iCJDUwM{IHnMp3UwsBqZ{OXR~gGM=tRFv)Pcye9#Nk zgAFl;h;zhS4&G)CY`Og`yw@Do%h1!zC(dE<`fI#=4t8q38Y9i%$$v6KulM-#b6Bon z;&^^(4r||M*m%&QB{;DF;4m*h-lgJ*2KesEN#J6F4U#S=lfH@XPV)Y9*-M7VG5p)P ztgqp>O+4a0gsgZ2Ab>w;PhxW)-v2(hs69HGPq~j}=oj!E_rW*6=Xm}mUJciZ_?7!u zQOs_QM~Ue&-M>1;%%hkLn)FNW;w5D`o^rI1ug0(PvWC(kN!u%T@;Ay@e^$J#Mf!y3 zrQ_5I(P~ayU?d+mkHsVnr>u3F-vkktL?DSYIRp|!HzEj;3em>yQOXJG+n;vo-Ya)3nhSi7F&CSj9+K}Mq*1jvJ>q&kuyz8J@^&tv@!lt+60W=NaSzMXDNm& z`P@IB4QjJ5A47ylk8jr!dEW)BQ|sSG%It`7ET$y#;sq?R?KL_hG$9pkK6DRPs(AZD zzHI^PJMcpUg_C}@GFG_%FboxY@n7eE2Y)x@7&9G?_L)w_^B}6oT!I@fAyxd9{OSUh zX^7jv2P}jvhz#SC7GiO^63A$F+)WU>(Pq-m;fdh58?#Y@=57l@ARG8gP6lY<_B=E; zNAAhel{Q5PS~?jGpluu}Bpmoo*-2xPAduN6>Dip)PJ*z?$~P{AV}2HYZXvv^@A2`^ z7UF2tj-H$?LR-Je=VKPJd-bV&&muOh?dkOx^b?3Jl7NmhG4LqwwisA_<^w))F|&_Y zhPY$+fMWviKFN_C3BE0$Hz`i>-AYpF=eMN*Nzh~-@dOqK1*7;ki&@TqJ~j9VSwg@> zRCh`1Y$?ep1v#a<@C^tix7%sQ_L7xPzMmx;o*T(M_p`h82L9vyU?nz^$1Y*H`bvJ! z5_D`v9e-pA>+iB_A*y6c^GE!(r9{6wx93f8BU17k+XS;6Vm1FwtT&l z_3bDQLc1MB&4eEdneBpu^JqN($O)mitQ8M9F;BexKJUGhB}Ttb(w#gXh>~>3jp`Hs z{({e2$~yKQ4>2b7{2u5u?Y~8cf6NAoa%qWYrDG&8l`=GI^KAawQXC|?b24vS%KEk1 zzZMD|o$`O>Jw9L=28cO}Pg(|=J)X@sEn_1MHJ|d&ma+6cuaahkZvH)3qad7ra!z72 zPV0h2Ogqenm9soc1Ps#fPL$i$#JuIiS+`fco&Ld}D`y$3jVb|?dW>x`TR(oeoZZo5 z*(WkJ_0Q6_)L^I43fdI3h}FA!?sAsK9{2`i!T7r-Q(M2!H!o+_wquYAgxzk{nfLhN zvk(M9^bdsB> zC7P?0T8EvkVT{zTZ$<@ox)vG5Oc**~eSj!oaJx-UbG8r*55b#A1b(JHt7g)fN3({kY!>aT!GmFtTuJhcLEWT~c z9(2fFD1JjDNIopQm#+Di5YcDAd>2MrwUsTb}2-@zE@&;x0Gp zoZ({sHqzJ8X}g&!-GfT~B<<1ZdhwrF^tK*BP!GSu8&fgwM>j>?6$;$`4f#_67`#`42F88=bv@+v! z|2~;d5)vN$<9buYfvbQT#&7Lfjb!4ug4U{^inziCjHEZ48PU8_lHMym<_p;W!3w!X2#)=dH;%db3 z0!qp$|L2-f(kQhS|A%;+poJ)H-HNdGa!wFyryO&gu$_=qGlMZj6hIppf*<4=Xa1_7*Ukcv?SgBw?ZpeoZj$M9Jj7zGfj!%RObgH z_@=e2U(_?RAob9@I`Mi3^c?#SGBO4~vz8^gUc3rMf$#&skl}$7851H`(JnSlf8P-e zt3>NjE(&9Y*KE8(pqhLT(2z_OXd6j+(dKTb*3&9hXXup8l82GM6Ypu0a&s zg04aib(b^jX8~|LAXiaE{}5kZ#V&?j&W6fYI6cp{oV>A@MKPu}NyJuD^pa+4%Ry@7j=WtqLh_>-0F{@7I5p|EyD98{XVdf*MF<;z&CU3`Hjtz$)od;Y~ASckdE z@FV~CI(CoYR637Z&q@vVrE}MMC6M+2wQ@-(JNMLl6akS65+qa_$cPRTUf1<@>T5+92@n!%#RtYP9MsM7!c3 z6rF8&ipmNM4;9HJ@2b#LuHVORsBB(% zrk0%cGGDxbO)w0L;zu^H^y!6&nSfgr{J)Y&f@3B2Dky3M+`}-l`rNN;yk!)b18H}b zF7osvCq}c>bbRh}S_Zm4fVc?^D^Fcu@4zZ@m+%>0;O)>PzS+y74S5&%3tsqGzlSo& z-QN~O$g|Vc^>B8aZuZ-Q9k#{|0+0!eCqp=aRt?>7}ReT z0rS8X7G)Qo!QMI6n-a3bBrH@r#qK+A@a&DOr(vL<&)>)vyLz^l9Zyzkv!HK~Ma?P- z0fx@Jg5Rll5;!=h2Obe%NtpSm5^?KkE!#J+0Es)%WJ=9g6sc@1rP*v|FlC>Ox|I5Y z*0j0`@QeaqMHD z=wFaN<|kgY3FLb8WxjV4OEJ}6zl_mVI*?!5#5$P2>Ovzk2@Dqc6mPeg^&N26Zw*Zl z2B+lwfkhY5k`&LBea$)d>>|;sacC$Ci)VK6rJLEb4$ndvn?mOl-Xpi9*1)2x!7;0kl|QzvBjr?*tgIr_W=)~a!n7ppnoApPDu9< z!_Y~Xw=tIGfJ^6hZDH{v`pb$wPW|gN?nv>ji4H>C3WyXe6u^nAuy;%*pnIPLrnD*# z{m2h)VbP|ue^86dQ~5VrSYpf^=sTn<_#@C_@4{$WivmQOA9?&%HpMXaGroE&&L$t2 z$zR&a?ii{gLogjl?tusI1X{O7lepXXgXExS^f^acouy9&c_3iy7$Ya7edH}bExv25EG zA|L+Y`mr({JRWF4Z2@0ewO#pl7NaJlK%V4nFd?8kLO86?ScIJzdFaYKkKetWMUNf> z8#*YJ54MsQm|0L?a+%E(i94)+mJl6SE3Eq&6_H^x3jn-tS}+btjZ^3ihBV9@dCCL& zMZ9)9>l=1*A~JEV=D}LGy1|$cH?{y7ntYCJ@GwaiJikb?kn89!kxVyn*3wK=*NkpCYR9``UyivQgN8+2n^+$rE$g1RV{0Y#B%h}F#6+voGS4}(ODG*4x=$~E2OLnqOQF+1q5>w69eeet4zLQy8Di%OE zWSClIZ|QH*40s;+AQx;l0ehi_v*=OMO%m%$<$1~hJm#2EE{b{BSE6~;1ZrLum+|I* z5B{pereILw)3Ujy1Q6OrT&J(s{|@paPLukpXmt(<1^2$q`#-|^x@Msm#MEpoTA;C> z^KYPPz@sJOu%&YbPwu$-oNF2Hc_u1#UaLsW~hYvq_RRlwVCLuIYzMb*Yucis1s-A^7=W+yjsS zirzafeHHKYD2wj+1yTtAa$z8wdB21;s2P=c!CXyc$gY+l0Mb^(S`0MM)H zZ=r6tR&mRdY;NRsO5ARJ3_q>5%RqY0T>kizth;R-Oayxn#F{5KaU|GpK^OdO`e1(5`jd{5(f4|Px(2Xpp)mmtkrV)@BeHsznbfN_OLm>KD(Hn_hbK8=YMkspxH4iXy`STBIt^L z#B{#)S=J%EH>!dtyf&8adX}}%XiYUsgqAHr-4Fo~-!{ZotQSxGfyUB&4>$Wl6Ga?I zRbko11@hn+|0mOU{jZoz*1-OS%!x}}*BwqMDmgdl;<~`5u8F%F_Y8!EaA5Z>aKVz84zETOSS^cMw zOmc|)^>nyRvLP!3_bwZ~b4^MPt!crBG-amHS*QZl#9z=pV5(l)VnW*akPJh&Ck zgq|LNb@efMk~`&M9r6=Qe>zg_fi2DNpkYs{6Rkkl%`KE=c~qIr7zuWQp4Y6n`VGkB z#0OI(WQP0@Dm7Zae~PZ3uFPis?*gZ$Xi%l+9{?thPTF8I>79zWFQ2m)nYCATK0HEC zC=b!K!PEj@>QepXinKguOXbat?TolyEdVlaY}e@I(_duWJ7obT`Ai>3xu}}lM~x7T zr7Ge==0TgA!gsyMV*4te%V7dJ--IzyS_hsamHgRJv;-v6fDRRIuck{hL;YX!CtqZ7 z`G>JGz|caOH~v~?D#~0varKl6w`!yR5gKBokU^{TR*=X+sOJj0#Ow=yQ&X)@4@@qd z%nSd?I=Yh4FB*=x-+R&rrApr#<&i@OyI3)-uQSA5j|--%H74i>nEomh4>AGGcfeFo z{f?xs_x<^m)DrnMjGEd|jIRas6&01`niDWKao-AI*`PXj;GggUIrSB9_YzBNecxA_ z2I4sD|6(#9`4YAf$Hw#ZFR?U3`*>dS5=_HKi}}r$u_u4ahs;`4oK2I66 zBsF_eq1a9~iS5>NNT!^8$-h{kVexclds^6QyLtbIsd(?tNe(CE2 zVI{U>@5ui>6~-H`>@<~FvA|pNDIfC+vyKhN(ese(^c#T;LhA-w$n%Im>Au!#X^VzK zdPkI}y1X4`^K!)DnF=!s=ALrQ0G;4Jdabo@qn!B_dkwIfroxJlJ&PZCg(aECe9^4L z9V^=LDi#C{_wWv{vW%9iU~MOz=lKczu2)$vW-p>4?jNT8q!sapUS-|e9K}w#yDlLB z@#}9<#E-nn5_`&t8XSfDH78;8(u_}Z)Sr+i9m~}t&OyM@b{_p29JB+y?7s2@HtE9y;f_ou-C4w%!l`z;^^D4%XwzPr)2%&H!9|DdmIaygyp$DE6UI)S^|v>)|g z7B?!RMPSB|Ciq6}$F#0nI(`Ulj?k6v578~n!()@HbiYxzbjaEu)Cyb#f6;w7G|(Gu zGU@h{X%QiehMV!KvpEbQ2K7?uNk498^36l^q873m^}aY476#C8kX!r<_6eCAF8ErK zV-(s&1{mln75E{A0as!LZ)`syexnT$Eh{cE(vlq={IkcSgh8#N`3&=X1RNg|Yt)aV zCnKe8l)xe+XcuDMxRiCI+v(uuH|3t{T%@LESmR-m3TP>fcc{+KFmf5qu0M~FR8pHiKENqMYVe;Dng zF2M&3e(gJ>(ff_`dIlY-zyny@N~GiYud~5P17LVq)e@Eio3cI;&nQ!l5>knTHT#0b zqS^Gt&R=_-S>hxw1YyFc7}P6qDhAib^NX*u5z#O8qmvlb#9G16dI2`A;(2>mcFVJm z!l$tY2(RKh_OP572@i(^mNK>G%5ME(H%2A}Bihb?+rxTwrOwlCb2-LUv0SOzRNAL4 zPq|oYYpM6I9LsHQz$+`GiqCq36|}jy9`@kFem8n5rm6hE8*H56=4u}CCd-U8oB}zq zJOrprZH+!<48QwL*0bAn7z_538j0EQwni1%5=W?`#vrj?v^4O4zRBWx-|?F?L}E#1 zhm$(yLOC<|a${6!V6}>*uA0L3!DxQ@O*X5?J)?oTz2`wTWVWFOY%D6CUkEDvB)nlL zClU_vRd2EGv3)!Kk5*hap%u6IyKk}nLziQMF4sBkM<=u;B3kw(zQZ(%7R{%sK;2qf z27+dYIme*CG`4Wk7PzGpz2k{{SzODyT+PstIGX3}Ws@O^pWe&5wTr(kqK5#C9ZXck z&+cUdddSy2}fa|i2w9+pC6Rssgvbwbqe_@`aW9(~h$P^vv`J{@-OV-FC{M%8o zYZPICww?)~Xo-Ch*)Y$0`09^C>!_zGr@V`dUK?+E8yi-${uf5)h61DW2qNtB%A1oi z(oZX%hlnz`IJS8g;tt@WHa9~bhzHQ%dVD$xYN+@%SX!;G%FO_n1ZWCB9M$mMk6NK# z0*$OKBv0`d_Q5sCzgz2rRaCD68v>}iyigCB_QR|ke-*yLdQaP%%;&a)8v|{8?hf=D z>T_QVZemE8MkQ4+&Bhk!#paP(r=hH4dy~AvtqrzVAnYn3744u_cx}d-b9~f0tks}# zgx`9x2d5%3Td0SfmS7%fAy5|--Zm1Djo=pm$H}8g_b9&g9k$Hn|3yPMZW2Ws=!9+g z9I5`Ni9P>9mp~h@A)~xxjZ#q_s)OQ< z)+a6gu}iQazU@&k1L)K(9&N&{R)n2B+Dfy~sGguLX85((%<0MUuAO_`8kP1(pa~Uu z#U{TCaQB<==KnYkH9&iEVetk|mOO1H09kaDQZ8Px{(|?~KVQ{=1dVZ@9L4K)nc=oI zu@|+LY!-war?KWoW5_aAwi;GCI!X=4QNo-;7DGFMB)f#Tb1MlsZ#F-=pY@A=*A56Y zB0@ihRszygloVg}KWpca2Vkn5V&@|cuqm;gL4Y$Kvyt8vvG-d8{%k3QF?EJ}ttY6FpT%)Oth?jvE zv`{l#rKtSELDnm-?nU4|*k2i7GW%m{IC_l{H|*3X1#hJ_f#XCMq9oB zHJg7r*xZ)r9DcT%O^bN4qqg2eZT3{f;~2s1H7q3xbhfEArCwWT2o5OLY`;EO}~ zrW*F5{ijHxbOMyLN2R_1S`{mAjYF(~EEu8Pjb>%@wBcxW7EYhQ9S4-mfP;1ANJ_&j zRBOu&@n;U_YYwqH!b?wKBmbh`IGn$Eh*|SL+pitcF^_;X!4?A@9we^Fi#4i+%wLlQ z01ygDB%MDujmApk7Ib^{yHLCFk_%I#Tr&9|%HrMMV>uDa&VY6l4;FR>tT3;n@Rjee z7`=->^d6gLuvQ5n_SN) z{b5-=;xLO3T{jFY`z231%(_KHBunO3Cnne0JL>&ohVgla*}aBspYx9ovxL6C0As)~ z?UJHULk?E0WU{yuYa?v*U?q-qq|rN?ff2=^u{^PsO?P?s!SJwMGknn++bW!MksW=Z z_O%-dTxfbcYSh)))4(V?)ecdoJY%*zJd3 z|A`@z9yCH=Ud4JPPfpQv(#>4uZKto(;n7qZ*wUYxGX!6?Lqu`8PQH%CE@9|Amx( zcC4CAVj^Xew^iEU7UfOd(qNA@IM*N?zlIX=BH~DEL*xoK9DzUbiWa=@5w@)Jls>Yg zH*77OG@vId?#3o(%l)m<4S)Y3{JkS=j$zCI-sc0{Vm9L~zU>2MH|!tGzxaTSGozVJ z_Nmn3hFqR@lnqJ*9yg2$sXD42Px+wYJLU+(M;nZ%DW^)W9wr4DetHzK4@9s`#f9I#5~#{aM>t~5%9v4MmQLWmM2 zQnwK4-FvB|&e6`j96lSZH`rsV1r%lXPkL;$%Ef9$c?eFxtBsy&M|*Ey@YW4I(2&Et z6A(}r7ez{K1y-66*r;BFXAGe(*hFU@{9xdGmNeOmY@|VCW7~%&Tb#tu>>y_4fIV6h z#5i9F?JOLvK{k_j?T7S)ql;Uqg;a`63OIode#BcslWnShW*WcxAJ(bM2uk~V_ZFLB zGw~X?Kxs?k{Xb+06Z*74yQL9OtyQxupj;RL`+pdORTH*V!?R>^5)(y3~PqD1ddNWbQL8|vB$mScDtVYr?EK~#o zCjagfD{VIyXU8CBC6i;F;il!*T^}RHPUpL*$=EYG6EGvgIRFsHr|>5~X2S~}48u1- z0V$w2Ri^cWenU(Qb3R~*Mcw3NaM;;7aKL9r>@M0Kqw-(wLb)}OGyyrn;j-5#Y*Toj zPq2U0faB3bSg8g$BP!MmhYkHiia(Z7R zehRUn#~rSoQ#4A;!?BJfRV>ij795OXKm_l4nhonA*Vo>1Gn})QnQpJ7KMg;ut+Rm= z{YNPm`Lffjv$YTSEkO41H1D{i^h3(#I3#35tZD6jXI^h$L#b?)%-=rE#<2QuYEH8t z=+}owoncua6PvE{yUwuw`nUP!Gb}lUZcYKkiG4^yndujj*$5#9H(N-(#5ZtBeQ=sQ z?4O*(>(8+Hnc2^4n02;?okdU~XDexTe(@lw0>J|Q_s}FMuz^Vm7mM4v?5}Wsmi0>X z;1ftSx<%KZrU25cqzkt{MsImM4{g%GTl`mlfoq{_~ zzhs?z7F0qN((;R&Me_L^%8>$c9>4y9gqZV1dc6$@v-a!TCyeW)EkwEBE{$*)14-QNZ$Gz);cvGD=B{u0)f-+%|83^ zam+#ukn?5@xCPCXd=HNd+_g348`gKk&l~<+gvdBkb7c`orHRmXgRN1+Xk#?j=zkO< zj@sq(R$!o_JyzegZT#RjEW6cPw0?w6A-+1t+nj@+>9t`z=^Trn(xpGq7=6rs39-vD zrpW6meJrlCUGD>;N&I_0=>{>j)WWWHDZ?GSWNt<7^?#&fPeFYeeipkCjjVj} zK5+cUw`kxOlVLkV_Y(gO=i|O-V+>b2@~6JXtg<(sfAT#WYj|@M?|z>3=$wgrMREc= zA(03ct)I(r3NkDfWTg3V?s+z**9R|Q&@?(jE7nBlfET1wwd6tyO8YccRiS&_`v?E_ zJnL9espaoR`5m1oqtD%mApSjjSDb#%_2)pb2go8C)72m%o~iu=uLHURNuGdLsLQA* zjWRtoir@7EiyQAAB{Nr0TYiN}SbST zgAj?Bp8HA_6{`Ec`OzN`45Cq-+DFz|coboEis33gKZb#o(>ch0fANbUrHb%pYyCgwF|%uD)rhsK5uYFKCgGSB5~Ub zOIz&Qmb%AuOfevV#G(2!Fq1}+d~s-0CRNU`pl}D6u_9qx2lIhm!Z?!e{E;PFV(1&K z&!~NHA(D&;2`#rhjx^Z0|3}s(XWOG_i5)HZ(LYD)P%%1*A*I9QYE+F@bl3)&aS49e ze%48Lxfrd0t>#^8g$}(Twix{rc1^;u$&bK13nG0UZDk9k3>kpY0$&dCM!7r~;)Dtz znsy^^jyX^kR5MfrW5o6gvWo(Is>{*l_-mlPpv2?PV7{GiQtJY*LJ0i?Gp1DL$`N*y zIeOH=2BzaTe}ez|j@`VyVCgW?juk9Ai8#~MI%A`?0uRc%UM~TKHgn)TTq^%x6Z)Vq!{wpvGp5IrgyxyX37UgnhML)h{SqTA9GC|XY{+C zm+iICZf!_*dutM%fl@Y`P+(QK8}wa&Gm1aOS-U(BSe?!pH2Wle9i>$aN6x=iO?yX* zr-nZM&kBuv_RqLT?IhyfdA@v3vd#*={b!aK{!i^~WR&zn311l?c2JPdYoc|Er(FlFgJs`c>OTUKuJBIvSlb_4z>Df(cs=CdtLt%EyzRmu zvMaYzN4%N>*(eq-(9#`kH1m6-2ziVjsz)Hv#2Tzq*3*iU{zoN5BqH~~nIY2S3 zaObvJ3qaZ^zU>PI6JnE^tdBY6K4cJ2PYW(-LTSB*VO@lEK%;nzazb@*H-?hkz|a!s zwLR{_L5LQE$ax@<4d+kAbJ4ZewRsFN$<)T$+?IOL>kxS9A-?hw>p1UW>O0IWjS?kd z6?n;C+7@WUgz4T(l0(0SZYjWhyw!itI*zht1he|Ktp-}XdC}MuuApun_vRJgS!xM2 zURxoi47j&lVtEmdBO`n@oEi>%A_%a)$KgzdUhG$1VEW5zdu4NdvcB3~BKFM_O zxftc;4oE$2Ny8NH4p3w0xCUm{GdX%qudG}gf_1;!92fjXoe*!|{yH9CH9XggsS`A$ zDwRW!N>%A9%3HKRI1kol02r$G?VD?hu?vgOg~ah`br>P&o=$~fclB~2xg%)M`i0+j zg;wm#`QumMk*tKpl-=7ckom`J^|O6(>-jVO^z#q*(&|e~i5gcvMBw_&u2n5Fju) z5FlWX5C#koAi*esM4jLy88ASQtBT4hA_}@uCm0l%xRWTuINng(-SxisdRJU8ixDND zB;LjQb$4AaYY(%!h>8)>e81{*CIsL2|2!X$X3ja?U0q#WU0q#WT|MK-?f?%2QuOI;e7$FPFyq2B)?YwUst&myP5yBDWvO5Q2H(_hzDm~YQGp2FPoWCOc#jdT;) z>ZAhXm+9uk(#;^@0yokktJQ-2StFJhX5R3Sd~c{hTNddOZK#d5cV(B8;ZV9$PhnSA zwnb$aVvQXPXno)h9H^=`?9*OtbRBT==>Z|e(KNMtKbyj(m#F>w@$0?*HgHD?n<@dl z7hlqU>zALQ5cQcPCV}LsY$z{8pD2DSWoUX6w+UHT)t?}G1IIL19Y$6c8eO_fp6(2U#fW>IGj(C zHHt3p>1|%$*8pOai+dijxL+RJCDV{2ix;#bix;PI)fp^e*GcS~=C`mdZH4`ity6ce8w?$Nv8d#pS`xm(+w=x0e%4;n1L}QScGoYZXp|mY zB&NPy^>f*8^u?O@QYdzlR2hp4fb?eBqK{ve7JXJeMoX^mG}|;ymjg41vB?Of&$iIU zUCDmU`=9M;P`t4Z0L)!W;eyD{480lCcA}Awaoa9b-1;;xuIP{7JqXvxn8-ujE~18& zwRmFhmD33NAFN84;iJ2>P72cAruQhrG>{klB{ti$<6oZiIax6a)!HnC_uK;##F!}| z?y~M7u-I(ADIAjtH{>OD(_B&WdPde{yXp(#k^TJ+S9j%?RKE6p?M@Ap=xAHX90 z>UwCgNNwQRePFYC^Z+yNs^02@16gB_XvK7v>|OjdRskU-biqmDPM#9atK6TnDtq5r z1!P29y*mHrtVzfEo8Vg8q)8+DMr-pr(Ksh%&~{FyFUn1vidDyeN(|$p{gkEN_&KY= z{ZyrzaWL!1p6@6uVi&6m4rYz(IqNELo33s<$jQ%N11jy8tigj8Jw-QgN6Q~=&1EZy zC7w`)zhK_KSNe7{`RkZ#eb4B9w@@Tz{?gIkvF43V-0{nZ=!N3Ie4M(wGwX$= z<78Zmcx1M9=?~t7ejU+0V|DZwNJ9(T_+sKR7A%i6a1F)~WS4~UWIC#pqD{U=UXlx# z?vMH#2Yu~n#snu~s@w49O>I{G&}Y#pjTmuemihMO+AH2uX=&DY_wb%-VwzRx-nUyV zNwY>QxDdNm@(7yePl`(jMxICN+cm~FZBe_^tf6T;)t)qKjC;|$YJl51wf`QLd$wMPjem=}%xw)ToM=nB45w(6 zVb;oNJQP0^-=H&lmFe62THbB_m*C(zD&19j94Z0 zSJkF=9i8P7tdHc^4?m+ud90}eYV78EbY>ssy$*d$qq@*zjr9#I1222EUduc;AJHC+ zR>|B|5M7v;7F?_6{#QNYv2usM*0c}JYnBVChMszu)7mF3>U)nhen3y>6sjpr7u?aJ zihEcEV-Q^Sg!J2m+Y(N_CLR@vM;h`}xQ8`la;bbO;}b{*3!vr!_RRsv{1<60ih4wr z`}O&xh-}24`8D-o4{KStA8Q7X_eXbCAgMk~oZ}QTI;wt*i(av9);J&awa6i(&Xu|-h9B}e(eQ*eS6Z1HDmq^fiSh=7Q z7haizu+_h3U`Ae{+ZxX~t35ec)FB$s}IQ#47j!!`kmv=k~QWy8rp0`mV1v+x_&l>cmXzJa^%B>XA(A=*+vJHSV6Q(Qdg= zeVu8IoAPJ7sTn%(E?v7<-~RwsFpi)}-CUa;F>%xbL{TEv8L@eK;(l7>jsH!}?q?0{ zeT@{}tIv8s)%CMROuA?BKDevCKjpWV*p0~sh;n${8N7-|BF=C*rE3nxyT7-{#Y zXZl%HX;YNDzvXk^nWqZ+TloX;bMT>*Trc3!%!8+s;C?huUD4kf?0)%e^~e5JW!kgq zpZ%>P+~>Zn4pKgNWtuH^yUG>4jbL4QUs~w&cw~zU=RCO~L3BK^VzQSPkNlOY?7LAT zEj)@r;CZK#&)-swUTc{9#yoYa*DC3E`E>vrCb0Fsd)42)R$=c~ua=>N>$Mt?W%=FS zx77SBYf9y*b|mt`Sfhx-D5LpE1&7$nk24`2q8y5nc8w9avdN z2nMcR-koI)&iJ@NhQj5Kt8cQb$!XWBk(O0>{4$ynk6grGZ(uhlZ@S!k*i8er3(d{e zr0A|(*GlC-KO*Y7bI$y%bt-1jsC%=ZGVt)(uB$GsR{ z@oxQVDcdmm^@B)>E5SduB8M7s<)}Jbz4L4p9$*!@Py1dyHozJje)kx3Ky*-~!J=Hc zq{nljDwqTA(=HM+JEP(5vt=}N9d0+0<+;^@#~F_qJe~lLrKr}+;8nbZ7-x+oB3(e} zyPLqrBlvvBXlef1HWPWpTVOC{Y%#O%GAXLVtI<;gV9B}SFb^Aao&pn_?wGOn7 zWe@qsfz~YdgKerRo6o(P)QW7Y#J&4%b$hlo+&$5`w2Zu+}gBIdSy~h8ZL#GUKy&E4zh-a{SItC z-8Izk-BOO}MuCmRr_RMZa8oO0@)bDvTx^Qc$5)N}rBe^N8z~x0i?V8d5w$w|kD?Fi z3tMS41rcApLPw?wETjNETE{Gs9UF`^djGr4$x)K34i2*Vy8nHF>OI&Re$vXN^ogcV zYD~a^1#qk+=Q*or)G>nCn2zdR^bco*$s>w8n$NOjR* zYhYeZ)GQ&+p{l~DnYUTH^&e@AZvF24YV%-gwEOR;s8feK{yc3?eSn4|M zVN+KV?aG}Q8W4|dGQ%h+7ZR{Joy>|qBYTR74*7x#3R4E+o2HCZl|!rr?j8S8w+=y@ zd-p2!(hxfJr@5+gh&6c3h$4G|OE=lOMMvoCWPgrMyp$gSx37+@ToV4S*M3LT_{95`hI8Zh*G{3h2<0XAtFR?F&dh^-lRRfz)&h!G>RHbX^f#n<0gn!MaPloG&SO~M)lGF7K*auGk`qW4No4JSS>%U57)F-M zf$BJbN>-&l+O3n+v1!+Wg0*byoS?t1^vO+-wR(3-BVyGjhi?Km~_eN1a}j?~JVv zgJz=d8LRe38$>n8Yup+)G;BT~{l#I;KN>|-oKvMM=>U7_0rT$FpKiv}0Fn_Ys^un% zp|W25NA>D(E4PQJsk!Rw;Rvrn{R%dH)A$bE*6?#@%LJ2GRG>dPP9!ZD;YGP4utbii zougfiVwLAwhsdYt{wTF|==a(4q!V&mN+d6oA^;y*v#HsF$Sw_g7xYRR2-;P|_p||m!%K~Ia4Rh(OUTW+nv)j2l zex5$^e31vwZMNkBb>-+22uviLKg{MixvFU?E#$VYSHr?>-e%&*$-xOY)ej?yx;4vY zs60rLL;hv#_x|Y?llj_;(3L-&GM zfByQ+tvZCY&q~B>NCjBXS>kZ+0Kai@djfhc-?)9#sJuo9$fQRXMp|ct1^Ix_r_X9J zg9XX+snC@|(Ql(19`FabgBDRDTZgMX-)%--`M5*Nm*$EsU=K--Cp69)$5mfOmnMbr z6s`2rDQ9l8rv$n1cqxIkkOEyXA!~W3e6%C1r*_LWO+L>jN|qxVgrQ^8Gbm|CVFA*N zyN&2ErT`FkL`b)#qfrRUip*>+0r|@rimm+&T;xk+XO_+%#v2nigLB!Lu8DlI(zRbDZj|9;H#M@3O-O$xW>e0<#~QOp0d+rb zMMU2aW8Jz8X@{FfdQ1X*|A=U^uR|y+QbY2sBSw5aAHjsijA}a?>upgSrjgb1baRWx zI5jt)HEhn)>WX}8bk?FtFk@wQbcap5z3QoaRy9-!$1C{ET1)K<}OEme8n%L zxRCg{Y$4cG!wzRev6zGdhpv+-aVofri5Y-+Q*ciI!YCfXal=po7(iTkVM>XA~(CZdW#QZcG)kocmg)oJ6I zj~|y1arn=Rv4~z=Nk;@DYtzCny6T6)423o`6cXt*)+;!5=h}A???FS;x1oP-tn_Wz z*}A7k^i2-V-sgcvrRWNk#IpA`-wt;re&CP9d9UviSy$q!_Z06>o|Bpx;*rH5lvv3? zswhKZt(&=WheSp$0gS&_EYK@QXEmw?qpgwwS;gEoN^6U}+x_|MbjMe!KaaMChD$gL z5RYv9O}qAtrCn?#%Y@GTs{~&y)Ndm2Q{$-?FC@qOBt6(FZhTLep$26g*+{H;@RaG< z#K`)qz2GS+!*?T&(nIVED5i48Sl$yy0vgi6gKGwYqYMU!y+hhoMb6@vOyj<^8z)yn z%r|Y@!&n8z{N~n%GIi!?Ymizs#u}RSZ=@1*FG>7P=#sosJvqkmop>~i*m&SFLhLNe zYMd5g+n*2qU7Y7}>3?CFMD#3=t3J0dylv|ZJ0xoEr8uB)8S0|6PR;Jyio*QfB<G~Oz9ulcVkp3AE4&*M~hJj=}r=l$$)>Tlz%(F2a^-_^AR zQsLbKUd|2*0Ju-A5oz~t1$e{^$5z!jK*30 z+>F}A1{_NRCx_cuv* zNK#OeHrwaX_o@*Stl_hsljwZhThNA5SDpdh^*PP^p+;uNBa;9+>dX3^(b73vrOUmQ zVu2w7R#&WSQ5_eZDiiyUH>&6a7MPb@s-Bx*oig-R%(h9{P+W_GA_Pf!(2v~u0< zx7F;4s0+vcS6wub32Ribx@#g9tS7EiZ4<2t?pYhv4-;9>7H(97Cs~c|3s$RJCINnH zM7=i23b;F`sDVY+oFV^^ZRypX#Dx$G8v5dEeKmT?C2CEPRpBnUL~SdwD&0FKs`O%O zn)~sa)Ct8_QCf+rE4C)Pw@g=?i>+Dy-%W?ZaFeRfk^SX@NJno1PjvJ$Hx=aSTP`rO z52~}n_aY#rym`xsR>**Y>jbAga!&$UL+$)*cgu>0dTny61) z2)fSiVk;IslU@z=V>BCeBSFw%8Jt0LZ(jnAkaLLD^cZ8boxHx#JF!|n<#ffxMqrl2 zn|$}tC!`Tro3Z7BpBa4N3+;~{%D?tHs1w3V?tNdz*(cas{|w)uI$T8wDb8dovl)r| z^jFMiS8C;h| zo)u!4Wom+D$8M~h68S8>@qn8n6r$O1TzXajaVZkLFgmBCvocVHe{}L~zWKb{tMj3Z zk#lK#T|?tm;G<7f3p`2%O;Hg6I<%p-OkrbsykD@Ge_ryF|QO4EV6?8SJ&EeL1W=LtK zKW}PV{Si)irv+)Igb2!pWS-p-vV8Sz2`0oSNWkohh_uv!@&wpN40|H zDn{Xc|FDeEN})!qAuC>&hd0i6-d05qgvlY3P-&D=wO6;iY^Y%_w1FDLMI%xjH(ygy zk3zCU+gL!0ZFLnk??WX``T)`ysxQP=XC^~A%YX|Pzs2`I@k%G0+qlg5)0n~%mQe6k@CN} z)(jLivS8g%&H;G0m&{(?ynoH-vHGA4tXaY4mmpbOYHJu?TABA8tY|`ofl4xa+h6_pX_@ty) zFfc{Ha4`Y)D}$nEE+(Ha5wG6ui}FRjUF~b65HV6KgUN~Q3}fD0-RkABQ9kjH)Wy!P zQFMt!B*6j0Sm41)ytqPTB5z_hX&L)z9EjV(M^-iu`JRx6X7kA>L%fiuO9;N5^{Ywr=!~lUQkD$Hbm)qI3nrv}k33i5~M-6f0v|BXipsS9cF}CL%f=6TtkCwqWt+A!!{*&0|wKRGk|C321pS(1eOkj4~9FF zAMsqu#q+EUia}MR&`KiUGI6C(mnaS##@2e4fa6oO`0&{hw|#A!+2$x}5!NBUIdJd5 zmg0KTWmwW)qF8yXqLf}1tteJe&eJxYyiZl+N8vxw(MExPz~Hp(L^fxhm8CNZ|5N;J ztIT#K9+r~yeM_-CKwW7MA8M*0b%s-?_E8@nYmMQM?r|~|=+kj+G70l3P6;`9QeZNK z#T=^tv&N*C>sOi?mK~|<(D2=8fwq7V+)88+l$6oE>&%k8Ws(C7KxrMMWss?$THgV% zjooK{OFuFT2kb|JiqbD-VT3ScWN$*siUur=D$pG?gabDjP@zwVFmX4U z$7B!Vlwfk?p90fr{Wbf1j3d^(C&pI!oSTZAwrRl^d#C=L$QrS=y}kI5q0hEEl=z%o|(B=B2Cfxxyx)P%IF2IQl&DFpYE&4~6=TMYNq8P^H_2`fKGkajjs;c(&Ul(ro=? z+wNITz4M6%$RL+79YUq!XKl32&!~5BN!{_Sf4$r=O@Wac!c5?-6Y>!=6Ro66l|&y&mgIIAXQ?YRAa-Ne;7Yy%z54{1 z_e^O4uR;CfhekGL+T#w2GMHuSI^+PPZzNQM$FRY8VFT`}Zuz}nAU!9?u;}=gU}v7o z=>gLd^ia(o4Do`@5ZAfXX~$c>u%VYT0-O<|FS188agVtf5$|By6JlW8NCk+8Tlnh? zlOAUIA(}OA3h1y~(rBhAwBJ3D?AO?EY>!Zaxfk`|JG<2rp}vq6p_d6S)Q*QsR@3%n#r@1s*;K_R6< zmAV6xE!FTYOhx`19c~J^Cg+kb)ba;GHpJ{DBFXOB0Qi}V9l8>X1c{azWQ#Hr*sR)> zK8AGoL#md4=qS?RE+&f*6M&{W8lud>O<$RruApTMiSpq+T2kCec2W0GX^fIoFNZvq zx$5&1M$I+~(cqM7D%V@ph`4?%k2RfG(?#_1aT(3bKxwcCY{2xt%-!-X23LV4t=4)g zA}!k1`&Sb=gj1mv))7-`(6}o+`~5@GxO&@BykuHnSaeMoT|;y94YG?M+0>Q_oKgz( z$(&iJPDWGhuJ@T9HPUZ!3#S(iw?XF;FyN;^kEDQuJ1a^DdoVlXafu6uH6C%(~xX7pqZ+yw=?K%7H1vAljBfpLa z%Pod=-oNa1Z06$V38xeZRmr!wdO>t zUw9bHDSI4^2dXnzK^G1bB`=eYvK?Y{37H8kyzY~u`BGvtwJnup60vzZ)lvBBm~DzK zA|FNDD8|}ii)+mUA&__b^t>?i9_h47s6-fW8)6sNe0VL!>f}>WAl~GAh}M%M4@dz< zj=ai0KIL-c!?ca(9FkY@o6TLY2wy5`JYOv2~GA#zx?9_~c{ui40;PA=blH zQYG~AsHLwD9%Rp8&uh%!+w5xVGmH19Ru!SsZ5mFZoJ~V1=wK$brsQ5%v$oY8M#pa1 zZR8v}zRE!`tZ_}guwhagqfAICaz%1Vb5fLNkY41%bd_4;^|Fx?WunmBTH95N1APb4 zVY-^rr>ilt7%ss6GklKGy$n4NUN%7vX?El)b+8cP%CvCLS9G#XQipmu-H0FuUb5w# zUvW8>Zu>vlpvR`V;n7qO?gjOVji=n3#tEI2!rqwsFa!jEoLOrDHVf&OoAUJ2E9Km`i(KVDSQx(b!G^ zR=}qBc*YJVDfH@Dm|&cV1sqKoYF!H!q)wHABvPY5Um*jS2S9|hUrGghK7cHVH3)gk z%u0nmj0$5Vsc}X*1~akK6c{D9J;iHG4WEmXTsXT5!x_whFK6L8yZ^-o-<8p!!&4Wj zE2^#Rj1vp@Nu5D;TeX!lv7lunc^&#m5r=djeGbr59_Iau#8cs{n>Vs^wAb8nN0BEe z$!aGDd9+0;w7>A=ie9IIL#t#{ia_PM2LWJtw|Kg~& z+4mnnI9_Gun!+T|wUch0m{=NJ7z zD;J41yxd&HE;Q23Jt@Bn^KDOk%35{pN!AhNM>B#FZ;{CICzrz;PW>?7GwFg@_Tdno z=c5C`Z9_P*{onW(ua|QlNXZoX=N-zo3yoe3ZgN2FHdb-TljX#1x4gT0sIO15Cg;6# zziCA-J2WpOx%2RZOHGi=l9sat_rB+;6KbqsSwC0PFbLSfFEfMvSwK)xhtPgXUxK*`G3w;FU_)+x?7g3@w2UA zCmbdGwhWh*jx(ZrxE`s#3dZ2Q%c0=hslpPyLWU*8UJYe@(cPF4igeWi)im3>+TA{1 z4VYtEi`l#pTSWB|Di|>g&X2I^UbJVz6t8n<&oE;{N66g0t z(&TjwBgWfXFRDvwY2U*ys#|KU5xp036-bn8hv%rf##`ChQ+cK1^58fT{q$OELg`wo zVC2yTW*oz-WdAK_o&BP{+qA=@X3u4}>63PK-duL{o^4kf_?@tVn?IzWXqMn3@&&If zadFbKNTNP5IL5$Mzo*q(bFGRIMeVert$U4K4bggFyPABmD8H9YT8yjH3c&)EABIvgZZjI&I}2*RT*>&Ux;N73|otmRP_t31w+Rp#hdPlrqh z_Kj8JBA@1!rwx56S`+paH7@fNc^X;%R$}v=@2W5KZU>@74k;qHXc(e`$*4^&LmYPd z=?sKKFELNoXEQzd+0>%fjddo`1QBWeJsb!?X8%hzyJQLIM-db8xJ39$mImry3-Qd( z#;_9`!gpVB>;CDOyL+3+I@>rl)0dAV1Y^~~=nlVRiS9IZ#`)+b%!`m{DTf-iCmk8a_lPLp?VgUjM6tXaHK z#KKuppVoUIaq(NiGVZAM-ndhLP{vp=><}ujkq1zwOZhihLoVphWj`1tUBU~=s5kU8 zY>^_M(UdTWq^f7QU0^qjphMaxGGRV8+-1JHGol(H{jX_1cP@BZN^zxXTXE|=9h@jq zTCY$Qr&z`LrDn^sh;&!tPH}i*5O-~P*20{}svA$if#KbIjhSW@o=NMZCu^i9>qo_U z%CnR<8!!WDat%3|>CN@=(69!(;9mW~`SzCDMa&AuF2BkZ-6Mv1sK>R$&MivwNR2J< z3l92`nGgyG921-?ngO4gK$hy!v#p$2H~e4*X;IMI)L+U}1wdnoph1m(v9!$=#u8gn zE&HMvLAWg+`jmOE2Obvnr%yTs@)*P-X)08tdi&xw$aYM!$JEy z>=Q0SsZd(2#-0YPjmrkb^l5OoQE6>EH7f;y25;ZTUlM9~e1OOOmE*Fuy7DCDHeONM zg*~K)UI}p$A6uzI#&S9wz9ms#$`Nqg9@?(X!DO-&>-8!;|Ea6MljMJ^* zH3fPGH9!@-y-t)_q{;-?E5g{ywzLdY@)kz-blGo8eq(C&Qx91R^p<+{*VC%pv8@Gj@xAKH14R&abx)>C_g6g)NXD?B9E$2zu3nIS}q zc_?vhFJrSTcL%)9#dbS6jH^S({ERV8c$m9(_-sGDAsH5wQoK~Zi<1E`{6>@nqf9hV zNX~8Stz2XO&OlkRx#`t6!DGC$W@G%M5Q@SL9r~xm zsRdhyzH5jq*w)E{&C{X(Ia3ucwF<&=Z^@ddJczK(fZ5Nys`kgb`Z@JJ2N?H7s#2eD^CtDxX zuRQg0SSZ_NeJ?~%6(PPd080h3Gh(dox)Np}E%?7I@1G-3C{SpIB$LQbh#ecln#Aii z0u2V}&hgA=jpdfh+qBc3?wRT5`@&UJMKu{@T4JhXZD^aU#W;L$9;k03KQI|EQ^^su zH_x0wZ~y|+COP~EdJX`OZDM9LSAt$*o{dMLu@+1J7)}wfh@e>-bs)WTvM_W4!@3dv z%+`??rP>+{yo~d!DfBcn>@0)Py#X2D#Osp-C}OG3!MrIa1GCLw$Tj1d9J1sSNh+g4 z%;8d_j1mvOtD+(=!unL=Zy1U(D!Lkaq=-e)TAa*5GE=5NuZFjA5|F+*ptnim?Z*#` z3E05^vj< znsL{CSFDS6|AIXnp-gov^tsGjP{qswlwT~O+RV>51T)tacP8raP+ahI4_B70natBu ze4>}Ue};PNENgn-hleug)*Xl3`HLEHHfR5ye_Q?TY-`Ar(?~#&6|!3H&@a4b{IPa< zn*#EgO%Qyt7&6cJZGmA<8<~KLqBjg4)S>@k;%S&zE@sN$%!K;rY-_?9y(AWky~^O? zvC2&79s<(jrJ}gtVGjFwn;*p%04vD!OFtV*73#qU;2X9eWXN438A4#USI?;BGb9j& z;!<_aGHY7c55J^J6`qC~vCWoU-sYurHH0hVi&%^~a>0<8?`;b5J!1T}p+uQvvMp~C zJi*&M&MC!;=}p{?1OYL|83Eed&(19>H)sSR9evc1=WysJkj$Vn0tmGfu$VtjqHs08 zz~Q7wLoR?@cyi3{ku^R(+%HLM@PBW5B#MO6M^BI!6mAE!3QY>OviC3Ms=|qwU(%n?XFAfzOc1~U}uJN-xTFM99 zE1L7AED=<_%{e?Rk5%U{pIVvkZSKQctU8YuGXK(39l6|^l=iBcz1$j6{19rbjG}0^ zPe;7ARtc%h=2SCig|9V^tQaeX$@X|1|_IZ-A~;WHt4#Jpp+7s9{^!LQ}9<*FTI`bt|mN>9-s_sQfFf9QW2aYWoWO zg|C^T5-Y6HBL|&i@=L4g1XF27|4ioM`Mx^JKR-@QIuGlIZ;qOGo;7LYceBkXTuRoO zmUE>_Tlkhl4L0x0R)0Cq8oA_5B8*1&wy?wI($mHr@?j8LB(9+*?+XKMOaUcIrNFb~sCX@OtCM>JZ0uwP)QkEUO{b2PB^g4Kq=eeF z(i%0qjLIL&N~TXw-nzdU&sMP-1U9@Jc{y#Pe~Rj{${L^bUA1WiJ@0+$P5tUo%D>9W z9Xm9|Q+svvD8t9U=^4|u?@l_X`dxqy`GK$$pjj9SsS|tbxf8{>FKu52R}~8saTXD) zScjf;y+OG~R@^+&BTML!1$crPo9m&7T#izzSKCZ04F2yiltrmM#40NH0;_jvtz@yQ z@Wa!9Za$xoe%lv_C&nraJMsBhY2t*pD99pm1B@zSo*N2JzrZTbwkMLZYR|fC&VGnO z92=}2CM7MP_FP~M@1K@oP-c>X$^kX#LcFm3akb<^>*#?SQ$C(EK9z80_;?<#?!M5P zIi^llWQEZmtK|slMR{EVx!fmSYVa;Gc?MRh0l&BAp0c|cfpfL9|3FSNyVB*$yv^rf z)23EgFqJf}kvV;ld;xT%!Oza)(#QJLw%=Ph6Ie3zmsZIz zc`ZOWH?hcb>Bu=>=`Wu+hLlN3MdfWYB*nf!JE7ulb113X1N zHgAkFK&FH{6XZ}VFm*sizdy?FUY$E0kuB;*J1<^dWUQJQz#qL(MATHuMvb0Qq-V=m zu`fGr$?o?3RcDM#_kenl$Tq|GvJAjhC=PLY`*btV{KoOkyopzgYeV`EXt z#tK7n=#e6IQZMECpn5 zuFN0%A{%OfkZ91NSvNotvHU=n)D>IV!dMfzC^CWozL zVIr5z2Dx9A(G@dG5j}=z?~Y zYch2Bc<{UkN(J%qNUu=;tmkykM~|t4^=u4XI$ag6woY_!^s9?jTeAip{SP@>P?;Y+ zAngRHcbnClt2s1sdxh$8sa5FhYW|?(=&Z5If2lRD*OUsLf9jzwy41?8s@`I^ok?9+ z<{EvusU3x?v2++gW_Yj_=O=h-bDc!*Nid~VtjX^bGBjjF>oTLY9`*L6s3ZU5SHE0p zO&CAA9FYkv#LBX&xpTct#)T~+Hz-Ri?F?FKyq{+K)q)1t=bj36V}rFokymE4minMLIc6Enj05RrZw*%@J1^XqEDVk&3kMkzYHj612;)pEOFv z#%fZl-@b}YY-2Ga8LKW-AFr{Fneb7W@i>rG!T;&^S)@I~%mjs)^{L}7vsR^_|LeEv zq06k1X&LJE%h(?be6NnUoUk9iJ5Ei%+*%Mm^+Ohh?3`0ikEIgJ5@e3y-$PGH)a7H<28?-SC9T#vYlT z_2}Vyl{3mk;I~)@VbV8tJX-JP{D~4vdVY(kSfB z(smlH6+OX>L1$!FLbrs6Lr5mv&eYzrV*c<%_FI?vHY3s+1>Pz&tQ(;VIAR&#>(xBA zhh++rZwc#iq2?2zb_<`#k&W=_mSfx^lOsoR ztd<lx0}snye+*=FJogi&iD4ksANQf52dE$fcx^yNe-DV z!hD=!S1)jKr0KigfSOlRoDbQNhD=v?2&V~zH))Gd#^f;GYP=iY?6nL6xijeP%*X^t@j#UpjpkoXJ0*_6ml-p-^a=gY+*y?For zO7{1}*MxIP_)TzlCz#E|^76VY$dx;F?QWkp5b~8zPyPqvaPl8^M%m;z&il89$&gD9 zyR+b1C)dL*k7dpcd$<3Dg*i9mT^{-A*LcjLa&O>ULPR_+kJE{yg6gxKvoBMnBS1C? zvLdF5I!p$kzbv&Hk2AJr$#6X;9O-KrNr@a;j)*75v3P(R4aCRw%XQhD>?S=%|7XWI zA&>xq54;5s_()d;sHPLQ}E;mO`Ymr0N~A1!^4J15m=19y3^@3N8$i+(%}9<*J(JhRzzPEx-)TlHH;iA|+sqiU zar)K$5CVq7y9Z8_P#VdK;@0GGWY00-{+pE89c`9uk<1dXq{`D?WqJt2Y7+J2pgK%% zFrv6{k|$5vC=HUe6jN|mf4kGPR5MP85sL zqk9k7y}iu0q`Uu9d%6hUbB{O9E+tZ_tkcVxlD-fMi2DbG)Ba);rDs>z+ca$)EXa3G zU}d#e1sO1|c$c4ooHzPZ3K|A2;T960`H^oM(xn)nSb=4Qh9lZVo7hY!lV3)A_Q#z`M8~v8e}wyx}PDYBLHkOIZfpr zz3~fC=%VfQ1v_FG_AYt~%o#AK<350=Ku-EVe=SH6)+kdwt6 zJ7b@NYGf7?GU@fgV0<$%KbD4uuIU}GmQJWmrn7^I5U*YTRN{Fbx2*B#z4mFI_E+>s zi@s4mlsgngd9S){6e8p)&RsS|KDdxDbsuzoD%j~WZVLyGyJD=TY_yMl1|223XrW!8L_&NeM#u}x zEt&$lrBHvkV*&~rI_uv9l`AZ4=ZN-XdgKjZ%TH;A8CH3eDrX#i^eN*|Q2U@8YTNS3 z)!7;P*!Xpql+|Ug+ifu1D?{`^71u4J4Cvb_i$=gEq3QAt{m2v!`-MAV;UE&AJbr0f zv@S?JI4^PFA${}h9i4Uc;>+r95etY}uNaCh!rw0`I!LKj*V11VKha;%zQy<$NTQ)j5xb`hgVF*}!VdDihsIXqZW){wn!46R2s z7t-JeQXNj8o)vu=`pADStvsf8%ad; zE0OPbObr|HB8xlDWQG*$M;ca@zMrgHFv%3}m*XDc$K}cnJ{~D82gy=rp{Kw8j}Rd= zsVeeo&-(XM-0*s*Fa-VLaL4O1Ec{f43Sh`A?X(S+6(1VS}hSh=2r;Z+noqf4a*ojrd0kE0QgZB8VSmApTdmS~r2q-5-P zVnxyfWbmE9W%VhiXg2f6lQgC@ZZDekgG~$*i4DclpfjAmwhu2-r1O%&PGKq0tuXVO zz!5J$bxRBjki3aP65r$+1KT*^SUkQ&SomtSGpvcOr9b}HxAveJNXFE7K80NI$OtK# zqC1@R=^jIK;@0|plhS6V6vrcDO-k75EDAkjCyDz@sa}NPigWAUYHWQ#4kiacC8MI5 z?KLyIGX{fZfObR=Y^XQ^6p#G7y-W8BgpB?)Bl1(4_p0qY$0I8ctwtG)3Kt2>>SIdj z1P-Zm6SBu+#kGa3d}b`I_vmrv8}4Pi>o0oQd~G@z`+Yw#`;s@lu!o)DAQ_Cl<02&y zpl(|(_B+%a;iMd)ak`Mx%O6}RNQeIEbe(Jcy8_Y3Z5hw{qN6dZ*!^Nec8Xn0OZ1nB z26DCBApNNID#UcO&BzEOqlj@nF5;t<5?-*+3v?y9|7X0~9k&LBuN63=pQX`)#Cisz zjd&rrmh0nCR7L4o&UfU0e3MLVavx2XcSIr}Nz!%KZG# z*9H9?(8?G9mf^U=c_}r-e*F#iIy`0+tM-rWzV1yUQ(W!9FzkGc@E3giFbhnY=w zu5gA7wXPW!i+mwl%A3NPpA`2yW8~1pQ7b~YYooi-a-DHGU$=c= zNLR~Zscvm_Ya^NT{-4olB<{v;Js$HYgJAKD$SPkjD;be{=9_lnZY}bqvjW3tX5w*P z?cNm5D~WG90oowW#j(NzJXh2c_9d>8LJ-RPoGV_tJEDsSUb4D89+~-@A$;)PW^fk} zyy7=0pP7`cGG$2QQhVUaZnzn^(4rjcNia6W`&3oAY(wW#BWr}C65n=)g}eI6yWUV$ zo=ES)cyKJTnTSyFO$({aEEp4y$aXJ?HWICCn#1MsF7^@OUjlJtt3rJys1i-gmWo_r z8;`66PT~qslzfd1WM;j-67hE4jk53JjZ0-&(2k9 zE~SC7U3w)}#<)Mt%!fn-CB*B7s*J>)B*m&T>>5Xi5Nxgxzh~2%j{1YjHze_-?aomW zZM%X~63)EZ7%mfw6EGyg5m=S#K_2QMh_cY4q<38ovBm+a=H9>*5j@IFxh49wkH76q zOc98XS1xQHFV8F*Xn>T{*Y}k%DV_$Fq!1+M?NtyFOA00Y&@j+m6%>LYs|QT{6=Q=& zqdO#*b?H!~&|WmOXC~u?b}1zHxxyyEtzWREh2`=qqeSB1@Ec@Bwr(xz{N6zfy&h;2w$h$o-^Vc$ph5Abfkl^}nl0ED@n&mbiaZ(Vt zh&jS@FgC+^0FW>cVv7sN_#|>AIkJs&uD$4I5o~Xnl#dt14Ivhf?6P|}LvI~pi(hH@ zZzS`7@oNU%@<>}wq7Y%n_~5jR&dP`4Lb3Mt${?|aWmxDh3WZ=F2*J!3CbACQCx@Iw z4qTB%Tw=RIzg!V<;}GaypMl5u7`=b4S#{!BSyiADywILd?jFhP@i~?M=I?aM~3<-l(Vu zTmgN}U=SihJo2vH+*)p*4S3@@f=`9VyFI%OuJA8!eygGX%AGl&8zkNa;dx}?Bm5y0 zv>o$p!rClSD<%`ESDL?08qG`CG^3i$`N^dD30in-s~vqOJ64g$VO?@(#VR-i>M4?r zG8|yI4o>?p#c4%0G`~>6UMB#HFjK*lE9kR%Qh#DX7nQM}oM=bn>LT;~C;|-T zHgD5dNkMwUZ>Nl)sBq>kAuK0Vs)Icss~$T}nDZfFPI)&Z)N=-r`9j#GfYI4)>>3Vz zhdold!XG!X`E=LQ(mlnk-`zt^fyg?%qKx}^?#9X~$h}xo)13krGgNVFRfF_ZO69%_=KGSq_@(Jr~-(SC^TK8E@DO02Vfz*}~jlE<0{ofq97g zu$<@@F{#AVM%{;1_AQl2Q6qL8g!Px?IzkU?O}^{;0L@--=VWP zvTD?D3SXMVccg*0=|f2o2GNKvT;yDO&r!k}4YVTV(IYkK{xk-J`~)x)lJBuQD;WI& zC+J-nW$U5$&7?4!4%NqG8VOd*%P?KQ3%wwow&L<2elKEDC907KY7sfPD=Slb2Jnl7 zlB}@1wZ$XtXJn-fpk5&y z?v-QAMrw%&2GJe^8C*3d6kZ&Ubl7xiVCu(fyy*g|mkFE&gil(Z^7<=>DjvNZdj`dV zG-ENfxVVyC3}?X%xKidcc?pH_rr00a5?P<+3O!&?1CrNtuh69`*Pvxq-<8bIa*Bz2 zacavdgX?=yXE}TCfRz;syWv!oaV*87w#7+o82Wmwlte%kUmr7R&Ccch!mPM`GAs-l z^G#%9nYf;1Mgm$Owjjd>QKHk*Q}X_A0A?X2b`<#+6QLrK(B?Qnwj!5?EwxLQYbCRz z5RtwW#3ZW_hHpzn3cswMc!2;)qI(`C_1d5%6|FIkQhxh%lW7p;QgC;^jOoT)cHQD6 zWyJi>4GtdqG6tDgDhQrZwLYKxRj~^^i6d;WLw9+bp2VL?w6Icg+19J4k zATIImP@47qQ9pLtN&ek~JSstYxJA-Uim@eTf{H$A_qUyq&NM0jo`j(%GIS;_XW}R# zDRCX1 ze&W<&7G`A)VT4S2Z_^w%$;qk6Bt0I|hq$YLq{Z{_)rZ#)##Ln*Un7woYN+L(Sd%raz z{33FuN}TyWfsW;|xlSKkKnW3!Hnc8AF+=GlipUqCSjr|NH30Q8l4$)32!S?DWXyJN zd_4Jp&3i>2?@fbvU-@GWYG~uyqOiDC3nZte=*vJhCtI0uL}&r@T^3X}Q)vC@ckqC5 zP||c(I<@NCgfR3`S2zh7zlZpp+f0Q;U=B~rQv~5;&!7Ed5$~~3UwDTKqj;Y5S2g!p z6T=^&HvMn5Fg2|P)Ni`%Cuy+VWnj9(_5-fvao0WukaX8J9;y?&u!IUx%s$Y3!H{;= zg1#$Ohn87kvsI{hKicfy;X%$DqZlmJoz}t5sUfz7+L?ovB6%f^Nk?>~!;Y_J$Ggl3 z5(z_ipj)p|q+IW~i@6zROG7AHEk4_(6XO*!VS($-gAbnG>HS-k7$N4H4iHj-DAi@O zQ~@)+yFvS(%=>K9vsq^9I-Kq&$r423FbU~w@GlQk-#ldH<_fdu=V@6yQbohN)`VK$ zU~-Hc8Y3~*vs=O$P!^O|so=vf?L3nIAAPh@M)lzmuOHn;**e<;7bc~&F?4>&{#xUD z6!NAHFoNX7+^ftonU_L^$y3|cm1ESFU}noXy_>bNHAgrpJq+tMaAB%M?^tR}B$0Bm z72099vPIj4Rfs9nza*5y~GrxV!k4^s?c$5KQ z!|CJDbBJ|NWo@x?!p-n3CLW>XA!@sAt!x#rw^F02suY)UX@4N77v=`ddd=n z(mqzPD2KHP!p4bYSz&u=Ih%i7BXW?`w@6|DUI~!*7SU-pe}id(N(@syN7?^xybLl%|c-aitGMNvOF6}K# zkv%LKfYvg{PBnr=xSNb|bFDoUWN@iUi_E$_fBuc~Zn1_AJX#9&>_)sNveao?m@FRd zuhx?x{Dly6b#`@vP?XZN#i*hDO{8OUgJ8kLe>j3qoPV*^i&|&XVcL<1GPYSZnyF#hRX9!A_E0yp9$n3hi8G;`V29LC5UKr#+Sjy-fqvn~zz8Ewh&vf5TWB zbLs99)$tg2XS@Va0WMqi$fi4}KnN(+0b38d56J%`Sy5!*-l8=!MSRU){r9 z|GRjkMksNJ8GDG0R1MX36%YLe(5(VU#@bkUz-3e0%Io!SFpZ)X8sVJL8Kw^$mXmgq z|4lbdc0_NvDdRZZ;4~rBu|;p(k-(;TUsA;0M6OHIc`piyy-gQ0L_p0z0BlFUZWHN9 zVOcXE2w|l4Ng{{#Cbz>ppOPYaX&-*YIPEv21~tFAX5ut^tI8}xoPIL>dh2V(*o_&y z9UPZ)|4H}M^>*r!@yHv8`qz|O7B)%s_bh)d9WpN&#VmiQBfYc>TG@O5j@5y8Kg?^k z-ep>)iL{`!uiZK+Yd6eZy_58NhG61c#y%xw{WnP8hg*_^UP+kp`th@kYEu%A{jz-z zl*GmD+IN6d-z#?22mG2#@z@0y1QR|=sVOVJ~qW8{d$>4JVzH|Ub1Lv|iyO|mIT zd2Wj&Gv6J9cR0~b1y12{ac94BF5zcbS`DK^?v!MEr-f3?jUN4lpQGURAuSoka8Re- z%{NJmZ~D&0GI_BB^!OCegUbw12?!}b&3>p@6&i*M6ghJ=8c1O%Bl@gq-Ed5Z@+<_G zYEl`&M5mF)Z+ugFLDxPfY+XLcpF1}J7`g^vKc$Dk86FesJ=pi7MPpu2A>&3&& z@@QRv#!$PIjB2%2DlOt60dym6Y)j7I4!@!>pf3M=q9n>((WukR^h2eQcMiR9=Sm9>t2Q$OS%)v@oT2di*3Xj z;+4W)Sz`4PeW%OZzNAuuhXYD~A~{*D+h#z%2vwt|j|NJTP0*v*%sZsol+4u~>uC@- zPn;lH4Yy?)ttLgby|T`iE_?eNM0m>(4B+V5ZuTnwExo@7X{_tB|`@T{?JZ+tS z^w?hybRM^x!4usXKIMu7;*l9|l>I{Qtlc14WKQZ9iZ!h?(s}m!Ui#%bRiwq5bXvho zm+QD3jLqI_N3g(;H%?+J<%&J;2`D%{zAfd*SA@L_QWUb76lc4%7mcNvJged>GK*WU zI53^szI)Jnm8%+tY1*{n_p0wRR_@G?QPshqu&q&Mg*4k+RJtaypsS+jNWrr}!;Y@r*BQ4WUeBY_sw*#S1Z8K7pDl z*=Cg;S)y+cxV$$$9hc_S%PsD9{Ca(pif^;V4=mNYYt7VR-*zbJ>J`8Z-b2ykz3q)D zw?ZmxOFyX6p0#Ekvr*C>k7b~}LI{6s!;PRPXL#4~8=IRETa(H68fx}OcZ(nvQ<`dg z7EAr#kY!zQOT-R<(wyQn8TotldYM5fjRGC35@*yJV97`!P`T|ZPNw5*f|c9HWNld- z4-#C1yt3D$i`C&>b8DlFdL<{#oJo3ie+m2KHo z>D6O7c9casoij~;3K0(WGs!6D2@QMLJlK@3uG!8R$Sc(=+pY0qX5(EPHDcuBKihG4 zg469Gq|-pj-b*@0<+fU*dj6TNNo1?U}J7%~@&L&qFg3{+C8b>8oy`9apPeJFSAWv(-2J zj6Cr-S@I;y9;tePOcT?6YRdDL|9G(+m)_V{e(I-~IRuzyh4jgD2BUnYnv!_r)b8ML zs*_qbDfQ&@5bK|KWTI3`lpQ%N^leBbpSR|^vyWH*++huw`!mBrNEN&4Q)nsun&69f zdu={Dx87?$kz~JTENRX6UkMlS2avzdV_1G}`)aE3vaq`jf*cOuy<#>&J%#d5vkk}>B7ndXUO7+G(>2vWkIfeA-PE+&T z`(+@97J9d{B9bczt5kNoHE76V7tx(nvg?CaXojdpQmdu>?bcCKE+H}T#WX6Z%=mHl zsLJpA(r8E8ykXPCeYAV%TM(BtXITMqv^8mpFn?YU+#D@Lu07;q`~9(kE5n=WBVn zZz|ard|`<4qAU}Ye5eHQX2Whs0s2_FHeUHo)Z=5+{0C8Fj}UrE$g@m}*!^<~kJ3ML z`E^<=%jiS}?~Z`zlPHn=mE$}c{y)P01TO08`ya<=Mvy^~VJ^syBBFwzf}((+qB1}R ziVN;*nOQEGfm^cJfN#ce-1AiLGAny$sby(uYKj|}TUu(Crj|>u5f@BTG?m};+}8|X zpT7Tpk4G}EyPR|Gx#ymH?z#7#>)>6hy23oC+MCvWvj(!eQs#HYfDxrI zw&q{9=3!85Hh;s0AmFWl#>&Mne)A&%%i=g|Vu7E<1E-mD9U4J-e<>O`7R7CO`)ye# zrIGz7iYC+k?~I|nQROuN)Z&Uxp;GKe5A7jcBX zHoWH;oL0A_`SVkyd9%2)tV`}PHKo<~7dU1ixGR<#MO~9}8*1YZg1T8?$6RKIHK*8e z{Qhz5!_LCvJ$nsX8fDxoZoK9_+)v1>;;LxQEc9&b4-|UM=)>1K<^rfjnF?W1NmJ&| za?n(*T*Xg&Btlh4Az`b63p?4NtcQVZZ$!@>HV({w(iskLIk()JiAtZqYLk6-7n{gl z+z14H!=}%0utMH@iN-m+^4HPO&FTz3gDcdD{EOsz1p7)Z?@`klS6i6)6ZFRTIX8vW0A0rC6A-V-c1f*&Eg!EUNrKkv5)uEdP(2JF@gJO%u!=7 zojQsq?|mAR?wB#GUpjJ}u#@n6LhX!ekFNKr)7V2829%&fv^~{Nj4*JRn~WyILDg_BPrl#7;kt4eJvwb{ z(LkBLj7EJA&+Cw75at{n>X_YJ>s2}j7cjQ~@S!+rZ6-8GGzA$B&|A1vZJ)7rSi>n^ zw&^wIYr084aPW-il6wW73mTcPW%Mmwz)Gv~W_e1q#y$rnBkP#Ql_$!|Jo%2suRhi+ z%)S|=nO@QMzSQivF}|?J54Fv*fyszp&9R#c`as_PMz{o!!t&1tIZSsU*&e{g!s=y{ zN=K9OVf`VJ2xq;0{~-e^KoMvZ5W+9ZtUULxGo2CPZw*9ZEy{mLmf{T6Iy-< zx2%0p40O}0HDjDhv|<`&v=m=V%F;t&<3Y-L@w5)`wU?lLn~jyMY|@6;3?`r|S<0**;UzewmUCFreI)lU zz{IXsu0NOi9OddaepTH!JMrv`BpfGfdtrOB{b=+HoFJ1g10~a4uQge;>qldp?@9#P zMyfiTA!o;z09FIipESmG%#?X|t$q-j0V8w66TJ#TZRYpXxd)c;|LWVNut`_Ur~W66 zfii}t()%R*FSM3YwwJOJ!+%Gk_p&D+4SKbj&>8G9CvzSz&^F6fgU(kFS`Y2tBw_0o{RLO-1*qvn1Ql(B>O2u@V*j7`qRc> zw=N4YFYk?_DE{!~kN2af?`dPW``HDM%yJMxDc>7|T5sh~2=Dee=pG0rTTVC;Wx;mx zyPTzp3cdfk(O>IFr%od_!oUTr;9BdV7Et(4#&DhM0_yXVF{JfX%l{M9Va{@Z8g~Vt z(&&Fb8AGFa&UDGmWoEF?hFJp=^6<{?xBuwd+i%dHKVkleu~73fh|Tn88g)H`(CCjX zH0F%)8SSg|=@~@Q3;u#C&lvlNQ~#*`?mSBW**H%3*PHa&&&FxGu7@c27vpQXtD|V? zFUHV>AU@;WV zNHH}zXKdlUT4vN+HNRC%J&~cC+=|AZL%5ao#Weq%v6-%IE4h5r8fn)#W6MrA!db{1 zt6pxGn{xjF&xGpqfKLUVP=o4h0UxlLe10`X>#EGu>sMn$-|+x|CKrJZ_Ms9O7CF)y zmcX8q!1l}905(v5x;Q^mCG3+<*e%SojbUe+=_+7*@~L4b?9DAH_&nNk=MCz?f2X#j z=gu3$8mxcg5e1z!hHBf;+Vc?E@o&(v^Tvp_XTrcbtjUh!Z&BA53?&u#fp@#h8)hm# z*x9H^^8(2l`^GQ|y#Q&uF^^0aj1iIJ9QB4d>t#FZWhw7r-^W=mkyc*7N^#aadU645 zz1Mrq$8YC2e}j6Lvc1-I|pQ1brG*wMQZLgpB!(3en_ z$H&po-@wQw&(Z6@83*c~E2QJU8T}213hG&yOUFqpx+aB`bjjGFQE77!&&JbCns*tp zy{~{)Up6*3gx9Y$V=TS*yD`wk4~1#{Z)p2KSuDhe-HQBr&>N0bq2JG!&~?+B(dbJE zp115K&AJ3Nv@D-iUosAiEWQi=sK%cq&BszbuaApHAF5G4nG0YlOCB;yMp5u(h>tRt z`do(bJ0yf=Uxrp&HdiI`&g=DXn?}>I%ZOleHJGklhTMeBC9f-p#Io}?#a=Ns4VcV@ zo66~>q0(tIchFsM?YmJl<_cV?Il;0QWxjLz8GT#rMpYZCGTuD*a)N#!DIu?^~CzAbCSZ?(7ob+w2xY(-$rPHBFO1-qBwB`@=(4%BJ@&`Y|y_c^2 z0q;%XKXhr|*T6+yz9d+)d9Nl~X>e7IgIu11fNe{lKJTT(H^^=2oS)!9`v-`|0HN;3 zX8Qv|oRW_XYinP`jKHn~4pd@V!AXN6J{O)z|51$1nk|>V!}Yk-1Is@}4aE*-Gy1Nt z(LTi(Tj&O;yrevg#>e{c!f^O1$2YDgoF)xQ=U<*1^%7Yyr}v zM0R6L>$xDziX|?R4kF&Df%$ z^}krWgu8U8)5i&l&_|eco0W`H-k9Q+TTn0 zN=-|zOY>1WLMfnJCzqiN~jRSSVUH&d7!Cstqv5?%EM>r_v^-IW9l`E z{iNXGM?26c_BK>0U(c2Vrt_z)RroB8x?zk+8`Sn`+u_6%d9DC{7mO)iFcmdsfvRh` zgzngPPRQlBH`p9dQl_agIF%0Hz`?QJA8?u6WNdnlS3HnYVE*4Wh{NK5W%snp0&A8U7RB6fmu^ z=B#xnd8co27cv|g7G{jb{(0Ru=0%NtRo!Nf@lX}+`%^(1v3%a z$l(D~JYI4z9pQXx6MvbAo=W#x03fC5TD5|rQTv2P;hX)DFPBM$8hb3$!IsEm(6PX@ z-P z=w@eA*E`0*Mu7%23Zk|>kI$@t>!CgefyGZNr8UqqXfsGgzQYYHX z{?YZs1^corEBOD1eq;H26~gzl`2p zi8EX|167p)9n_P7cY%i!Vt-J)#-YGv$G0^`>EI}Gf>!-y3`jdK*~1$V8&JluWpGyu z_b5n}&KPAg+;!;Dhj`Y85qvQg!9sYi)4ex{n}aI&{kRuB{tLSaDKD~i!HHH3e?w_H z<6NP>qg17gRq=3G{5V{^<%-poLwpYnDgy$`6S3IDU6mW=@Ble>MOKc1!&aRh3VH$Q zEu4r_zq!r`)RA8m7QAvd8U-A$@Zk+*pviVf)$t+3zr--g@{{(<+=IHuefo}NE zcnrRUj6?Fz>5WS2j_%Im8YUNBr8%sMa84f0rA;R@(Y8#kg_pKw`SU9|%m|E)Z25=| zoUSOlQ$5^(V}?u};+(4ljzx$lIdD!xk;7Uoq37?z8|#Vlz)0p}RB^fQ0k&hxJo2UF zl(f^32TN#py=GJn=aP~ulFS4p;43)@j$74U{O=5P8Za_3Aj84l#*jds9UfwW<0$I6 zAZD|?>tLO9sr57a&cptC&f()9JmPk2t=~Am7uij zftx*ud4W4evLc?BZjV*lh+Nc&yJRcOm=@=Dsv{HTnmO*PYc++My zxEz}s7p%UC5Ah(N&ROIm6tT|msJw*PB>|1$V}Uc%9jdrm`J)@Urn(_Avn{iz>)*y` z?J9clZ)0!md0O{3)+DB}^yA;gh)#_=)Kg}laK;!&$LrW1ly`z*21Wg&K+YIy{|MGh z+CS3UaK&g;l;QTnz|uH8muxf7`$xH&(Nz4%*j49ufyw|UZp%ON-y97%@3_Lyjz?4g z?2B4+T$~CGjfZ%QzD8b;@dUscN_lMb^Hmo$GGJr28VX(*u9jtUL3=ye+*(6vAq^2gIl7bUPB5> zx-i`q^kmjZFfxx#I23Z6rs?~NI=DH^H7JRL{z$-+1EB3gC?y_qa@xm^8_#!`M7STu zT%m#*W4{)jS5O3@$QYc)5*Lo*AY`cntupfv-K;SV&|SOwW-l?cxBW2A&fo$eTU;4yYNc+o4<j*Dh_vBghg`GrnTKlSoA2p&t?1PV z8Wcw(B9B|DYFMzMx4xhn_t}bjyW?-0 zKJ9{KU%JN&s8OEorLlj%Ltc}JR#LtNm!bVw%WLpNGl-4D1jtf`o$8?nDcD6cYu@4# zWV^46Wv?7h2q(wx1t?)?`&65CISq3W@%_JZI&*{A=24Z_*f@0*FhJ!94=oH-o7tTg zOY;0EAC}WA|2ZHV6=#v!H(6@>hCIi-8wJg zvz+u6nUAvK}!O^9ad^iEQeHtiT)|I@f!^hv<>2wp^bV7c3rV;Q0PiumFm zqgGs&N~MDk!OEdKWOEn6ttwP@v3tZH40KVx&A_;gf~|u~I-!+sfJ^?J>6p9d8F+<@ zN)gd3BT-7eF@XHzW{PYin(2IgrDqz65Z$WwG_jF*N7p2sTpEi+-S?BIM`IBj&;~Ow zdJXGAzM+FarW}7JRB8MHN)>8luSp7Y0s?aJFsW8_=r!v~ z4=^3u!+}4z{4Ng9ET6T#pK`}U7=<%rrEa5R!-PKgk%1~V}-c}5%$anNQ=EunP|mY z1Fl190`$RJ4J}b@+0oW?7e#|nf{FV;-cQ)5iiK3v0vwOZ+)j%!Vl;VqicqRC2yguY zGgI7l7X^BWAfJq$k}obLH}VYIf}tUmgL-<#OC)-}^$IwF4&!GozgtgByu@(rUaIsG zsez~3I9Ok$d^;CE5p=A=;uEg4dWD`bid_ALd5ofPCmk?iv>)$5olEJO#LF_x|f5hgnS49Fa2;u<%}O&PnA0=z}2u6Zma zd5g#df7C+ro(f(YE+Oql=vL(Hx3UF@S3{Kz8>A-T*Q-3VS@M#@6+ZKBAqEYr15+pM5$E4T!U%{JevF znu?CPoz;}l6l_?OMzfoWmW3~+sb^s&-)CStKj~3Tt9?bMkmyfkza(rg z<*^NN>yBvoeoj@sB0x03E`05>8YmDk|#fwx940x#ZxF@(C_fvWC&xtWuz`dAyuj_=^CYS4T?r z7pdB4n&%H89`F`@)X{uL1zzaj{sZa_mi2NuiaJA*yjoUQID*Tp>45>-AAq=!Tp(cte~v$h<2zX+kv`L#yygSnI&99c|{gA6qleLK43j5ImLNK)8fQ#7;=@S%&rqEYW!zO}3a z7Q?_YH%Pgbt4%M4Fd1i=)p-Hk2u4JhA8T>S3?sT-hzKd%2ILU6l2b5DfE&v=c)9gi zxXrv`uWgXvZAZCY1Z<3&1&-36pfsAcRyJ)S%O)aAgz+(OT%So%P-(29T_Xi-JjUHv z)ZUJrSH=(n0l{nmmiBS`yQUC1aw!r4_s{Ncpgz?18(I4Kxj~E;?m(rLK&(&oK5d0M;Mony@9yQ35iegTTUwXalinvg;u;TGbRrK zlJv@ek8lxuva2?&@@F85Q+nYWjx)Jgn%mH@HM?V_tDGCO57DNPEL4WwKQM!AshzcG z2pD9lfLV?Mxd?E^*(Gh@P633Gw!T^{2IDLy#JdS!4|=rxo@%~kB)G_*nmcPsOY{MG7CWv5aywqhy9+P4Ot2mD#{RWoopzOb3+vBjHL-aY5Ts zop3QP5r=TW?W&=vAx zijW7Oy(VFw&4+15kUcHaZ9-^~@Z<@F6)w}B)NJER{Y5Xt->;12`>G{nvpFa=q!xk3 zeI_0E2mI&;LtKjHAf$u~m$TxGGMYTW;?f6TQmwv4UB~1#w@&BVV}7a^Xk?0I&z&{M z9jRp(!pO=1fYsYJ_0>Z!7&%Y{11*HVh41O+{=xm_RFmHLh=33A!+vu36~|yms1eAL zu}Vs|#Fe5zsu}fmOv&_G`Zbl%YY%puyshs#N+wTfRGex zmWyF)en+gCCs^Zp+4}2j$%S(gAL76*Y#Z}l-Grp+kMeF!sL6^;soZacD}6Z=D;rwj zl7YF{6l(D)h1F02uNjkQ-o_n-8{bI7wunsQ;ht2=={N&h*Cs>pBb2m%jen3DEu&84 zUYOu*HFb=wnUI*)(NMAsc^qGZy0;L4+Kx1=g=ki|c&wa7PN!FHTQIoG0#lcSz1RT9 zx~b@4quj9MM!C(LLS{41{D+i8CqClnA&qeC2^CPcG_8w$Cw}r1KLgmfF!{sWv*zGQ zQ-9@wjIzKa=eo;)@Jmp#(466~!>Hm(ALhbomhYlc{I-~)?Fab_jgixt1#vh7nls7&_44wBGaZhjyGRc*v?4Z>r>ng^z#^l6xAUMN*Xp5A8V_<)G)g?H5DT!Izq2X(B8f&IjB zGxZis2q*uC31KgSN=kIb9gjzhd zTL%X(@X%pAmwI%yC*!_x?7jK`zlNO00W#()Kw)(!HFmYKq8VDp$}dIA&Q znK}>qcH~%fvEQLo41Tg1&k<_bG%e(LJPrZVVhpww$eM&-J`gL|oVa_d1QlW0-ODnn zl=4+$7FJ{ybq&fJYwe|HKnxIo5Y8$s3~-|J(3Eg%WX7E}U`C3t}y|}Tqpodyg!zBahXd8IU*UWraQ?8i}cC$Sf%J=(9xg*iL zmSgHGT5yvqm*0|>-838f%+IZkfyGLL*L|8ql=cau4xw^t$#%eL!Wx?W|5S-FJ z9_Y(p?o0gj$Dfr!{;u>&gzzjJ9EIM)kr!l0TM=FAA%j|TX{C3Sx?8L2S-duDzWB&| zP*<8BKcONmw5F!=1?CN#bc5g}#Y0yW;9@rWO}5YA26{?;tOj%5n%*&SPks!1P{5Ib z{}V8C(!&VRsAYdxHh5ks!F&MoX5N!LWkOBAxSo{AbG@xElzj$gBDdGa-^%&`R z`!m>*9*y|M9FyZQ=v(7$?`{9hhS2l+L1(CG0WpGc^D%v%VzDXrVpkvdk$wW5bAYY2%P1s$anvL}HNOUS=+$+^6+3!Fff&DVXho{Xt z4gzO0zleV;J#5w~{_<1af@1^6v4$`dAE2XAB2ag{fb3Bss>!wGK%vMmPRapl5iL6D zK3h(MqebW5=9Ac#!jlC8*wAziE1dB*a6(7$nFb~FH8{ia+2Z^hvg0rsCEa1~tH#z! zIupoM5u~eJNiVh&A#LWMl=Kt&f;jo3Gn}%HOZMOxt4^icTl7skF}cr&1~6%p4EhUi zpKZrPE!6Ma@IjS|NjFG$I@ZJNWskT>a6LtCm>%eS%Az#6IyqU)mE`-)y^ zFG3QJa~VgR6I}CG9_|DU?3bukMl6#OGTDXzFK8e3x}7`l3CbtW(Si0NCvh%{L!>9$ zT;i2;@bE(ikJOd}{bZzOz#%5*;kM7=1>{|6O|6^F>$^a+W7m!bb`Y&wW6ao=v&S5z zvn{tknLe@tU1sy)h<_fE(g!=}{SKl_mN-g1_ho9zkiE%bHkvMpt@5 zs#1Ev0+?w3>ONJC^=j%qP?&$`BY^K>GX>lT0H*qN~iWALs`M2ncIMH>Gz+nQq^ zrVT5BSuexSg(|`DbEz&Ulqho4&CLRD_0nUH)Ni3rz#=_Pc0)!g`EHg}2z&q;V@wIW z!!Nq!dez~Ae;!n!ezmehhmNjN_AHQWZnS-QGiLH4eAY2pvRE^US-hGacNTta=0PNs z@1RI4=09RRf&a|;cz$xxM10jA3&vUJE+Q)C6Q`JTTaJFsNdeo~5I#N|Ov}REc8sbB z)vWI$9YM6Ri-?cg?W~pXi?r3bO1@SS`?*C9qzDP9O1X&FrO@W+?eGEbY~o$m2cpHM zy1H*?Gy8Q>2bogHw?u&qT;lSI>kK7^C z4NUTe=6rblTW@d5psSVcIY5=pJ*WJHV%r+xyn-_AA_XSEf9<}Wk`qKb?PPj6LA;_H zahJ{}V3l>xUp9nUGOGrl)AZ%@rL~N1c2ypX#;Qf#aIIF}h0;NTt~A0Q-pAH%j&`W4Otl3|HBa}xZHc%WzSc;1lQ&v~eQYSv4>0PleRQ3|B>M925#_giJT}2zu zW7E(O)nHM4KBvee(YgJRd6l-L-KBFngB1YFfjowd&7D|q%vSbnBv-)q;W@a{Yame_&g>*Yv_&46^3ukJr*>AMsW zlr(U?41F1)$?XWfhe`WH>9tnEV=accRqo$INMGIxF>8qSv6fPrt)=EYMWDY>z34?$vaEG^%Sv%GY-p@ zU^7cxxH1*dk$^!q)RUD1(td4-^FQq1XDz7gI|?oGp4)_waY1FT>6|Y z^b!HX0wnrMcf|`oEC#pDXF#&HZkOW)?iUjLq zEN3;Sr;OV{{d+*UhxwIV%~*7*$4YwbqeHz#55I^^Su1?R=zVgH{irWf^)7{`iok)nx$2XfwjG&~ zsJkhgPBmJ>^ey8(?wY0DQ^R}8xlHxKqJycACH^yfHau5O_S%)m+4raHH&7wELG5x zc(SL9;AF37neQ7*9MS+uP;TK$2|B+#Z@PTdOYsLB2#2LY8OIQ1C1Mj+p@}O36WO78FaBQ&e8-!^pi=P`RaK!Cq1(?2KZ?l|uKH&j$o zD?GM%G6A#rk8&90_-SkGCV+W1Gf!xedCoz|0;VWkG=I~tnK*%xzMed@L_jM!O~DH; z)ljBfh4Smu%9k8b!Z9CIQDzp*fX`o{f-K=bavjdi+4;aH3=Xy&*0h4q=iwj*#)6U? zi_S>%K$d)H+a1e;1p~55bGmZLC!eFQ^Dy*4$+NOxuxOT~z?f){M_T*^&25(zrXAF^N=O1_gti+8j4n01GFhm_j9rd;TQ zhcvCPXxep0j4Je)TNPa_Xu*%9O?tyQ};kX1U=_j6ZYu}qi{21Nr zC;WnS(D%%UA~2%lp3Qs^DjxS4pbm3ZP>XEg>v?5@b39cm{a2AGTl5ZV(h1#FrH&nS zf{88Lw?s2g$?e6kee%6&T%?b;PeLPio@)I^?85}~tjw#VfUVUG*51tbuPjh+MTz2vJTp}kVlPq$DPWKmEv^V=}}^7zgTdqS0=kMx*NtUT2?rpqHAXnCjxBP|XS0w*iY*1)iaCLf8v*x9)U zf}OfhMR}qJ)A}m)8Hlr3-Oms1X{WlpB4^&m)Fnqm6mIFp zv<#l5>O0Vn2dE}vS`^_BieNM)oQ-`8rKzqg=pQNbWhZYy&+ zA23o*1>UZyE9zFSsI>u28X|fpOh{suG@Kz>qF9%gqAdUyY8#-pcrpAuC}vd(mp}~T zW$~Z#ylM4M-c9>H&`A;H$tm%8Zgf#X+uXJTl?JlVM|mnt3|?T!|$pwmX#mKKQQu@iuR+pSik0UbJegf1m~4P>DBC z;$;C-D*vMF;lkfTj-rJUR5UFfh7;J)v~ig54QTJI2Io?MwIk@|=|h?M7hM=8g53jT zm2Y0F!yf*x*mr9F4SPe0J=lG10=FSUh0;tLta9pEuJeC5_2ymLGhF!TlVzQA(`m^t z(Ol~zsr5f!qgNaGG_`H${4f#X{#`tyd1<;zY!F!G@vp>AuAvhn;m_Z4hnW-XK2+AL ze$~;D2#UiU`S%mx`ak5E?x-DkqYLA*IqJ}*5pYQ^`PUl1kk?4z=l+JQ5T;fLV&d-Z z{kMK>^+YA^l|NPDjI!RB(^TSg*Y{G-FmE62X6iXgG}S%1t&;P<&P-04S}G_I(9iuV z^k?Y!NK{*XTLs=(Ry*~I$}w6t3I`O=JW>e=bClU1$DqeM%QP5`GA}yHd|4&Mi@qH# z+++L7f;XqCT8br+htFCUca6mjW5;WRr3wn2M^3mbxu5Qj78xNg9?@vuf%(>er6DY2+A@6p`PFNeEFPUx$j5BRpV>s=|Bxt>=-B!A!R|c}J_V9xkf@#Tdx? zW%3^@TBHWuk~0GwZw+lGUW~ZdRF}|my`Zd2dP^F7tR8$9JRV~q9#e+5qrh*`Xaw}q z?1x+P#|m$)PjM_$6h7IZDnRpq2V2*S6Q0__=VCZZH>oZwrdkpRS30;d_7WQX zyapkl#GzNvk)fF03djMSIn2$VB7zfZL9&b=LOMhT&LRl!OC*}4QFmSmg4?O3BGvhvsB<{6B2m( zb#;_3SN_H=6r@D*UQmKEtTz1;r$>j&J)$_vW93^)nIL@HTt_mK#T}pPDOrW5aO9dz z_R{KT=6VXfJ^{ypN@(Q-(ae8>3JNVsR(A1kxD}XJbYz0)T6n&RoX<*@awE|m7cNnu zB;J(906PTr0WTJ@h_rwGTkgCkH zDe!9~7t5#aFNr9f+wU~#C75m&nHWjSUJ{)>w{5>y^QU3xo<9x4%tLq3sh7mW%%38- z*39SSn7wROuMNg9)orj2;N~4rBJnH3P{P~O%-Ak_q+;X8KwbD->{HWy$?~#zRl9`# zepw9Zk&4?gn#w<7%bbhRFWWGt{?AEF`>i+|hkeEl<*DHvB;#gSfsP>_VAjo|rISQk zZ6fWQB>HG?lG|i4R{J(hoGcRcueD}C-s9-g$)bx}XZdxCu10eT=wW}c;sQ^jxkfh`%yol!i``_hG1L=$Z)-FO8)${rWU zZ<=_%!`yv%JQ0s6UQl&Q))t+wkV9V)&N|vm8V}z`F-SHHxWY=p@ z@ZD{AUBo9`dCS2%4S=8%Je-;lxSL1-8yo-}#+WrXJY4DYE47?1+WP*XDrxCfL4|Fh zvWw{X=^`?CqJsJDN#!rjp5WHx$^t$kXzg^-F)$D%Du1Y-A0hJ(4yWbe=u)vzP&rAugiE!;(TSvVH&$!#%W}FyI@8^mx{>`rf?DtNvQ1R_$?lHQND`NEb zu@aiMkA_l*)uIKZ27oR z!UDe;UUaV=!~>O73Gy=ilqZt(I{ES85L%rpT2sml;o8c8bsD8VAjlwU3 znV|mk@(dB)>#gh9F-Y@g>9Wb6azXtDezJVbar{jI7!bg0$3%-;7~I{@N;p{C&JeMo zcP;_Z@meBt5gGn7bE8DT zP)aPR#=m*(SiRgqDjc@KOyD;=sK+efr&|?BLuZKry38H4ewGMm7Q3Um#w=@kRd!Qa z;>%ic9T2#V_wRIRmWT;40uD}Lg=_L$l`Fi|j0>;fokleB;C70c4U_vQ)`9c(O&LVm zLXm=?_)BJsz|Jqr#72W0!yy+-EErAD1qiw~cMcToEPuw~Pan;J+WLcz;g4IeOxsB{b3~fXaFSxXdyl7euM2-&>;?Lw zyLXsdJFLOx?K?_0Ul+aIF8T5YMt`C z-^T2Zk>mw_C~IlMTv61t_c7Red?zeD#kt_|`GJ-k0c-z0LFa#hB6>An^wY-Co_rh{ zXz)2TC=fZmtA4?<8xuO*3%NdM{vbvZOH&I(Q1g#Jm9v2I7*}W^1j$k_Vfgtltv>x! zkH@8(WGfWSJ##i{Su%oT=8lzxqNlFG6uy7r~5 zg(4#G<6Bj=OHwJ4uo`87z4QRJ$XX~`_{p(*STL|jS+e&|+RRwBe=v`mS0wzsqM$|5 z41b4Rxs%>55>x%NaD^AC!Puv%ykc$Wv>i`V^Lg-w{$yl;GbweRcvh6ik5-vaLvL%e zL(S9!Jm)B#n+G#|8$F&U`u1>d3!E7wK~|tcVUW^?SN*7JU&nC#e_)L9+{#^0pYG&w{NrZ{Lj!`fZ_jMwfhuqHUr( z4J{E}!=5_@UGTzPTN+r81ENcEELVou@-KtJi7;g5?bBz_<`VI2V9s|K7^<^}4N!~e zh_dWG%#+KXQ0zkC?Q&4@ji8wMA|!0weq>|d)WFK-(2UM=0Zq~zd!~rVJzq3)Z{aAn zn^w*jSuw93tVO`yPe$Ew4o<4Nf%f>N|{X^}nKfxs{6UYZzVJx`9}B)<^e+6CI+Oa_bu9ISP8a zP;ZOKj6HCm79Y;zp?Sv@oy2$QU+^7K=7&?6MTE3GQKsU1h5cQoBeh+3$%!v5eB}b5 zTk0s+p#im7AR=O2>(Ducqu1NqyhiE&)_3JC)#e!;V7`FQsDASTP)i!v^INLTJF(kA zmyZ5efabN>U)wyVtc-q(@umDLzTd-CeC-@y4#SGBkFTE---lr;z8kw#d{!+TwgO+b zeYN;hX*sUUA;y>YFZhlqPg=o*L#y%FA~i=u4f#Mb;_OQ?mTHo zAKLvg*%Wyn$wj&G1{D2N7nZT}G;@&%H`ctOMcApdRA=20w0;rdNpzehS8o2rn1kdK z2WhpdpmnHWo$rH=ch-5EQ_^ysp9{#iSTyzdpM*TWxL(1d)OE3F<6n3iTPl+=eJ6)U zO%4y=^SA*{P`W5#G*{dze9canCHMNJI*;t-q}SBmx}NRdCC$dfWs;;fNuf{-G_IZ zYM0N@=m+VGC8F#9FM!$q4)83irhft0iUuqdFKJD*bE)X(=B{O`KP9nD4E5}DzN!Yj z`;mszdef|BqO<-*`QesCUoR6~p4kL(2T*x~kms9^@QnqkK96r{s{V2;(mH@Sc+GoD zogp^_t2&Jau$7uBz%K2|lSm5+S&0L+bC1)4y=u(()BzhA!!QYWybr>Bp$enE`|+~c1WEP^I$>F+t)OX zK6zVY>c)Ldf4wc1>ZX=a={vZ)|4KFI8amO2cf?#>)MkqMuQ=;}a~EjH*oXpp?r|s{HDQ-9ZR|A*VM>&L}7!dDw;UfV8D=KEfU> zY`w~l#5}jPH#s$9>uYO711%UZ^J5Y2Hv0xA!n^me=naR#)sF>fXKyX|pD<~4Thi&k zC*r@5&~a-;ntsYPF509OeX$m&&oWBr*jkb4_R!9$Sk`D^`7Pg~MYpTVRD-Oqd`ni;d8cTvy7VV<5} zL&@tzBz^FiXzylH7&|ruKNFp~LX&lx6&ElzmQm zpMZU;zcW!5`?-ZTwJ-8+OP=e6Cqr(wUIaIt12Kj=^tZVjz<6V;PI3E)`mGnU-7>E- z^y~Efdf^{n_)m3BuiFiY0K-vb{xIy^4WnPihw|>7t zywf0d9q6*mkAcE5<2kNc*Ja%9s@iL!waN-K%-u`xe2JNB#9rj%mNjn5D*ZkKsq^&! z0n7bk=Ny(OQ~9zH)1I`CD!;@LhsJxU@mHdC*rh#HH7SVR0LKJ_=Ly?7p9^Cnp3Cps zLj%7OZG7KR%i**xqvI8o7`?W^Hz^#$0471qmzrg$$A1KA9%C_k)HaUxSl(h%0yzVyngNJ#RS#EVk zvr6lXLzA2~yO?a7L||aM9ct$~wlf*(a0wNY{w5Jn*k>oWC7BGM8r%GH+zzyIz%JCA z&yV!**Px$aJzZvau*}zR^!mx?H1-{ehHFRi; z7_N(Xi&}3L{abF>4gmyD+iZ}_SatCw1=)O-iE8QVO$CUEIAke-ZVu8AjOW7lUaw*E z1D${bxaDsxKtgJGxKhIBqA;tv&V@^YkCQe`+>7(ScYl#hQY{d5<3cOJe?WoT#0XvU zH)-ZJF-;Hl2X19 z&+vQ`Pk_s<&eUtB?88n-nYZspy1HFt`LxrTXQv|G6P!!Y_Md@Q$y!F~J4AQwQJTL4 z!REs0;~gTS<6pps?Tm1XN4WC$Ov%~^X6-HfE>8!P!c>i+xE;idA>kIuDr&w{1jJ0{ z@M8aD{l};4(}aaH&lE^wcihCCFkOGad#A#Nn6p9OistSU*Gk2KTQR-A72!=2cLIrH z#v7=-cZ%zEqq*OTM7L4$<1y|0R;20%EG6A8k=^)Zz5@h>ro?|mqjrgAp>5!+0*69X zPpr&x*`p@$px8$LMJeqA+P({V3@^NF0d(S-U zE@DZ6D>m~n=SroL{TXQ8!b@W))l~f9zk~R%^3`H+EdocR`RZ||&Af%a+$|FNX%=D3@aZ{}Q?4UG4NK3x z*JO`|a*tl)-_9PJ>=-OR{vdm7t{f~FFM+T$jVM$ER+**&78`-ydE5gPp|`R)~wZa*GpuDnKRdqsq{E4{K8F|{t2 z!VR4^tvqcCvxEBzruwSAqPv)}5Tx?3=g>sxqTTU$v=gVx{H^UKr%rocwP97ACc9|^Qg~r8c^`HLBj`W-#5m)!U9y9M!FQHsWjj6C zCqnx+H$&?{E0w$em4;YPaPDFg9Af5zNgN%T;w)eOCB8XQ8>Hp*Dmg`{bGO9!)iK66 zfL`1$CTcIx@%=a=J7EGqU$=-L?As2sf9u?{QpJm5!{IcvgiGP(j z(;;28r=M&@2ZUE))TdQ7MLU*A6vJ(s_y?nKQBh>zcZGSI16qZ7XYH>t$1f%DX{fTW zWT5$o<8;-*wTzw~UhZDu>TEJ^+e-*BE;u!P~99;To96I2znvWpewrM}-%IVid`5#P$3YpF< z=gk4L5O>o;(A^XoO$j%x9IN*5$74< zWhkD<6|?l#f;j4SP_%Ymyp$PaC|OIB590E6{zgkRN0H(IVA8uLJB+wNpF&dcPA3u0 znMf>3%lkDo**4e70y@=cn-IG#=8}!2)N?J850M zzO4kc(+TQ764XvZiBBykmb}UV_tGM0$9E!hBny(P$~|Z^)z<9ftXak!ltjor2Hx$^ zns)4!@NC746iks)6`^5FmT4;Y@>(QP{2|dQJYkHwi8B;MapgPQVk#{$dEle1L$xDp2;&GM%ivgHWya!(VsfZ? z_JH5W4LwkkjrVspLR^&IH0Q8r9v*;Ob@fZW*&QWK>!Z@*-i|#Uc|5V&uy_i6dl(L) zkLb_CxJoyXLXU_f3PxVeIc3NPs;G3pUw+2e6I$7l zwN{~bStQq5`s*zSC6%=i*BUUF=B!n!dINLLS|nL|d0Dc~F)V9CbD5k1cdu5V5&l|D ztF7IgG_&SLqxT_PvL(GaPHQjZ&wit&9NCsjRlvf>XPrCH_@kKq+L7(32#vYlm^(>t zP055e9YTWvh_=h5g1DktQ#6L+^;{%P22cN>F_j$?VeWUVa!eNIk^Y#N;?eIM558@- zoHI%S%{wN1+J2C$1B`RHl#z82vVzF}TTEvnAMAOcyMJ54vL=%y|G1&}d)j?WwCv#J z0QeEQo5{&qZ^@WuDL_lsDr=W>YwHi_Rb>30&qZqTQvP)SFi8=q>B*TBOAET);y=#T81KUzDDELNZ#99|a3HBDaV>o>~G>4@ihK?Q= z0bao)Sm#MyiLA{lrKS%aJ%^2|IA;26s0BRO;vB9K1r&V(W5u(8$4YYy0oJNH(iylF zgMzCp=D`64gBU9bFm;CLIhc1^3?367w&DDzCCgp>Lm|$)`lH5AN54f>PFQJpFKcaFYF$2r>Tr1Lv&el+8B1#(swmokDYZ z(!*0QSC_zCb?|^k2dc`tw=ra_(x^$46KyVnb=6G_0Clkv1>_`KVcN*GqIU2=-BY7W z%-@*XjrFs%hOBX=Or>8A3ywaiXLfEde;e?PdD^Q9fAkp3ABN(uX!U8~Q^?l~tebe8 zJ3(*ak-X=LE-??RUCr4Ho)fLfr7T42utJpJGjp3V4lhoudQJuV94ge9HdgLI6QCun z+0&pXw)=rA*}Fv*n${;CuQZ@!0a{IBg`uPzN%kZztTJ8iNI%Ev-BGhVEm&hN&};JW zdhuFkhdHLBX9j5_>nVqCpww{Q7^B*>9?HR~5pri@rZ%mi*b~BAH+&|mg{U?SR-!DL zefCX8z2^U+3SOm{Ga>+T+vf~Il6d#07te^$&<6vUe{25lxIVoHqv-EH>60@e%Dw7C z6~jn6dj@lM>G$|V_e}#r`+p(6*1R?ReQt%CzH1(&&5ZPN(;AIEm07KFBt2WzuQSyo zFqMTf7OBj?aY(giqFO~7_mRdv0tppqar}FGGfpUx%q`SgW@Xw(|HWYSMcYDI?DHC7 zu;JwJF0k30zrtl^RgGzd{ST}(%@_Z+q(vyU*FhV!2sEg2dnSIHR$KN!d0ROu8f%@J z0Up+@)$A0SxsbEjV4n`Y%X2nadEk46T$ow%!`H@^-C1WfE6{Vcf(%xRDSC_6a*%@vikZkqBAIp&K(vJWL0s;9b8cXH*g8}eN8Pb zHBie1Y(&M8(o9d5mj2o_vrH|?eFaNRZMEF@hsfMDSKjYA&oeMX{qg$w$UOJnbI*3q z-Ok-u+Yt!!uU96tU4u^kfop}{phtgLgEL;}iOQUKGAHpQ0JxHC-FG1$rUQ?(*Et)k zr8%SP19VP9WL&$4LCZK&C=jm?L0}0B>9#0i-^x?k$lG|?c68Kb#{_IM#+wE_-To;B za$(18a=!KpK0Bv}FrlkGxHhI$F+8f;Yr}zdCCZEw%MQ}3>LLyU#VX{p|6@sy&P$pg zu3mAAgXUU&87k^{Yb!44DiRtHSwV4yhjS{i2T$}O4 z0l3xY=Dfe9FNXQ4+M;h*6f9_+wnjv}`4(VO4&-zSZm--B$$Q?tGL|w?yr7ZKNZcnGUuk5qM z{#s|=v$y6YRH;6DxXw6|;)?~o4~4T~Ou=vFY|1!e^&{VN)^c5LUHP}<8#b3nuDjj0 zBWBM2L4O;@3Bzt#ikaM;GQb$6RI6yad14i_uh%d%cL&w6aXTV_=9G@}{dUOu;bYKRu zC-uxv>WSe>Mm9E70OwKoA9NhjDKjoGgg0I<3rDgN*XTMsn%8V%VcY9G@y=>~ra~J) zl3%MjAHO_IV^c=_t=AF8q#Xz?nLy~6N6XGzt;rd0%MuBa0<|he-V^hTy!pr}YQpXX z?L%N_H6bc+R>+IL_#~ED&huUDu}1spcusCdc!%zsx3&ma+Ya$S7hm|ZLu6tWaL%Cp z1#6E=ulJQ9os5p_wWjwkSQ~k^!uz|{6gcRsU&Kw~BWct{YjZq){q9A~gICbDi`MEb zI-HZ1%1tFKl|O1#;S6p%-ssFtN&3sIFzymK&Vzg}VGUYD;fa!NUE&a)_9g2zfaYDYwy$#-&JuJ5Z5-*n9kY1m$U4;ebpioYR~I+n zA9U-IH6X~u!!wY^69`3x_r;HR>I=pWbCYvkzvo1#lI}*s*c~evLY{R`-uknls>#>v`DY}&ZBx5DJ7F*1-e^4;eGfhneX{WV-TzL#83vN9_X6K@T(;J<; z{$J`ixV|jwV+_S!v&L48_(Up~RJ8Im>l%t^6}@}S+AwtDSi>{UMbtW5iUcUYgY}^;dS4^HRn~Cv*$?qMOe8C-^OtZmcbj^-J@X^_dHAM*F`6alEy3 zf(G9_o}y3m!S!5|o;VVvrTUomfMBqCxu}Ro-_KBdxTQ4lIIihPJRX-0PeTK`rCF9L{-r~qj08?f84?H5RW?|;G z5O(62hMB7ml*H~##<}W4D5Q@Mn7}>gmbkuN8N+7cZ80BAyI$#&opRif62<;FFqXJc z>&h;zl;c^68`I)&!Dll>YhBv|YswxZbEtI&f^mr((}V1@c@gkC*g~;^z;t$p0zSiiW<5Y#Ze%^rR$8n(U2!!a zSS}0pQ3vd4lWji*+c}Hf1I-EU$;1sDPbbjnKdrH*7j5KUXl?Adow^iak?$=US7>d~ zU{4zs5;}Ot@$CZe0A*EnbO?5&tYksJ6URs&z~6MV&^jbBl5r>Q!M-M4wX3BV!3BFY zFo7!ADRlz3A{Z>pd{MWYdLUp(c#B^C%Nm&S5iYbXPTU92Go;RopWspOD=ukt zEMWhqW0nu5S#kX;`)2J$WLys)->h6t)m6LUHTI8GrR#rL&GEg4Vh3G{rEYs%u)X(T zX!iGw_SOF0{>a<+&B>et0?)EI(sRqSAN(z5@E$83Jk0Kd%hY#dKk~lqJ2%Bj4X)$3 z)$r|zg%R49o|* z4R^#_D&U^1tg;NE+o&C56lcZjIGpAb!1b46;ps~`mM;CY_K=%i9__)c`nhA)9^SN` zewufn_4Jt&Z{gP;vO8B6m7pR|o64xADt_`lm%K&Vf0X`Ln5uDAAB2t)O-O{nfCV!< z7#aJ(*dBqcqjVk9egQaY*fn&E1vh;et29*y;lP3?3RmVaa@>0hwaFm}?2*CLji+s1 z1(&J%O=~qciI6RQ52MLxRgB>!VBl&N@5A}V(9oM0{e3>3iv};Yu*;?;@^Pm2C7B|S zX-dIy%KFeeapkv|8u zU;Y&ourZeEv^KVy1=GS^!$s({;4(7d@;A4xYvu|WSBA2HLtB6@_d>bc3-v@OE-}}4 zZdFtd?A`s^VULEHpuSMjU2Bl<6gWG1k?(#vG+p1B>E*ldl=eq`vrq4hPD|b_g27Mn z;ai7aMZCjaPj5HSOU6Ip%V_G30=~r6%swjT09AvgFZG_*%cWxswkKFt5(I)g564=N)`!e?KEeK6F zx4DagNe^?RFFIdjWC|-?s*qgE((COmoF!aQY zyTGNaLa^XDJyFpNoIG#hwX8!6Egtb{-Qifk`YOhFpvY}-7pykjb#%GQ)TPqnr1f6R zxO}vLueh3@?#o2h&*nXf*|qY(np~^p+x@0S%K4NqMq}V#Cds-(Mn-S$ z1hc2b7I>p?X|q_gF+jAjR`$rIan z8Two34z4cTX#}aAL&6f3ya4B1enJD?=WHO5A>Br9K)~T=+0cdW+#jGS<{mMX44!jS zc^HrzpWj{=2SphN8eALZi5=+URIw1Y{@RGdrEV|q&z?pw`L$?aGJqlT)dn7EO)xQO z$Q3tzk0Wz1B#%o9OH3+_aRlavSFj)Ow3Y9-Qgmcv<3F_?ed_ zuJoPT7fff)T8rJ3zFBK%*8_CbE30@SYNZEmo;8+c8Nhe$8IYSZ+Y4v!J$$pS<8S8n z)m((WbB8e_C^0cR`)S>dopdWKU_EE$0)~5f^dX}fQW1}a0s~B_Jc$AU2GP}=e ztzRYXmsdLatj4_*HZ1l^G}K+x3xi;epNprOnh3qzeCFSS{`kl0*A$l3hD*_RZhOq+ zq++1*6(k_g=zgO;OtgSIZbSc#inL~Z5)F8K{uO6Yqz%$7lA9x7QwAS$k1Da@@Y5W#|19j z%UTthyC09`N30cD?71>&NFU51fTJG`bAyw6u6N z!YE{(hlyRvG$P)YZy+e#A{fhhZt^Vrocce)mB%4FfCjBJ{Of$;!UIbao&~=_g${cx zkn1yzDTDQ4KF&FDX*)K$Ov?7OO5cO!G$|e*$821M9LQAyO`~%PxTB&>9{XluwBws~ zLLj9w?|-p~CSzo8p4bDmxnFB4|JWK_rggzOs{Pm+(e8H?9#0*4gk10{XLEL67(Tx{ zNM}hIgkfFK_qcJQT3p5W)+1W@*c#OIB}8Dz4!gx5LNvmryc*Fw>`P1M-WFZ$Pbg)~ z5&3gVJv#Z=nrccZr20=Ve2AsgCpbSjyF6t+v4&R~s1Mt@l`MGbNmZX&L)1ucTJSq! zU}~~VFs&DDe}d;Ucfp0{to}{u=@aZ}4(cUqxV6RMX{_Py=l&LKy@y{^D!h7^l8f5M z+<3f5!=K{#?f@&j`qWyjX|w_A!JuFmEmm_BIl3`)C+*oSrPYS_7I(emq@U#G3PUG) z`iC_T_3ET{awZ6&VNQ6N{(fo=9ypS{6(HOn*b1khXfty&8Bg!T^dq^(mIaIpNp(9Jv!9YjV2QsF(_zO(A6>L`DO*e)|rI>un>o^g)5GMY`+LZREAhcl&g4MPn;_Fut9Orjd#ctM!_mpW{^x#! z_Mb(;BZ8xt^Zs{BL_1Pc{LOixy53qY$6;?{PNH}z`5|W3aWyC|j#XO)e8w{O-iRr{ zo)bPT7N1_=RM&JJXQ*s@#|tZrOMCyBE1_iV^fNrDt*V<&MpJi_s^PaCxPW&sS6J@! zxWvlP0+WjN97|uBlr6f+9bs!Q9Iq?}uzG0?fwj%-F9R;6S4A~pBi6>zb(0FN{@^xx zb9CG@T#9E-EgkQe8dR%{8q(nIC0(-)ok=f|i(4JYhRr%2*am@K1iljR@<$YHDx>O} zHbl|6GV1wuaMy4}=zsz&3`RyVrlgKKfw>shbEb%@a-eW#iAVUI95(3KLp0Y*wW)@| zbM3s`>0leIcE1TUfetQ9?f3|N^WJOpz)Rhz%T9Fc39;dJ?t~~?dMn3EytU&ri<{aR zJ%kLk;lI?D1yhxBsv7RQsb5Zon*MG_-OH&E)3J6mk$*R~qec9?q#dnCdfd!&x)hrR z0ZCrLb#x969OK8B02*irs?N@UTL{b{cq125B6m_5vuYTMMo?Jx$cvxoQNXiba0TbN z2P`dF^P*m6wb!!)DT^BKxqxO_R1eSTbkw2(a4Gr~3;5gk4wds({XElYs5dT(OQ%`h zDgr;Ny;Ti7ij(K9TDME%_A)&IWn|N@PDc5&NqNCmZQ24Pa}q!z|08*P8nrL4!Xu_Z zPObroG0cAgRxD9#VzMoQ3o$>=p}FN%qG@|SI$U1WHd*J={qico_JT-g%a6A~D%P{M zwmWsNpaM*5>@>E5inJ`8#|2tvFTGVkHP3hs@EDc>F7G4^ql$CSutbgcqj=o~*Ahs+ zeS2gXNP`-~a0f*+KRt*gXhv`cb5!gh=-Cqih>9budUoe6R2QE z=IO@!QO3SzUU=$<*g5+j>=Z2=&<|_mOrSzv6+C1NrV2pWJA1kpE-vKN7W+qk8-9A> zBs#}F&>^mF98qGPP~(1#6h55iY4*M@E^U`3nPZ5Vv;SopU0K!jJcBozRn_DTzX}%M zJIwfaAwURVZy#?q1=^18XdAnt)fY9|3Ep!%=!~zbGbE+$zj*)nzAI|bYPZPXy`@29 zTZ9|$>*kc^eJf(-?C(c2tEjsD4)V~@IA_%3Kq=fCow&c{b_xQ-x#Ny@#jOj_OpyOV z&#I^vV_E*wOmc!!dG!0-&9NaAMm5eJsO79 z42Tr@8hCV?S!=`0zQ_=2$u2gw9Z^`x-9|Y!RcF|Dt)MnoRKWrZ-#@Ag)%#tLDlT>i zwTTymSg0+$kpje;f+!T?w5v#+jEh}05-KNXkxkVd*6zQEG+k1PNaSLJNF9U7XQ6IH zR$wyjzMl9gV&?4cq!anN<$p+WA-fcjx1B^*^EOsU66Q|C_g_Rpgvd_v_fvJ-xE}rY zT_J}(Wc5%naWqW)6secy{REApe)RtlHWnF8;4zx*r>bUT|Am7v<+Agq%8=}3^veZ_ z7&CB}B8@6|I(r>Yb|odaMjb{JuNb+;wF4%sZM#ODEku-D7~mRvh+~t|B#PN(xo1#y ze-#uloJq;W0j?Q-b zGTcy4kEQ$ms%Mo!n7^Wzp7#z2+Vd^iBI*~Q>Ue%YuLr1FzWZC~3d?6Z(@s!sfU2&Z zO+Xgu@PAcc0F}o|1pz9e>dtg=i%nN;1y@y_8jOcO3DOP+4zC>jND`Pz)niBNvCbo&Z5Gm!s>&8vOHZAk zr^=xvWebRSivk#F0h)JDFg=q1|Bo6~Q;CD` zH!%uXtHXq6dubPR4KFo@~9w6z_W{EVps6MYdB9?d}-P*SnY<9Jq&*3%6!& zq93cN_5;TcUS@cplZ?VAp4EYU&@>aTWlQrCR+C?=|n zv}15EJ3gyudYpEbCI(}mvA(4Qhg)J)Se+&31YVncrJ$KE-}1{Re?IYS*U4@xm z?n~#Ys~Y7b!*^6ZR3-GYvRf%PmZuajstzah-^Tn4rofmFD_$=EY@gR)zi`J_mTy8_KgfeH^OdGGq@NnnBj)pP5BP+GHdBa3{beC1d=DLgz_DWhl^7 zdyYq*#mtNYMy`-Xds*Ru&RaW<2En3V*&&I?J34SEg=1Yf=BXeJ2~+04>3!s2`GP|j zzB7b@?jg+#Q#CWDu=46|FpN0?2WxrDQ3==|P$=8=7WjhL_`Q^WaH`(EZKJG*=}NVNa5kCd%4NX#865PS2gwT#>pa2J91Jgr|}ocy0Tmcwfkp&Hhd40)d!)KSuR(QrdR47*b`i=?jo%qsV}`yVMz zlHECHUS?vmsBff-Zv17Kal*Dn3U)=I8erE+h;xj=7x{(ELo0|!aE&v`Ltmzik;<={ z;IQcQr4pmPsK+fs_gFd~sRnu8+S)owl{1x_z{DKXxuzOob^0SwMDc8$pU$VPHPt|@ z=v!;4ljUAy&`Wf)ma3OA2W=*dUGI8jlxxu@;HVzfK>M6`EM1Gmm7K0VIepG!a%7*& z4J?)w0H2-mb9SF2S|je>D?2!FIokr>WHj)&rnGxGDVKQ<7q;nR$AtE$hWgGs_K#=J z`y3MRG~vgL(a7KD2#{*|_+-Q0jbCj?Juw94ER&@Tu8lA{(=D7)*!0p)|H2K(OlR;Y z2j?-gGiJNQ%yo%bCov03Vn%BuQHx5Vv@D4c*Nj2w6^VJ<1!jcAyyFtn12Iy0b>X1( zq5@$>Bbr@Xbv2J?t(X0Xj@4Fv89{fMcOFKFccFp=D?5Wv;M(Bny^(qyL8DHgN>vm@ z8$NWYiAh+3POD&S_|AfNN=NOCc|~FvyECTt2#I0}&Zr)UF^Guuemai%#n`fr3Tw6p z<;wN)APPhtkdPX>_7((usj?%fGBO71Lu{_}&q>zXbfJ!_+GL86m9Mn0u$f8YIFPf> z#w)sk$Xa}#LpjO#3DvKws*bAZni0*lp0Sc-#Ay@04YWApwz16Y!2gL(q?*`qpe?-y z3~~o@YJWuP{0kFoqQb;JT31&!C?|RE)0w)ezxO($%#KmpdaBxUSw?Vu1B@5u9Y99@ z=h$@!f3u3xg4kY17%=k%hEw>TW7iS$l^y$~AsBfeDsoL-{%$3J#3T>b|nwoW_(G661gM@ILB651| z%67zX0M8y{xW*2yz5j$V$4+`$VEER}4V0G&lepX%)zX?Zk}=j;C2}5e*eAtMqYOVq z0gV)1e>*{~8>tX;bphH%!yBp4)}M^?^k~B)1mCQB7|3dCo`>fwPkWbt@*V8y!9cHG z7RxOI=igu8jsI!w1^4zws(OuSuK~0vKdlv@?VpNOitn=b*&ljL@t@`ur%kEMdidsf zde%q<1u|B~nKS*Fy{N43{5)WF%-x<#F^yFt)3^{C)mYUswF{v|ja5rinGibESjBdm zI7xW1CqF^oUEJ1$vu5CU!eFc#O5MViF)JKa2YQ)fJhALjumH72#w0+#iMtv@_3P|4ofA1^1dprJKW<}2Fvk4%bke!1=h_#(#A6yFOXq!Pk;|= zGhzH)2faAk72Jf{Wu}9;)A$7r8!8ZATjGnSySdgnhH+uleV6VvQE{fOxN)(mimCEO zxE#u~G4aBRxVV=lH&r!k3lS|heBxE}`;ZoBi|8|?Sk?_?G+kEEZ%tLQr$$lD)QhH> zPiaXr)z1|9l>Tg{dg7tDR?Tr+X|*8?yPZZiSMlhMKW?t3<7(#WEmV+cV=T37p&~MZ z2Q$cy?;LVmiHbI?{qTa0je|PPI^h(ZAf*E7!fNFpz{@ zm5r>$GlVgcx$JTp7OO&|_=XXt{{=%Q1scG{R_$;B-AhAbRan$t2ILC@>EjN0W*~Dk zONYE`K-LtC?#?Og$Exs0yHD!bWNLSNFPIMu>b#h=#2srpeD{a}ePaNqGo7xi-N zKfWXmJ$O|Tdh4z|-1hz`PBrOP4Wm{zrW%iAkB=6D-(s&yvf))Jhgk=#XRzMnJ7Aj& zGx=f^<4F`VlIQIIl%}^-ks)K6K-Jf?U-m)9Xs=953D(N4+Dg%)g`8zdft(w$oZpI{{pO-N*LcRCV+5s3% z1wSzh!^D7A^ZuQ19YbK>QQ*y}l|wMRJb+mTu6SBv*got&GncvaNUNHeds05+NVJ7N-fsZNvl(rFUq zr_#7Ksj-o>GL)!G^`gU8pUSNCztzZu1W(DJ!k);H*rzg4BRo3 zQbq154ru}yE((!h638DO6CBG+e-D? zsitLuE8{-70<fokcOEB87KQ(Wa%tsaps1wX0}S2i3t;X9R8OfVuGpUGX5I3iiA}Pdcb} zrZvN;O-EI8`0qWKhgTO$fgixTLumcu?3wuMo7EcXW&eAQJqM$3lv}Nw?VJJ~iU$YN zKkd60P^OrBa$$W5_Y~Xv!7h4Sjy)}g_IFfK5iPn()#i-at1dZ)89CCskavQLj=0dR z1g@bAoSy+#w+p2LF5Hn)0(WJ62?vLHC;|>H(8>f=*OCTi9h;}e(6IzH(5$+%sGBJ! zQN?=Bqw$HVe%1a!?C5hDH837q4_Zz4Nt46N8P(~_MCFGAvIi5LwsoryFxNlmFz4je5={0)^c5Cx@WS?FPs ziZbmUM4_EjjRw)ch!tqu1IcU;3X}c` zoz?4&BABOx%o8{{n1BGP%MjGGqV5w4u=LH3k6^Tws*Uf;IJ~pyRA*HScR7{mqS|<_ zr1tzXlrr#R3hP6=x~RJ5)GiEqhi-OJyJFux1r??I+*9UNV6u8|31gMe2U}x1zy``Du>e=CRML-B)J;{hEo=@59>RbD zqXGVs8YHU#^MfSjl_)t`g@^Xp#Jwkvqr^~?BpBulwxC7HD$rDY6YWY-AxY6Z#=$jU z0_uZ(QO3+#dv`M=MH##U*B*%4$^aC0pOYjz8!q+&E5$>&ZRDMT!gz}srKq}bnSDyI zR5Gym6k}=Xf~Bt;mIkzpv6N#h)#+4t_eqGs)e>TvSOwG;Z~{K! zj^d5;q)CXkIjDONRndPerzA~sc&+74Tm~P{(c~T~xDlrnu17)eMl6jOE{>0Rl>{1I)siker~F&Q zL0IgAx6k_7l;)2nuXvP?)+0pH!Vrrq(_It1P+L+}L|8IPA2;Ge%j^yr641Z$w_)28 zX;P~4OJ4s4SV}p9Q^cVAXB@L~s6*ijkSvR%XYM330Ly#XKSx)?hNLIUBom@)z3D_M z78Kf1{ZthhJ|A`i@=cxOGa9&&U)z-?rz)H8)eSE6YsAs1-Wc5P+#n)^mj#YqIdHM^ z1QisXqK|eFp{9Xjv@4DeV+99}_TBHTYK3P&P0!^dB|A|}b4Rhdi_XSbc$|vW5E4rx z`lt}xmz&W?`Fko_-bYmrY5eg39H0l?Cwm$Laf|2YjFLnt1zMU!XM&qAQsa#1crT6=)YJI0M&ZL>e zDJZhh95pY~6&|tOC3bG9*jR~OP%1WpeETWCRz8xrxK!f(&lo*>wp@vxm)Lg@%T|*| z!}_UL>sLQ4qe}}OC(|d4sjZ}AN;fJcPKj!1*hMF%@@d)r%F}Zz%59K2F_`mNn;19%H9wA>rizmbD)Yh?YK+(2C5kq(|-UVEOaqHzf;#is%e)k zR+I;j7tYhJ_0uy|t%P4h87!f*tLM~&(K)>ehViISjA!;<3=7bV#cO>je~@ZWG5aB2 zvBnUdSMaWrX|Rf_^27ghP4f7HWxGu+2CM3WK0vf_1*Wm7Zu>C+ppJo{JPkXGA$UO< zyda}QBUu~6@yVFFNC)SoMRJ&>LYUJPZ5*s>);x|I__+#{F+9GnUBz4_Qa)@f-xsR?5!7Q#>GcI!s$%m?MJ)hE{p(?== z)0E?mzeG=ms|ad7Of{@E4C=?Gn?Nq4RQ}d|5<~X)%bETJfTG)#4k_`9M2 zgkgBIzmFWpay~GVEMR|4B;TQ`1GOBkrkZRO>ARt-Hk}%-g3O&7Gn#AkWVm`Rda6$e z%@_E)6wMzRG4M+hC})_ePalp@!KSi4w0DHES;k6|c>VB;-=vQEF63^YU22Wm%)sDnQyES`9=LZfC)(m8bQi)J@Bp z28^ivc&ax_4aAFX$`ZUA+X>xreSru)*GCjSM*VHBU!OA_CI9EuUdxzz94I@M&OML4 zbQu~IJ+GR?97>Q8R}7E1VBEzG`s+CU3*q@SbA4ocp)O~iLnFtkVZODu$xf^C1qs;c z1^Yfe7LDJl^lYqZSGnCa>HXv#H!rQ?21*&HUibF^KHgx+_a&i&4udIaE3VR&ajH(n z#H+}W=g8WFNUla~yUozzf~UcbG@P%Mo=bXxU(s!IyYn`Fjd`=yz{q~UCHsAD(cH3& zFP)6+eO$8NuwF43=E}{UH0@PdJzn{H4>X_yY4>>5srl4@!Fl|PiVW^A92X|RcC_{$ zwSGahH(`F2@q$e1R=xo5#LmkgnQusJ405u#VV#MG%91KOkQ0T^a%(kRkexqPBK2zq z3X$4C(V-ZH%@xHZWP{R#pH=vFM9hui{=qSwFURI0*XlDiog&oVRC`FnUsORc%UyEz z&kSinEC0DuPT)YiYXssxfYYgTT4t_Y0rN*|-92{9PI(?H1 zrX4?&2;bL0A$MViu>j}SI<*%#)K&Jq$OYN849<=6Wnehoj61pS{0evH>_8`H9wnUN zEoxLp?R%gFZ_(LVhmet{eluy!1Xa7n7VQ~pLyC$0hqf!y-ZKgIhf3y_bYp^w^nH6F z!u*yp18egre4_I2{mwyg`0{p8i5|v4dL!MG!MvF>>^pSG6hEi+0wM>_zOnh(iCV@a2Nt);*tChZ@cBKkon?Kukexz?iq%&9-JBXUF`P2&`^7T zJ<*0bku5=Mdcn+nR|1*?uc$eX7{<55Z|K6jw68zmqVQrNpaqdSkEXq(LTg;mH~31_ zFZy>3E9Elwy#rJf_5y8xNd=W}bp+)Li60)Ob1z{F&3-EXvTEpgiCVr47t6Lk32&~p zt>1Z*-uk?6!Z8(?nJN81UREwNQbyZbQgFQyp@muz_|Df}!WZ}5hDCGVt=abpq;{Mb9~+iq8Dn+ClxeK_ zxzK&}0*nd`qfWA|-ZJ(PE(~*IMZH8CU^AHMDRwwC^dNKfLsm;*o56a)<^_QT2P?JB_xBn;FJl z57#8{o7rI6qHVW>Ca1ux>|DTH%ZxjHD)f+WJQg-&xo9`T08~ozkVsb*)wk#4%u^M9x z72>lVYfUSMr68s=u7;DZ`8dTd74{-B6$Bu=(DU?2z>T<*8tQCq{6Q9$EX;zfYo0a)Lmd{n z8tq8Op2o3Y+S$Rp$2dy$`=kDaMMgSa29|vXO1izlMs{frj6Of=U)e3p#6e_ZChSe| z0bx7mck&T+cB(9e3y|^=q6R74XDBFb8kbg{=yAbR6_L2AuU>kypd+Uq^0gf&MGwX0 z!mWJ5`(lF$*;#C@+_@UVxE^)s##B|$)czj|nWm~XY7Y|NMvS$Y{+-P1*4DqpN<;K- zY5l*UvC~v^jT>js+j1+4-if=89)FbXZR=_2v}KyATO~gOg~Fo=qh4*Lo70qkgYUMX zzrCNv{jCsL%wQ-;Op1h=mWM?~R*u&7H)=XvMfpYj21!eeOaG#Y(^XLI?0vd=JK@(^ zxEFra3)i)D*3ri4%D-b*1KfgNCkNwZLsNV$PJXs6O55cOaZiZw7aYcD3!)@s`(Q3b z-mj|02@^5!mS{u`bAseE!1Y-&u;x0$;%fom2I!qW7-Q1dRI9O)GG0|xqo$()Wdmu> z4Ji`>j_KT{8#nb#z&ACTp=@;gRb{KJp$FCG#~}|&>%#SCa+uEKI6=OzscNR@exZ7= zsbxV+_ms%@Sx8AyzaK)UUQ>9m<2@=f1ILwmy+^fXsK)hb=;fHxueKEHykGy_^Nd8d zzOX5=k)W21WXOH zb&Iy|8$H_+@}H@qDo(j`16w9>APfZ0Qm2`!S(VRUGuj}7KrrRZR4p^sv8S3<1!S1x zvwF2vBcYypc;Mj+{GyTm{pPcxf*j<-Y7K7)z@^5pK27_GSx+m^H3;JokHYE>`vRBr zLwfo!PA{WVwdZ?l-bPn51`K8QZyHrBS|3EPXwqka9hU2buXVZNT)78pzoD05;Xc4{ z6Vp4Fo9;jMIY2QcEX-x9mNDPrad8kt8CbOBM<`zSqM_kXEa%7u>Aru$ zOc7^nkiJICGjZ7IY#q^VaLzc3Jf2yZ)r=z}TFf8xcczLo*R?W@!xT6NzPjtwd=AL( zrqOe-+_I2X%u($uqpL84S2CTSqv}-hScR!^19mBc|A!R#x~iVxf13+C<0|wZZi7_q zZe`B%b~o`_X<#eN;lU3fU^5Tgxl5b(f-Kzpth|mceCcA8S+)teor|hpOZGl`c7DK& z6^7Ng-kRg@8!UM}O!1}ld3^Im5uV;u0Tp5yCwG-C?$C+XaV)4UNAQf|8z#c%?67*r z5c+wln_${u2JZ4)7@YBMiD9{VBL~>gz2nBL-Ipbr(^dDwxw5nsz^*LS0!tu8^X$r2 z!quqT!d3Y}POdIe6+8B*1^=m!k$OYe@R9LEPcSSs z0M>&WxSXnb^OnxkYfh#r2~*WO-zu$}B#B|&d|pU@%~cWYqARgN4s|w)cy@5+ zlB87bOh06)n&u7?x=4?ashLdzTRJ(}_`Eb5k*wsNXzQt4gi}`WI*2LMP^{ zkY)=dx=wL)ZfT4wFuT)@6@m>G=qGdm7|jhN@B{hIN5De@tEmkKeyqTRr_hV@Rgmq% z0v7}yNlF5(0GMT}1pJfe(0o<1U1tetiB8#mF3m|lS42Sqy{#Dfq^{z>$}{Cf)N29Q z*d+n1eIj64EPH?A zHxry*41HJlsPdUacP)tlQvZ2Nyt|?)XvWG$z zBBh~g%54kt^A>eON`|Lv$^l6k-O(x6>e94-!VIWbuH^#VycqgPX)S#03O!DsEyd7( z3GNh^`Z3KFyrqEu(ZR{emeQ(M9_qACE;SCq5+Ejt???8tfFoDhz(&(N;MaNf_z_;y%zrS$x)l(D` z_O#38Q^rLY%?z9&t~k$^V}>$m$Re2ECJ8)8jzuckVwXTUOg4I~{(knpzpGJ@qpYMG-#nuH3tv{1H^oZd#xTd%v4 z-z=8|rqV)W>~gFKeK+o32b}}*DLB5BPalr`LO!Kq{1Bh4UWXgH6hU{LZUSA#cmt%D z8;BB+&Fu_jzZ?Mz#mc$n#j2fO3by_O9d?}?>~?`2R010rCj1$|v)q8+ z6yS#K=*u^he?~92v{8~)rUa4TNypt2jIV|pYzu+?t*yH-KN+wO54#FeL15RHf-QJh z6eNg`x&fan!;)vv&^J{;#u~Sz&61Q_3eWC`I)CYIu=54BRw>xM25c8M*g*pOxQ)9k zHU2U93vmN(D8R?4(qiy;>w8x@%Sh6PrSQ}?baK!Q_BRuYIjt0IT?2N78|-?4?N$o5 z{y#<4M1K?AfHMR*v<>ZEi~?@&mX<1McUrp(T3`_MbAzoVu=%B6#~Rj(+pS!z^|2=l z^Ij>~@%Ie{?sNk_CcrP#OG}`@C2mO{N>ayCc$OLbjd6pWCa?jeV99`ubA#{s=o#PE*x@|^Nt70xwI6XRR+zk-C*+tc5ErwgV;CAl_}c|_C0}Z zRSGu$j#0ov+<;#eVBc1B>@5^N^ca(zt<(5&v8{B|*3-B8)CrLc7tst zu&3hO`X?Evbnl{S@miXA6Voy@Re|ng#aLQm}Cb?00Ukr{HeI zJ;Az~K?`?T<{Pk8-C*kq?BPIbjm*6z zbeB>{1uQ4*q>hk?eG);9Ip*eLCcKzq8ko0BU=Y1ds+VPy1j;n0_A68n-6K`U5+G4q zo9R*Q-%-siyB~4>VMf#njv6abW+Up>JF2t!=|hHEg_p8bFZ0I|NaR2@+Pp$_wzQI% zQ%!WdA@8a<^Z9=`MuNp3?dERIItW1a?vAN~GMq&zat)E*$t?0x!@jE3xMP zfdtyo`zyiVFbTloIS?uVw7;u>?fgBR^&zW(;2R0_rTGY07D=F93~l1j2nl({(3w@> zH9|uBsM`C;_0L^K@eU=v53)xkfURBct5z0=1nM@V&F`yG<}e9imhl0Ud;&f$-l96; z19(Xs5~$mNHX~$CkkDm%_<`z)_qrJ_hkCA7@#aq?kVLdvrJL(W;CoVQ)Hw5YOtEog z0=>RQ%`&%;z;9IUe+X=bM`6x>3`75?W}0IpaGWZBsD_!p$0UEweyHn17|;|6SnJS{ z55Zl8gdpEXD$BAQZj(9to7bkbAE}qjVG@EAAFH{RWpH22+21Uh)_n}cvgc#Y{<~E0 zvC1*;flFb|{^2z16E(~-Py&x?(#;KUW&ZPts#o(Zc3`8==z0}Z%k>F^ob=1^0TpuY zw~Y)#KUE1eZAOM8SN$0cEOl6mJ>^Y|42864 zEhjPreZ=py+yx}c0Euvd$i{2!6&Das1ElDpfknSurl$+Y**-d<(-&#wXDZY(Lt`1L zMN+R#%AbD!Of_qB=mB!GzZLxSWpMa3djliCtz;}YI8voq7_f@7|+rOy08v- zMyyvs-3KuqL%ss6`!c?3SgLm7Zsn5xospi8bZE>4ak?P(i=gk;tBDz_@0a9nz|EL33X5e53uFj>x zDOFvdKQ*8~K2JY=u6kP3RaV93FkKbxH>d#r+4o9R;ltoiMfvme(gxKawWUkiq386p zymKXD2DzlKHPSypda;@o8}FW=Vs*d5q~QeFpxT$8cLGR2sO>pw`Gsn0-gTK1;o

    (h@4rxS)tgA-Pt~P6z3fPnts*h(9v^!3n+aRPzf|vdT4r5j3?U)3cO&jI z`~6mlP-A(`7PQ9jif@Vie&Yg?V1RURg6Q_U)CDBm010)1i2d3R25S>tpdNP@S|<3I zXMd%tHE83Kc34l-zB}cjAUTmV?E>>25Ud;enXgnW{~vFHS;NqWb4C>G&{Gt&Ni{TI zKhNN3nK!Anew|$ae@)Q=f2I#NsU&lXz+vLP371g$t|jly=rhVo_wTkv$B7sH*pnqx!Amkb&iDd)n_pepB|Ac{V{MMJmqg44D z72tQ{qhbQc=P5~RsP#80!r$Va?Yq;=*?2vh!!6q?Noqr@Ion4A+^CI_w6c1(T5j3m zBrl4)g$5L6M zHX2dM+mx^Q)JaA*gGO!x=Qn7w*sdy?dq~s``g^;IG4)@{Drja3m)|g&wgX3u{=|#y zDxAL9p<0`he`N%J(XAaA4hKkJE7jboYMAQ2MJYQ$s{C8@(oU6RdHok5RT*!pLoc+1 zF6_i8r=rAepqO3A6264`?LrohB{Y2(vP}P(vjqB5-Y#UxSxkkyRI<6~CyvF?e>bwI z#WZF&_S@g0dAl*D9Vcm)N+OS6Yqx@FDrs} z9Yu%spnd2jNriNK59kbggR1U@ft)|V@NkFj1^m4nGwpa{jiR-CF+6=yk}CMnPe?Om z5U}JNXH@ko&{v$aW)c0iPjxZ-OYApPYd<3EE~1qE zszd!xk1=Sc@SK4>H>1w1%xlUl-y+&PcOa ztM62!ia&o{44=K9ZhWU=DpE;Q@_wrKy;@T{_iH8Iip!?@A2+W)Z9jNXS5irZJ{e1O0_^rWwjD1X0dZx%O< zNUJYtXy}iqkm_Hr(X%&l%YG-1sV~*D_x$<|*X;R{HrCTtJ^s==_Asy>?&!)? zj^wPbWA*RhhINFbd3w^BBPuwfVD+;i!;?Q{4~XmC?^yX10)ypKy5C;-WCg^z(RzH4 zC3w%ny{DK3Ju>XhoMMTjB|R$86LshV4w`-xcb$DtYmTY_%c51#P`w!&lj=|>gi|8fZ; z@X<)pPCTN}-<5yBo%zLlNa>c5RID!jga%H{q%l9K5rLC-GkcXE3F(v0*5ln7boM8e zXjYQCndp$Zd`Ow!W=od99qyIZlmD3VfGw zJgxpQB(qO``@sNo+zO!_gHv;o7ojGNRqZu z2FEeut13=D6~7=Ue7?DRupw7b}t5sH;QeQ*@td;Jnb> zmD3L;V@D@9#uDaIql%AlBQi~31Dvq-(P)_*CCkdeY`oWp7iBoj;o@-SL(Jhf`4riX z$fvNh7oRL<4>y*o2$`?${I@y$l<6w>m0U4qC#=0USfVk1sLIs`8Mq6Yxr)19;Je+C zg7Kf|hATtTLhsP-KU8r1y>{il2i^XKGKnEx4{%>2j_0$kZ61Bu=15fN+z{}}i$T=fMP z#-Ha^OYc2MXP#zL>Um(vF@oJ_9)b}AjbPxvvAnp6IjX=|BI(|FF!YR%$pY05^1A?3 zhmBx1bw)7q9V6Hmzomp*_m!yXFGE!qSXBn}qyBXA0;|dh=l7=y7g<&P4OQW{6t-&{ zMOB4{sxGps3}~q8BCE;>LRA-4v+~|XFuxyFxTM0p&-T-CucT&|u-I|tOU8#va!Iuh zAJ1uURM*09FtTtW>Qdqp)1T8zhI ziuEBiV}SrgYxK<(431Zgr&Cw3RuC?+dnx#;s@1h%zAm9&za)* zYyT~_BaL#ds=nq_fx1I~Ud3fDcPa9ksuB0YD>_R5+NDtbvYt_w>5ss##YF4fR5&?)$gNoQZt z2Sn?qxWMg_BsixT?oA0a)ZqeqmB2|UjF42%E8I@)^QLu-v&H2q)S#VeY+5;nP8X;N zrb=1V^-tX1vUe>fkD!@oc z>oD4TL!~wLh2j#O`Tv}S9rzfSay2lNRD2cH$^UWg>1WUY;3_ISw)go>HOq8;JcZxJ zg|XdkDR1wKYZ&D9(>jRhmm##_rW#G=+qg*N0fpUGHO#kGGsu#y$+y+FCUc|rIdp=2 z?x{JZE;H!Od+HTa)91f$sF?Gu6bBCIQ@!W9}d!Y-;8tiv-sGu&k>s)GzyyXkFh4{qs^r zm-Yksc-m^x;vzVB-<7DAKP>y+*1&dN2ae{8bNfreKS!BBb=$(nPBf`nO-aeqQ`8^D z1h8oP7UO?=Sr=Oa^KSVbwrsX7z|{VK%g9#UZ|@?h&3u?0o@z!dTupB9s*$$$;5FfK)9{Qm~rpX=`R#D1kahXp5(9rgu3BeR8-8P57oS<>oXTymjIVR$z&Bq%rwm8e=MGRIYpN^KZeN+EliX3g`k)m+arz^tg z9ypYl996kYy5-JCg$>{u2xj+5K5aDH+L}8%7y&ljnr$(yt4QFhgC#9+=IpW_=~c9r zK+H(7?y9ZEH@M}lO?sx&3mL;q8ey^ZGT}+5Ef(7-Yp6u-K2U;*x_R3oO?@X(cW+xz z>q%e%M~Ks$UDf-&P|it%K|@KA-2#HS;vGXptaZ_Q8YOdomM>Ud3e#HZ1Z z-nJbX7_sA^Pkb!@>|YGlE<3Q;#IIYXRh5H2IN^g|IXaZnGdbIai@N&*EO>tj>}ZcP z@0^~4C2gFf0f(0(zVm+L2E5&9ibByzwOYW^p4umZ9dO`!6l&29ewg?K=^@H&8g+wC zv{U}30X=AU1zYvh0rNS-!@Y(kl5sL+^7K}dXX0ug&#e27US4Ts@tSU5FMFOPd-C)` zUoJTN-n48VybpvX6ugM0#V9HYE-XIy*xFh1lfqcyyrg>gUmyP)(CVJ5rf+AC%}?sB z|BR+q!M1QqIXyI!PW#xZTB0D_;OwMmdg^0~X_Aa1wERSdY#I393ow}k+>zP6cQ!6w z=R;V0J7@R)*|=N_2N(GQm#sBvctu;|0fS{XL4q?!-_hAgqa_EF?dUr$J82x}z)>r0 zKuwqXChHmZO?Jro*J+a;h?=wi2K`yl7F)GvdyF-__|hJWoDt(~5a>~~>C~!{ExT4v z>}o@?wsw?@+m}{WYd2T0CClak9zu3U1g}~bR zHJ@Ajq0R&3&{p<_nrC}CrUq)S7Dvkqwpu=36a*5TH5MdFupHPa7IYIP7iOPb*(1HI z_L!n8+ajWZOCfl{1%dVpFHrA&kzT57i_BQ_IaAlr z@370o=CEccDJBO`869Yylao2j3`ag|l&K!^JS7BHy`(phrgn9;Sk< z=P#0v%@&an4Q!n^dEymVB#0`ISpSk3Ijq44Tw8c^i&TNfK+c-+UA7NQ@8meNg~8e# z#G~B`2DiIARq{>z#g3Pb5KfaTkNt+}sqwxEzaX3B7-8hdz#)Gxyr%+@3(FX~Ng4q? zd*P+dpIFm+%>Z{^#xi6+sG?Wox)MB_6~80bXh!%RWcIe9)J&aV%t@FwmRxo4CP-$t z139kri^P_MGk4ipbA*DJoYjWEm6My1PthN&&i_O zB+nK-i?pB)7QZB0WJxww$mPU;@icj$n?ij0HrkV_?VQO{4WUZ@wpym5{?x+XR@X98 zB28Oqcx{`lYRv>`R52Dc?g(ur$-jI<oXWr4xRP4b;#IsPG)n` z*?od_=#;tLjKWAoz%4Un)KA8p4q%-?#kK*Njk1#5MR zzXP?8I435f$St>Qa?WJ>Ai!oWKO32u7F#sGsc#SzE`Z>T>+w|oPDhjaqo4=IE z9uypCt5);9v&ezLa9keB^%XyD1c&QI;n8RwHV#6lu&&mVh5**IC6-1L`ms60+VE_{`_sYC6n+T#5> zO5oCF7mKhTq2*O=HToSfdM!s49DhE<@VMy(;4S19Sv_*i*d;H z(cA)jg@#Rk^oc`l$Qop8>iIl%3bM6Jnu5hL#EO*9^*|dbk3%us7nN}v^{xe61+x$O zW}U;Yeb;LI_4Lj95kFcBWNkGrIjxdbpN;@m`RgROw1eHrubQp-kckzFik{D(w;aG| zj*1cg<%@MtH1-_J4USfZQ~6pPCc6p85lTYmad-lCL9anv8){5rIS+nSg~B6npP2R| zwU1D?=7&%R{{6;^wF&ylfb7bJ8rSDWd(gtbl7Z#hsf=X+S%Ym8JX=%7|IziG0a0Av z+w6+YCTpN+1>o!{}5H*N zFN%#?>ZerlT1!HyjjvcF%#wwD44U{U(SF^K-Tr@UnEGfoz6G)ow-!H}GB{=SVhkvC zwl&i;b1>6qFQdS*2n@k;lRA4NQm1CG!@v0WN@8hZY<&hgf2CevAa3Zn?`!-QeuiAQ zA{rI(%?ESQ&lq*|cnu8nSGpD1TJROp{FTtM&z#X_<0~B~VpOAB_SU>AG6ISOC~>Xl zBi}x1Z+mI{&BG<9ESxkJKDdl|+hq(T`1{S4yv6xiYE){m)almPRD>S`6jkyQV#i=h zfD$b|8%;X1;YolJJ8i=aY+O#J&Y~z%ye1QkU%NkPUW~tL+Bjq5&3!dq%1QG?{G~f7 zh8l&MbBT+&YP044H%9a*S$rzir`}lTpTE%krAz z)l4mflvmW@Wguk>>+BQcZ4+VrjscqYUbn{M;&mt}ukhiE5D7h*Eyh=yh)ZK2^D6p< z!CQL+p+~V;DpEuVG`FO18ey+s8Re24Tex+Rsx96yb)VS_YYN$Phv^lRpb`toG?EXm z!}bb_kN%G$aH)b4GA$9y#i?04&`a^`?AmLh4bldhA`DM+Ha7Be8U^~zNSl;^VS8G` zo`$kyaykAtR(@l1A*9|EX{)zs9!fz#I8$SK$H1nGKjH8sTSO$N5fZ2dA z8r%7|9PK#v&lWY z1XnBK*yZnG)SOI#oQg_?ra{8g9CTt6&RKEz|1bVD3W~ z?>s5uXmS;fZ<`vA!+3|BoT+7b5hixbt*m;M2{U}(Z{0ejW1HSr*DGbdN7XC`U_FL zX=u2j*U8-mlj4WfFfKxApql~vA{0Nbt+-Es@^)7<{vJePm@g4Z6Sa*!8!b*3OkCuz zq=fO38q<;x^#$wUDoCxQMAiwfFGdp{M(3}ELzedg$ug`Goz4w(IX<LUYfrQu^uo!aq?;L!CFoNo6_Ii&n}?!*S|JTh4u>6+iVPhOHGU zF}kZRcsGB6rO`?q-B`FDt<=)j(1CjurCq5(eTDsBL^>`o8g9VoDoQ7{Y6X0{GS~7E zo6(f&S$HVM2^J(|Ez&=qXzJEg zxy^O|n5urO)Z@DKFm9%@RPQ#?rYAro!sLqu|LH^=wfBHwEGKD32NfU&g3a-nP8v2?yq46@sU$5STZdkz;|mxPHQ0kOe5?m@ zc356x4}GFYor+XI?Na9g^!`~1^LujLl7zvOg!snde}sPj87s!7>!v?{R(d197}718xar}4wc zUsD?e1{xl?&z(`^GYns=gf=kekP~x4OF5;cuE1^y1!yCKcAH#{sVP@+K7}ua^~f55 zbD&N~Xb#w=^HF+TD#5%}sJ4ciYnA%poz9^o&g@TOn&PEEq-MTMIh9C@H#Lj~@=d&% zi-r6NG+3t`(cfwhy7gFE?zV>t>y=J@ozJ2H>_ck2!FQ`);+N}V0;BWHIcIXT<-J_7 z?37^s`vv(sr6T#e`hWa&!JN|k?f0Repi6WbP6IXzjh1k0y)s!25yY8b=(#}&!FOP1 zZom%Hgs%l{Q2g+VESEMYKgbc;6vTxf==!^o6tn#~QEh`nR?wl>2#mZrm-`%*C8ZMyo zUeIkfmi%k?NPH~p+^wvXD+%JFCv@4PBuLl(wy^dn-Ryjb1-4fK=?czAlQTxc?!C%P zxsf2AaERZhbdaClCDvRHKkrjIOY;O30q^%=3%c(Pu{y&=ld@fQ62xl7G-JQ=RPR!( zgLrQZOX(I!I;4z|mSVGqcZ}iXA;r&*d&Z<5Ryyjcmim*}JKaSV&qz&DXvMVgp44J_ zPCBh_4#XN`G}!D;H?2IPC_4SY?WR3PmD0}oeVgITaixYdASx&I*f|75i zu;28{MMZX&Zl@7{68v#hiLzsN1awk0eZH!EEGEr5Kr+FmFSit~mxh{%Dh_4uDm6UA z1#$kh2X*UatQ)PUZWLVvL+>iV^2>cBYJ3fFSE0hOjzRGsE@UJqH{wL%q?dbpdJS^lje<7*cf0|mpSK8|kHm%H8LW)THmJ;6C zbn%lCpmPl@ER3GpO&>oi|LF8l+f5I@D&FEpL4opGC(TK)f?M>;OnbStB{xNCvK+hJ>Q5n;RL3&cn_D>sHh;I9QZL`zH?(?w(8%{VMIM z7!9_7P|Bqk3v#tbOm&K}Z94r=gW-k5yrcyDYad9e99edQOX=cQOZMVDg=3ucXr$|b)c z)vaq_LO2U`8CdA=GT0o>!W@7H;cQpU=YvRo?rKrJZeaDIQwTU1h&QLzw`6n`>i>I* zjJDZZ4d)|RE5AV~gqPs-DY=D{A6isxBdq4Eg6fsn_de(2a|*Ik#IYxo5*vdkvv(kc z+{tvQ65~2)*#M$qAv=;q+j%(;=0`Kt6jzy**2@w7Nan&X&^4Mx*a=NEq0kjwX`epC zKeAlJCD(Xpg9Kx$vRbvT_9lFchMRHp;g4m+*=QJtlLP7}|B4YG7smNl7EYhFqWP=P zsS8i5vQ)f@Ha3PW)!`M!YHTLn@0nkX#h2R}i&4Ku(N4J{1`ZgfkQ@YOu=E;O>ML1D{wnPJYpih0wd6*Ec(M>bbIHQ=rDI@3 zZ5AYFcP1053t@R}w%&bIOin@8VXR;&N}xG823pr)ts1PvIAj+yE?Prz!L=YvZhR>q z!kji0=UCdZpLu>2DroLAi;2p42qlfXH{f3?cExm%7RSo^-@qrVQQiZGd1MKf1C53g z+Apl^XF33@%lvg$pn6>vs$bgy`qgDzrPork%NYLACzeB7;`7c%L(*ILu`cs+p%ApD z;tK4l%WCOz;bmPGC=JK;ews~s#<5_%TNQ|pV*zqG0Ur7hhQ_g&a;u`q;iSQ-odfe4 zxW*^;G8(R+HS!wv$FV5<2vb%Zi;%uaAX5@}*JIK8X;IL&9*ZmYfqIkl`9{j6AzChF zb|AUQM#>ltN9$o${3f6V@UR}ME)5a{wgB-=^;9d1YI)jy<~~s+MS2~=kXy&I2>ySh z&V1B#T^fzeF)jw_jfPCv70>$Uhetx0`Yc#(*q$7CoC@{pv%2!vc0{dAg<17k73qYa z2EwuWSSaQSA`CttA-5Am?p%mzz-r4S1+{f9OlZK$tB=DAdt%YjUvEn`$H9&UtXt^; z$i(U5sYLA|b3>~nQ@Mt0gsyzS7L-a~GKbP80#|P{GCHOFNng=PFyCoS2EKz$jaWI? zGm$yC{92IYVIEZpt~6pnJ!T7bMbg9@YsTF#qOcs|VArb*uIm`gNa4mo8GQd33t-A3 zqRkycu~mAUYPf=1Ycta(imkbJVPb}HT7cL~6`VGhpSL`E&ht}vW6vVlG$!%H3BL& zVbSF}V)4Q7w9$Wb8a=B}N(8xc7L04c>bAI0(J|)^whFw>PkBeOy?p8l}PgWGv1eO<8r_3uxMu4acjSyPL9#(r+!uBo^+btTnPKH)B&; zT?wK|N;68Vlj3KfWv9ous2OgHigo1bn3?oVHABk>GhQlGh z8MaP+1W{mspysTZ>@KM721sho+DrSIksyxGo3kXTmLTpx{g%uRhO}UvrK3%W-CIMR zAR;#q$fIPq)SUT3-*qoE`8X~TS6ZRr=026Ni5?v6-K8`h;+ML$d`-0a3C z=qRQ9GSP0@Yig?x^)W}Vg_E;qlGKL(kpg2|7ABo+K#mWBqixwAc7ge)L1H_W^J z1EY;l>!}P;N~d7AFD4T0*+@GjB@L#vXCaQr?)EImf3dgLYH7nT^M8Cnz5MoUo}=D^ z4y>MjYdN^ufvG-=%l-e{m|BnA@P(oYEZ$DpIStw;uwX~Tkicp>Af_`3?1A0^f<2vC zs3Vfqnbmhhs&`>S9g)pl*m6gtU00SVx2s9s<&J}xZYdo59oduCM5+eIB z?~?Da`dUZOvCyRtd!~(>lypQ{VvBv6wvqhM_oaog6}zy-m_E)>x9G z0*JcO13Hdjom_3|f$6Y!4C~^Ec#g$k?aWV*HI`MigEC)0Q1*mpVyBTJLmFaHHN97$pwrQulqM6W)cRkaiGOouMxSyM;k zkMXRLBl2-P>!L6B9ug+7>W-Wx6PTYPk~V>LbwmOuvK5ZVg^8?{BN8}?g*hVKC$Uz# zoACQ27AkG=wB*<%EJ(J5{0#DUEYJa{@f{oF0Q~+PYpWms7V^Ji{tk=^-?JSKz`gHT zHwU1>WVXrycrlsv^on_nU*e|GejUqdSp`PUWweEUQ*fm8Q6cK*wlH@J`&Kdts>0H# zILEU2?U4@AQ(1(+d+tl>Ku#xxQ3EwaGztzL;&N4>36*+EC-{&ehQQl>G*5#BV7 z)hzdO4*E(5KJ2z-W|bxfgW=0G78-90%{g6bG=H!*npLQq2}T3LL$LRTHQ-i&eB^FNSYsu?)F`3$fochAOjJLpydW zm_C~|wFgYsX5%2w9)ad5Y@&2XCJQ~_ObV9n(89Q#fe$IHyaNzCmnFzWg!tM9kUW?9 z*s(XlrnxNA0eCc*HK}H^xbe7_$AheSytU>>twX|>z%gCzB%xO-))#wVPAbl)?SaFo z*n2K5M!w_PU8;ktbD-=zteH0PIi}|GSVf)eT9o9s)Pspe=55Cx0;`Oywgd2wku`~K z?@aQq<3z!DfW3a5)WpEp+IVAQyjaknkB`_p-VS>H=#VPyV8)NErgW?b+390C@gp0l zlUwSE%B}-77qCgLHZP-&!_fsS!V$?^z>fGI$h5Br^ZpYm>Rn&Rws?QJYiS!Mi?%@w z6|xFmVpu7);Fq7+X#ajFfyMb`QYcmV$5|lIqw0Q3c;6%vT?O8{(EQE{A-fV9(Tmo=eyiyL8QkCrel(2cYUw*4P0sEOp4t zT-dRch4?N0%Tg1C>veIP#6ID3;r&v!$id7KaLCbIxC<;nXNJnl*m_UTn`A8!_bn*- z2S>luy4GBHv5bZ52mJ|N%ds_W@PT6Ss46sA&RW#H-Hf_}kqtgqiS(NMLr9DVMj zO~#7nkz1Rh;QJMYH zYF_`+ZkLKnSLfc5m0|y>Y7x7^-FOl0xsU zSiJi_$d+ZJgsht;t6!1;@$1kJe}SfjXm$}@xsC2%=Jc7O5|T*Bde6Q8Z!`26t~GbCrG)oGSL5AURxs=PPKT88%^PPt9auRs}63 zjwRq5su3N7HrGRT#M{&Ut4Bgct)X(_&;S! z6t&4t6|%nN3ll7UGiI@;K=%jOqn>bdGiLG5r)0c+fEK$in=y7H1mtRwzLWqRw%|%# zF@bJ?XVHT(9-_D6LLla++g4164g!4RSD4E^33V3eI=@06{I@YY)9qrb zQY)X3u{Z~bV7a9yrCSO07e1ofe}W^vj?iE`YoH&Z zgIU{I9GjPsUob~$N^_&Rir(~xjz1)k{`gKQtEDgh5We7lJJDvQ20O9sw?|;+F4jcad7t#!!?j(kMnqLIjhpef zl5U=TSnJgjMb~&kbj`M)qcWh{ZWd96B8^?QTwEJ|iF08Ug=S(Tb?NwNRqRq7^cJC> zs{?X=Hw&-qp+(Et*hEL&2pqBmFNQ=9{?|;<9#+S#o<)gP-BulhZ}%`Zt)T@oPdi8^ z@U)~?Wt~&@c$6_3T3VU?txPv!b`#95R%T->b5a{*))CBsR%VEmS+*@Q{RDHgmFaR2 zitNSp28Z~??qzN5kdO>mw3jWF6L9>Mobi@J^gbLOOzsH1_p$c+IUQl=K2}XX%LL|q zI9+@R)lBTR$EbZT3lrLCnBNh6_p{CGvo3po8*997^#BD#aizzCqj=c;(2&*K4VaS3Ao3 z$xm^pgAJk^tUSsF+69{nC6BQ%d9s!X5pXpf*YkQEW2GHrzB`5^waakn7>?lPkSHBv zox2^BG*;C?utORfD9?8=mYK$W(8q0qzUgeJ9uxn3IvcO=u@xE~XLpJA&tT>C-M2ua z3>HwY#uicT${QQikd2EdD5@dFD0j5o5;GGLTFv?_Mr^h$$%S

    nWgQ{xa@(7fP9?=~=^PRKWAal+Z#Ri2C^f@G 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

    k%UC$!AMA=_;drGuv@H^aOvR@Fi9d=~2~KXg#m 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

    <0&jqEE0+rSdjm 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%0Aljd>#h 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%0Dft@UU3p)kU4Al8k$g?ba8M` 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 s`ibCHANRc2DM^K3@0!VSZ`n@31lZ| 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Ν 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 z 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 delta 650681 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 !dk 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

F5X!dDFM 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