require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&SQLITE3EXT_H)) {
    eval 'sub SQLITE3EXT_H () {1;}' unless defined(&SQLITE3EXT_H);
    require './sqlite3.ph';
    if(!defined(&SQLITE_CORE)  && !defined(&SQLITE_OMIT_LOAD_EXTENSION)) {
	eval 'sub sqlite3_aggregate_context () { ($sqlite3_api->{aggregate_context});}' unless defined(&sqlite3_aggregate_context);
	unless(defined(&SQLITE_OMIT_DEPRECATED)) {
	    eval 'sub sqlite3_aggregate_count () { ($sqlite3_api->{aggregate_count});}' unless defined(&sqlite3_aggregate_count);
	}
	eval 'sub sqlite3_bind_blob () { ($sqlite3_api->{bind_blob});}' unless defined(&sqlite3_bind_blob);
	eval 'sub sqlite3_bind_double () { ($sqlite3_api->{bind_double});}' unless defined(&sqlite3_bind_double);
	eval 'sub sqlite3_bind_int () { ($sqlite3_api->{bind_int});}' unless defined(&sqlite3_bind_int);
	eval 'sub sqlite3_bind_int64 () { ($sqlite3_api->{bind_int64});}' unless defined(&sqlite3_bind_int64);
	eval 'sub sqlite3_bind_null () { ($sqlite3_api->{bind_null});}' unless defined(&sqlite3_bind_null);
	eval 'sub sqlite3_bind_parameter_count () { ($sqlite3_api->{bind_parameter_count});}' unless defined(&sqlite3_bind_parameter_count);
	eval 'sub sqlite3_bind_parameter_index () { ($sqlite3_api->{bind_parameter_index});}' unless defined(&sqlite3_bind_parameter_index);
	eval 'sub sqlite3_bind_parameter_name () { ($sqlite3_api->{bind_parameter_name});}' unless defined(&sqlite3_bind_parameter_name);
	eval 'sub sqlite3_bind_text () { ($sqlite3_api->{bind_text});}' unless defined(&sqlite3_bind_text);
	eval 'sub sqlite3_bind_text16 () { ($sqlite3_api->{bind_text16});}' unless defined(&sqlite3_bind_text16);
	eval 'sub sqlite3_bind_value () { ($sqlite3_api->{bind_value});}' unless defined(&sqlite3_bind_value);
	eval 'sub sqlite3_busy_handler () { ($sqlite3_api->{busy_handler});}' unless defined(&sqlite3_busy_handler);
	eval 'sub sqlite3_busy_timeout () { ($sqlite3_api->{busy_timeout});}' unless defined(&sqlite3_busy_timeout);
	eval 'sub sqlite3_changes () { ($sqlite3_api->{changes});}' unless defined(&sqlite3_changes);
	eval 'sub sqlite3_close () { ($sqlite3_api->{close});}' unless defined(&sqlite3_close);
	eval 'sub sqlite3_collation_needed () { ($sqlite3_api->{collation_needed});}' unless defined(&sqlite3_collation_needed);
	eval 'sub sqlite3_collation_needed16 () { ($sqlite3_api->{collation_needed16});}' unless defined(&sqlite3_collation_needed16);
	eval 'sub sqlite3_column_blob () { ($sqlite3_api->{column_blob});}' unless defined(&sqlite3_column_blob);
	eval 'sub sqlite3_column_bytes () { ($sqlite3_api->{column_bytes});}' unless defined(&sqlite3_column_bytes);
	eval 'sub sqlite3_column_bytes16 () { ($sqlite3_api->{column_bytes16});}' unless defined(&sqlite3_column_bytes16);
	eval 'sub sqlite3_column_count () { ($sqlite3_api->{column_count});}' unless defined(&sqlite3_column_count);
	eval 'sub sqlite3_column_database_name () { ($sqlite3_api->{column_database_name});}' unless defined(&sqlite3_column_database_name);
	eval 'sub sqlite3_column_database_name16 () { ($sqlite3_api->{column_database_name16});}' unless defined(&sqlite3_column_database_name16);
	eval 'sub sqlite3_column_decltype () { ($sqlite3_api->{column_decltype});}' unless defined(&sqlite3_column_decltype);
	eval 'sub sqlite3_column_decltype16 () { ($sqlite3_api->{column_decltype16});}' unless defined(&sqlite3_column_decltype16);
	eval 'sub sqlite3_column_double () { ($sqlite3_api->{column_double});}' unless defined(&sqlite3_column_double);
	eval 'sub sqlite3_column_int () { ($sqlite3_api->{column_int});}' unless defined(&sqlite3_column_int);
	eval 'sub sqlite3_column_int64 () { ($sqlite3_api->{column_int64});}' unless defined(&sqlite3_column_int64);
	eval 'sub sqlite3_column_name () { ($sqlite3_api->{column_name});}' unless defined(&sqlite3_column_name);
	eval 'sub sqlite3_column_name16 () { ($sqlite3_api->{column_name16});}' unless defined(&sqlite3_column_name16);
	eval 'sub sqlite3_column_origin_name () { ($sqlite3_api->{column_origin_name});}' unless defined(&sqlite3_column_origin_name);
	eval 'sub sqlite3_column_origin_name16 () { ($sqlite3_api->{column_origin_name16});}' unless defined(&sqlite3_column_origin_name16);
	eval 'sub sqlite3_column_table_name () { ($sqlite3_api->{column_table_name});}' unless defined(&sqlite3_column_table_name);
	eval 'sub sqlite3_column_table_name16 () { ($sqlite3_api->{column_table_name16});}' unless defined(&sqlite3_column_table_name16);
	eval 'sub sqlite3_column_text () { ($sqlite3_api->{column_text});}' unless defined(&sqlite3_column_text);
	eval 'sub sqlite3_column_text16 () { ($sqlite3_api->{column_text16});}' unless defined(&sqlite3_column_text16);
	eval 'sub sqlite3_column_type () { ($sqlite3_api->{column_type});}' unless defined(&sqlite3_column_type);
	eval 'sub sqlite3_column_value () { ($sqlite3_api->{column_value});}' unless defined(&sqlite3_column_value);
	eval 'sub sqlite3_commit_hook () { ($sqlite3_api->{commit_hook});}' unless defined(&sqlite3_commit_hook);
	eval 'sub sqlite3_complete () { ($sqlite3_api->{complete});}' unless defined(&sqlite3_complete);
	eval 'sub sqlite3_complete16 () { ($sqlite3_api->{complete16});}' unless defined(&sqlite3_complete16);
	eval 'sub sqlite3_create_collation () { ($sqlite3_api->{create_collation});}' unless defined(&sqlite3_create_collation);
	eval 'sub sqlite3_create_collation16 () { ($sqlite3_api->{create_collation16});}' unless defined(&sqlite3_create_collation16);
	eval 'sub sqlite3_create_function () { ($sqlite3_api->{create_function});}' unless defined(&sqlite3_create_function);
	eval 'sub sqlite3_create_function16 () { ($sqlite3_api->{create_function16});}' unless defined(&sqlite3_create_function16);
	eval 'sub sqlite3_create_module () { ($sqlite3_api->{create_module});}' unless defined(&sqlite3_create_module);
	eval 'sub sqlite3_create_module_v2 () { ($sqlite3_api->{create_module_v2});}' unless defined(&sqlite3_create_module_v2);
	eval 'sub sqlite3_data_count () { ($sqlite3_api->{data_count});}' unless defined(&sqlite3_data_count);
	eval 'sub sqlite3_db_handle () { ($sqlite3_api->{db_handle});}' unless defined(&sqlite3_db_handle);
	eval 'sub sqlite3_declare_vtab () { ($sqlite3_api->{declare_vtab});}' unless defined(&sqlite3_declare_vtab);
	eval 'sub sqlite3_enable_shared_cache () { ($sqlite3_api->{enable_shared_cache});}' unless defined(&sqlite3_enable_shared_cache);
	eval 'sub sqlite3_errcode () { ($sqlite3_api->{errcode});}' unless defined(&sqlite3_errcode);
	eval 'sub sqlite3_errmsg () { ($sqlite3_api->{errmsg});}' unless defined(&sqlite3_errmsg);
	eval 'sub sqlite3_errmsg16 () { ($sqlite3_api->{errmsg16});}' unless defined(&sqlite3_errmsg16);
	eval 'sub sqlite3_exec () { ($sqlite3_api->{exec});}' unless defined(&sqlite3_exec);
	unless(defined(&SQLITE_OMIT_DEPRECATED)) {
	    eval 'sub sqlite3_expired () { ($sqlite3_api->{expired});}' unless defined(&sqlite3_expired);
	}
	eval 'sub sqlite3_finalize () { ($sqlite3_api->{finalize});}' unless defined(&sqlite3_finalize);
	eval 'sub sqlite3_free () { ($sqlite3_api->{free});}' unless defined(&sqlite3_free);
	eval 'sub sqlite3_free_table () { ($sqlite3_api->{free_table});}' unless defined(&sqlite3_free_table);
	eval 'sub sqlite3_get_autocommit () { ($sqlite3_api->{get_autocommit});}' unless defined(&sqlite3_get_autocommit);
	eval 'sub sqlite3_get_auxdata () { ($sqlite3_api->{get_auxdata});}' unless defined(&sqlite3_get_auxdata);
	eval 'sub sqlite3_get_table () { ($sqlite3_api->{get_table});}' unless defined(&sqlite3_get_table);
	unless(defined(&SQLITE_OMIT_DEPRECATED)) {
	    eval 'sub sqlite3_global_recover () { ($sqlite3_api->{global_recover});}' unless defined(&sqlite3_global_recover);
	}
	eval 'sub sqlite3_interrupt () { ($sqlite3_api->{interruptx});}' unless defined(&sqlite3_interrupt);
	eval 'sub sqlite3_last_insert_rowid () { ($sqlite3_api->{last_insert_rowid});}' unless defined(&sqlite3_last_insert_rowid);
	eval 'sub sqlite3_libversion () { ($sqlite3_api->{libversion});}' unless defined(&sqlite3_libversion);
	eval 'sub sqlite3_libversion_number () { ($sqlite3_api->{libversion_number});}' unless defined(&sqlite3_libversion_number);
	eval 'sub sqlite3_malloc () { ($sqlite3_api->{malloc});}' unless defined(&sqlite3_malloc);
	eval 'sub sqlite3_mprintf () { ($sqlite3_api->{mprintf});}' unless defined(&sqlite3_mprintf);
	eval 'sub sqlite3_open () { ($sqlite3_api->{open});}' unless defined(&sqlite3_open);
	eval 'sub sqlite3_open16 () { ($sqlite3_api->{open16});}' unless defined(&sqlite3_open16);
	eval 'sub sqlite3_prepare () { ($sqlite3_api->{prepare});}' unless defined(&sqlite3_prepare);
	eval 'sub sqlite3_prepare16 () { ($sqlite3_api->{prepare16});}' unless defined(&sqlite3_prepare16);
	eval 'sub sqlite3_prepare_v2 () { ($sqlite3_api->{prepare_v2});}' unless defined(&sqlite3_prepare_v2);
	eval 'sub sqlite3_prepare16_v2 () { ($sqlite3_api->{prepare16_v2});}' unless defined(&sqlite3_prepare16_v2);
	eval 'sub sqlite3_profile () { ($sqlite3_api->{profile});}' unless defined(&sqlite3_profile);
	eval 'sub sqlite3_progress_handler () { ($sqlite3_api->{progress_handler});}' unless defined(&sqlite3_progress_handler);
	eval 'sub sqlite3_realloc () { ($sqlite3_api->{realloc});}' unless defined(&sqlite3_realloc);
	eval 'sub sqlite3_reset () { ($sqlite3_api->{reset});}' unless defined(&sqlite3_reset);
	eval 'sub sqlite3_result_blob () { ($sqlite3_api->{result_blob});}' unless defined(&sqlite3_result_blob);
	eval 'sub sqlite3_result_double () { ($sqlite3_api->{result_double});}' unless defined(&sqlite3_result_double);
	eval 'sub sqlite3_result_error () { ($sqlite3_api->{result_error});}' unless defined(&sqlite3_result_error);
	eval 'sub sqlite3_result_error16 () { ($sqlite3_api->{result_error16});}' unless defined(&sqlite3_result_error16);
	eval 'sub sqlite3_result_int () { ($sqlite3_api->{result_int});}' unless defined(&sqlite3_result_int);
	eval 'sub sqlite3_result_int64 () { ($sqlite3_api->{result_int64});}' unless defined(&sqlite3_result_int64);
	eval 'sub sqlite3_result_null () { ($sqlite3_api->{result_null});}' unless defined(&sqlite3_result_null);
	eval 'sub sqlite3_result_text () { ($sqlite3_api->{result_text});}' unless defined(&sqlite3_result_text);
	eval 'sub sqlite3_result_text16 () { ($sqlite3_api->{result_text16});}' unless defined(&sqlite3_result_text16);
	eval 'sub sqlite3_result_text16be () { ($sqlite3_api->{result_text16be});}' unless defined(&sqlite3_result_text16be);
	eval 'sub sqlite3_result_text16le () { ($sqlite3_api->{result_text16le});}' unless defined(&sqlite3_result_text16le);
	eval 'sub sqlite3_result_value () { ($sqlite3_api->{result_value});}' unless defined(&sqlite3_result_value);
	eval 'sub sqlite3_rollback_hook () { ($sqlite3_api->{rollback_hook});}' unless defined(&sqlite3_rollback_hook);
	eval 'sub sqlite3_set_authorizer () { ($sqlite3_api->{set_authorizer});}' unless defined(&sqlite3_set_authorizer);
	eval 'sub sqlite3_set_auxdata () { ($sqlite3_api->{set_auxdata});}' unless defined(&sqlite3_set_auxdata);
	eval 'sub sqlite3_snprintf () { ($sqlite3_api->{xsnprintf});}' unless defined(&sqlite3_snprintf);
	eval 'sub sqlite3_step () { ($sqlite3_api->{step});}' unless defined(&sqlite3_step);
	eval 'sub sqlite3_table_column_metadata () { ($sqlite3_api->{table_column_metadata});}' unless defined(&sqlite3_table_column_metadata);
	eval 'sub sqlite3_thread_cleanup () { ($sqlite3_api->{thread_cleanup});}' unless defined(&sqlite3_thread_cleanup);
	eval 'sub sqlite3_total_changes () { ($sqlite3_api->{total_changes});}' unless defined(&sqlite3_total_changes);
	eval 'sub sqlite3_trace () { ($sqlite3_api->{trace});}' unless defined(&sqlite3_trace);
	unless(defined(&SQLITE_OMIT_DEPRECATED)) {
	    eval 'sub sqlite3_transfer_bindings () { ($sqlite3_api->{transfer_bindings});}' unless defined(&sqlite3_transfer_bindings);
	}
	eval 'sub sqlite3_update_hook () { ($sqlite3_api->{update_hook});}' unless defined(&sqlite3_update_hook);
	eval 'sub sqlite3_user_data () { ($sqlite3_api->{user_data});}' unless defined(&sqlite3_user_data);
	eval 'sub sqlite3_value_blob () { ($sqlite3_api->{value_blob});}' unless defined(&sqlite3_value_blob);
	eval 'sub sqlite3_value_bytes () { ($sqlite3_api->{value_bytes});}' unless defined(&sqlite3_value_bytes);
	eval 'sub sqlite3_value_bytes16 () { ($sqlite3_api->{value_bytes16});}' unless defined(&sqlite3_value_bytes16);
	eval 'sub sqlite3_value_double () { ($sqlite3_api->{value_double});}' unless defined(&sqlite3_value_double);
	eval 'sub sqlite3_value_int () { ($sqlite3_api->{value_int});}' unless defined(&sqlite3_value_int);
	eval 'sub sqlite3_value_int64 () { ($sqlite3_api->{value_int64});}' unless defined(&sqlite3_value_int64);
	eval 'sub sqlite3_value_numeric_type () { ($sqlite3_api->{value_numeric_type});}' unless defined(&sqlite3_value_numeric_type);
	eval 'sub sqlite3_value_text () { ($sqlite3_api->{value_text});}' unless defined(&sqlite3_value_text);
	eval 'sub sqlite3_value_text16 () { ($sqlite3_api->{value_text16});}' unless defined(&sqlite3_value_text16);
	eval 'sub sqlite3_value_text16be () { ($sqlite3_api->{value_text16be});}' unless defined(&sqlite3_value_text16be);
	eval 'sub sqlite3_value_text16le () { ($sqlite3_api->{value_text16le});}' unless defined(&sqlite3_value_text16le);
	eval 'sub sqlite3_value_type () { ($sqlite3_api->{value_type});}' unless defined(&sqlite3_value_type);
	eval 'sub sqlite3_vmprintf () { ($sqlite3_api->{vmprintf});}' unless defined(&sqlite3_vmprintf);
	eval 'sub sqlite3_vsnprintf () { ($sqlite3_api->{xvsnprintf});}' unless defined(&sqlite3_vsnprintf);
	eval 'sub sqlite3_overload_function () { ($sqlite3_api->{overload_function});}' unless defined(&sqlite3_overload_function);
	eval 'sub sqlite3_prepare_v2 () { ($sqlite3_api->{prepare_v2});}' unless defined(&sqlite3_prepare_v2);
	eval 'sub sqlite3_prepare16_v2 () { ($sqlite3_api->{prepare16_v2});}' unless defined(&sqlite3_prepare16_v2);
	eval 'sub sqlite3_clear_bindings () { ($sqlite3_api->{clear_bindings});}' unless defined(&sqlite3_clear_bindings);
	eval 'sub sqlite3_bind_zeroblob () { ($sqlite3_api->{bind_zeroblob});}' unless defined(&sqlite3_bind_zeroblob);
	eval 'sub sqlite3_blob_bytes () { ($sqlite3_api->{blob_bytes});}' unless defined(&sqlite3_blob_bytes);
	eval 'sub sqlite3_blob_close () { ($sqlite3_api->{blob_close});}' unless defined(&sqlite3_blob_close);
	eval 'sub sqlite3_blob_open () { ($sqlite3_api->{blob_open});}' unless defined(&sqlite3_blob_open);
	eval 'sub sqlite3_blob_read () { ($sqlite3_api->{blob_read});}' unless defined(&sqlite3_blob_read);
	eval 'sub sqlite3_blob_write () { ($sqlite3_api->{blob_write});}' unless defined(&sqlite3_blob_write);
	eval 'sub sqlite3_create_collation_v2 () { ($sqlite3_api->{create_collation_v2});}' unless defined(&sqlite3_create_collation_v2);
	eval 'sub sqlite3_file_control () { ($sqlite3_api->{file_control});}' unless defined(&sqlite3_file_control);
	eval 'sub sqlite3_memory_highwater () { ($sqlite3_api->{memory_highwater});}' unless defined(&sqlite3_memory_highwater);
	eval 'sub sqlite3_memory_used () { ($sqlite3_api->{memory_used});}' unless defined(&sqlite3_memory_used);
	eval 'sub sqlite3_mutex_alloc () { ($sqlite3_api->{mutex_alloc});}' unless defined(&sqlite3_mutex_alloc);
	eval 'sub sqlite3_mutex_enter () { ($sqlite3_api->{mutex_enter});}' unless defined(&sqlite3_mutex_enter);
	eval 'sub sqlite3_mutex_free () { ($sqlite3_api->{mutex_free});}' unless defined(&sqlite3_mutex_free);
	eval 'sub sqlite3_mutex_leave () { ($sqlite3_api->{mutex_leave});}' unless defined(&sqlite3_mutex_leave);
	eval 'sub sqlite3_mutex_try () { ($sqlite3_api->{mutex_try});}' unless defined(&sqlite3_mutex_try);
	eval 'sub sqlite3_open_v2 () { ($sqlite3_api->{open_v2});}' unless defined(&sqlite3_open_v2);
	eval 'sub sqlite3_release_memory () { ($sqlite3_api->{release_memory});}' unless defined(&sqlite3_release_memory);
	eval 'sub sqlite3_result_error_nomem () { ($sqlite3_api->{result_error_nomem});}' unless defined(&sqlite3_result_error_nomem);
	eval 'sub sqlite3_result_error_toobig () { ($sqlite3_api->{result_error_toobig});}' unless defined(&sqlite3_result_error_toobig);
	eval 'sub sqlite3_sleep () { ($sqlite3_api->{sleep});}' unless defined(&sqlite3_sleep);
	eval 'sub sqlite3_soft_heap_limit () { ($sqlite3_api->{soft_heap_limit});}' unless defined(&sqlite3_soft_heap_limit);
	eval 'sub sqlite3_vfs_find () { ($sqlite3_api->{vfs_find});}' unless defined(&sqlite3_vfs_find);
	eval 'sub sqlite3_vfs_register () { ($sqlite3_api->{vfs_register});}' unless defined(&sqlite3_vfs_register);
	eval 'sub sqlite3_vfs_unregister () { ($sqlite3_api->{vfs_unregister});}' unless defined(&sqlite3_vfs_unregister);
	eval 'sub sqlite3_threadsafe () { ($sqlite3_api->{xthreadsafe});}' unless defined(&sqlite3_threadsafe);
	eval 'sub sqlite3_result_zeroblob () { ($sqlite3_api->{result_zeroblob});}' unless defined(&sqlite3_result_zeroblob);
	eval 'sub sqlite3_result_error_code () { ($sqlite3_api->{result_error_code});}' unless defined(&sqlite3_result_error_code);
	eval 'sub sqlite3_test_control () { ($sqlite3_api->{test_control});}' unless defined(&sqlite3_test_control);
	eval 'sub sqlite3_randomness () { ($sqlite3_api->{randomness});}' unless defined(&sqlite3_randomness);
	eval 'sub sqlite3_context_db_handle () { ($sqlite3_api->{context_db_handle});}' unless defined(&sqlite3_context_db_handle);
	eval 'sub sqlite3_extended_result_codes () { ($sqlite3_api->{extended_result_codes});}' unless defined(&sqlite3_extended_result_codes);
	eval 'sub sqlite3_limit () { ($sqlite3_api->{limit});}' unless defined(&sqlite3_limit);
	eval 'sub sqlite3_next_stmt () { ($sqlite3_api->{next_stmt});}' unless defined(&sqlite3_next_stmt);
	eval 'sub sqlite3_sql () { ($sqlite3_api->{sql});}' unless defined(&sqlite3_sql);
	eval 'sub sqlite3_status () { ($sqlite3_api->{status});}' unless defined(&sqlite3_status);
	eval 'sub sqlite3_backup_finish () { ($sqlite3_api->{backup_finish});}' unless defined(&sqlite3_backup_finish);
	eval 'sub sqlite3_backup_init () { ($sqlite3_api->{backup_init});}' unless defined(&sqlite3_backup_init);
	eval 'sub sqlite3_backup_pagecount () { ($sqlite3_api->{backup_pagecount});}' unless defined(&sqlite3_backup_pagecount);
	eval 'sub sqlite3_backup_remaining () { ($sqlite3_api->{backup_remaining});}' unless defined(&sqlite3_backup_remaining);
	eval 'sub sqlite3_backup_step () { ($sqlite3_api->{backup_step});}' unless defined(&sqlite3_backup_step);
	eval 'sub sqlite3_compileoption_get () { ($sqlite3_api->{compileoption_get});}' unless defined(&sqlite3_compileoption_get);
	eval 'sub sqlite3_compileoption_used () { ($sqlite3_api->{compileoption_used});}' unless defined(&sqlite3_compileoption_used);
	eval 'sub sqlite3_create_function_v2 () { ($sqlite3_api->{create_function_v2});}' unless defined(&sqlite3_create_function_v2);
	eval 'sub sqlite3_db_config () { ($sqlite3_api->{db_config});}' unless defined(&sqlite3_db_config);
	eval 'sub sqlite3_db_mutex () { ($sqlite3_api->{db_mutex});}' unless defined(&sqlite3_db_mutex);
	eval 'sub sqlite3_db_status () { ($sqlite3_api->{db_status});}' unless defined(&sqlite3_db_status);
	eval 'sub sqlite3_extended_errcode () { ($sqlite3_api->{extended_errcode});}' unless defined(&sqlite3_extended_errcode);
	eval 'sub sqlite3_log () { ($sqlite3_api->{log});}' unless defined(&sqlite3_log);
	eval 'sub sqlite3_soft_heap_limit64 () { ($sqlite3_api->{soft_heap_limit64});}' unless defined(&sqlite3_soft_heap_limit64);
	eval 'sub sqlite3_sourceid () { ($sqlite3_api->{sourceid});}' unless defined(&sqlite3_sourceid);
	eval 'sub sqlite3_stmt_status () { ($sqlite3_api->{stmt_status});}' unless defined(&sqlite3_stmt_status);
	eval 'sub sqlite3_strnicmp () { ($sqlite3_api->{strnicmp});}' unless defined(&sqlite3_strnicmp);
	eval 'sub sqlite3_unlock_notify () { ($sqlite3_api->{unlock_notify});}' unless defined(&sqlite3_unlock_notify);
	eval 'sub sqlite3_wal_autocheckpoint () { ($sqlite3_api->{wal_autocheckpoint});}' unless defined(&sqlite3_wal_autocheckpoint);
	eval 'sub sqlite3_wal_checkpoint () { ($sqlite3_api->{wal_checkpoint});}' unless defined(&sqlite3_wal_checkpoint);
	eval 'sub sqlite3_wal_hook () { ($sqlite3_api->{wal_hook});}' unless defined(&sqlite3_wal_hook);
	eval 'sub sqlite3_blob_reopen () { ($sqlite3_api->{blob_reopen});}' unless defined(&sqlite3_blob_reopen);
	eval 'sub sqlite3_vtab_config () { ($sqlite3_api->{vtab_config});}' unless defined(&sqlite3_vtab_config);
	eval 'sub sqlite3_vtab_on_conflict () { ($sqlite3_api->{vtab_on_conflict});}' unless defined(&sqlite3_vtab_on_conflict);
	eval 'sub sqlite3_close_v2 () { ($sqlite3_api->{close_v2});}' unless defined(&sqlite3_close_v2);
	eval 'sub sqlite3_db_filename () { ($sqlite3_api->{db_filename});}' unless defined(&sqlite3_db_filename);
	eval 'sub sqlite3_db_readonly () { ($sqlite3_api->{db_readonly});}' unless defined(&sqlite3_db_readonly);
	eval 'sub sqlite3_db_release_memory () { ($sqlite3_api->{db_release_memory});}' unless defined(&sqlite3_db_release_memory);
	eval 'sub sqlite3_errstr () { ($sqlite3_api->{errstr});}' unless defined(&sqlite3_errstr);
	eval 'sub sqlite3_stmt_busy () { ($sqlite3_api->{stmt_busy});}' unless defined(&sqlite3_stmt_busy);
	eval 'sub sqlite3_stmt_readonly () { ($sqlite3_api->{stmt_readonly});}' unless defined(&sqlite3_stmt_readonly);
	eval 'sub sqlite3_stricmp () { ($sqlite3_api->{stricmp});}' unless defined(&sqlite3_stricmp);
	eval 'sub sqlite3_uri_boolean () { ($sqlite3_api->{uri_boolean});}' unless defined(&sqlite3_uri_boolean);
	eval 'sub sqlite3_uri_int64 () { ($sqlite3_api->{uri_int64});}' unless defined(&sqlite3_uri_int64);
	eval 'sub sqlite3_uri_parameter () { ($sqlite3_api->{uri_parameter});}' unless defined(&sqlite3_uri_parameter);
	eval 'sub sqlite3_uri_vsnprintf () { ($sqlite3_api->{xvsnprintf});}' unless defined(&sqlite3_uri_vsnprintf);
	eval 'sub sqlite3_wal_checkpoint_v2 () { ($sqlite3_api->{wal_checkpoint_v2});}' unless defined(&sqlite3_wal_checkpoint_v2);
	eval 'sub sqlite3_auto_extension () { ($sqlite3_api->{auto_extension});}' unless defined(&sqlite3_auto_extension);
	eval 'sub sqlite3_bind_blob64 () { ($sqlite3_api->{bind_blob64});}' unless defined(&sqlite3_bind_blob64);
	eval 'sub sqlite3_bind_text64 () { ($sqlite3_api->{bind_text64});}' unless defined(&sqlite3_bind_text64);
	eval 'sub sqlite3_cancel_auto_extension () { ($sqlite3_api->{cancel_auto_extension});}' unless defined(&sqlite3_cancel_auto_extension);
	eval 'sub sqlite3_load_extension () { ($sqlite3_api->{load_extension});}' unless defined(&sqlite3_load_extension);
	eval 'sub sqlite3_malloc64 () { ($sqlite3_api->{malloc64});}' unless defined(&sqlite3_malloc64);
	eval 'sub sqlite3_msize () { ($sqlite3_api->{msize});}' unless defined(&sqlite3_msize);
	eval 'sub sqlite3_realloc64 () { ($sqlite3_api->{realloc64});}' unless defined(&sqlite3_realloc64);
	eval 'sub sqlite3_reset_auto_extension () { ($sqlite3_api->{reset_auto_extension});}' unless defined(&sqlite3_reset_auto_extension);
	eval 'sub sqlite3_result_blob64 () { ($sqlite3_api->{result_blob64});}' unless defined(&sqlite3_result_blob64);
	eval 'sub sqlite3_result_text64 () { ($sqlite3_api->{result_text64});}' unless defined(&sqlite3_result_text64);
	eval 'sub sqlite3_strglob () { ($sqlite3_api->{strglob});}' unless defined(&sqlite3_strglob);
	eval 'sub sqlite3_value_dup () { ($sqlite3_api->{value_dup});}' unless defined(&sqlite3_value_dup);
	eval 'sub sqlite3_value_free () { ($sqlite3_api->{value_free});}' unless defined(&sqlite3_value_free);
	eval 'sub sqlite3_result_zeroblob64 () { ($sqlite3_api->{result_zeroblob64});}' unless defined(&sqlite3_result_zeroblob64);
	eval 'sub sqlite3_bind_zeroblob64 () { ($sqlite3_api->{bind_zeroblob64});}' unless defined(&sqlite3_bind_zeroblob64);
	eval 'sub sqlite3_value_subtype () { ($sqlite3_api->{value_subtype});}' unless defined(&sqlite3_value_subtype);
	eval 'sub sqlite3_result_subtype () { ($sqlite3_api->{result_subtype});}' unless defined(&sqlite3_result_subtype);
	eval 'sub sqlite3_status64 () { ($sqlite3_api->{status64});}' unless defined(&sqlite3_status64);
	eval 'sub sqlite3_strlike () { ($sqlite3_api->{strlike});}' unless defined(&sqlite3_strlike);
	eval 'sub sqlite3_db_cacheflush () { ($sqlite3_api->{db_cacheflush});}' unless defined(&sqlite3_db_cacheflush);
	eval 'sub sqlite3_system_errno () { ($sqlite3_api->{system_errno});}' unless defined(&sqlite3_system_errno);
	eval 'sub sqlite3_trace_v2 () { ($sqlite3_api->{trace_v2});}' unless defined(&sqlite3_trace_v2);
	eval 'sub sqlite3_expanded_sql () { ($sqlite3_api->{expanded_sql});}' unless defined(&sqlite3_expanded_sql);
	eval 'sub sqlite3_set_last_insert_rowid () { ($sqlite3_api->{set_last_insert_rowid});}' unless defined(&sqlite3_set_last_insert_rowid);
	eval 'sub sqlite3_prepare_v3 () { ($sqlite3_api->{prepare_v3});}' unless defined(&sqlite3_prepare_v3);
	eval 'sub sqlite3_prepare16_v3 () { ($sqlite3_api->{prepare16_v3});}' unless defined(&sqlite3_prepare16_v3);
	eval 'sub sqlite3_bind_pointer () { ($sqlite3_api->{bind_pointer});}' unless defined(&sqlite3_bind_pointer);
	eval 'sub sqlite3_result_pointer () { ($sqlite3_api->{result_pointer});}' unless defined(&sqlite3_result_pointer);
	eval 'sub sqlite3_value_pointer () { ($sqlite3_api->{value_pointer});}' unless defined(&sqlite3_value_pointer);
	eval 'sub sqlite3_vtab_nochange () { ($sqlite3_api->{vtab_nochange});}' unless defined(&sqlite3_vtab_nochange);
	eval 'sub sqlite3_value_nochange () { ($sqlite3_api->{value_nochange});}' unless defined(&sqlite3_value_nochange);
	eval 'sub sqlite3_vtab_collation () { ($sqlite3_api->{vtab_collation});}' unless defined(&sqlite3_vtab_collation);
	eval 'sub sqlite3_keyword_count () { ($sqlite3_api->{keyword_count});}' unless defined(&sqlite3_keyword_count);
	eval 'sub sqlite3_keyword_name () { ($sqlite3_api->{keyword_name});}' unless defined(&sqlite3_keyword_name);
	eval 'sub sqlite3_keyword_check () { ($sqlite3_api->{keyword_check});}' unless defined(&sqlite3_keyword_check);
	eval 'sub sqlite3_str_new () { ($sqlite3_api->{str_new});}' unless defined(&sqlite3_str_new);
	eval 'sub sqlite3_str_finish () { ($sqlite3_api->{str_finish});}' unless defined(&sqlite3_str_finish);
	eval 'sub sqlite3_str_appendf () { ($sqlite3_api->{str_appendf});}' unless defined(&sqlite3_str_appendf);
	eval 'sub sqlite3_str_vappendf () { ($sqlite3_api->{str_vappendf});}' unless defined(&sqlite3_str_vappendf);
	eval 'sub sqlite3_str_append () { ($sqlite3_api->{str_append});}' unless defined(&sqlite3_str_append);
	eval 'sub sqlite3_str_appendall () { ($sqlite3_api->{str_appendall});}' unless defined(&sqlite3_str_appendall);
	eval 'sub sqlite3_str_appendchar () { ($sqlite3_api->{str_appendchar});}' unless defined(&sqlite3_str_appendchar);
	eval 'sub sqlite3_str_reset () { ($sqlite3_api->{str_reset});}' unless defined(&sqlite3_str_reset);
	eval 'sub sqlite3_str_errcode () { ($sqlite3_api->{str_errcode});}' unless defined(&sqlite3_str_errcode);
	eval 'sub sqlite3_str_length () { ($sqlite3_api->{str_length});}' unless defined(&sqlite3_str_length);
	eval 'sub sqlite3_str_value () { ($sqlite3_api->{str_value});}' unless defined(&sqlite3_str_value);
	eval 'sub sqlite3_create_window_function () { ($sqlite3_api->{create_window_function});}' unless defined(&sqlite3_create_window_function);
	eval 'sub sqlite3_normalized_sql () { ($sqlite3_api->{normalized_sql});}' unless defined(&sqlite3_normalized_sql);
    }
    if(!defined(&SQLITE_CORE)  && !defined(&SQLITE_OMIT_LOAD_EXTENSION)) {
	eval 'sub SQLITE_EXTENSION_INIT1 () { &const  &sqlite3_api_routines * &sqlite3_api=0;;}' unless defined(&SQLITE_EXTENSION_INIT1);
	eval 'sub SQLITE_EXTENSION_INIT2 {
	    my($v) = @_;
    	    eval q( &sqlite3_api=$v;);
	}' unless defined(&SQLITE_EXTENSION_INIT2);
	eval 'sub SQLITE_EXTENSION_INIT3 () { &extern  &const  &sqlite3_api_routines * &sqlite3_api;;}' unless defined(&SQLITE_EXTENSION_INIT3);
    } else {
	eval 'sub SQLITE_EXTENSION_INIT1 () {1;}' unless defined(&SQLITE_EXTENSION_INIT1);
	eval 'sub SQLITE_EXTENSION_INIT2 {
	    my($v) = @_;
    	    eval q(( &void)$v;);
	}' unless defined(&SQLITE_EXTENSION_INIT2);
	eval 'sub SQLITE_EXTENSION_INIT3 () {1;}' unless defined(&SQLITE_EXTENSION_INIT3);
    }
}
1;
