diff --git a/wp-content/db.php b/wp-content/db.php
new file mode 100644
index 0000000000000000000000000000000000000000..603ce05211ce995d9b1e036701f1b4404c845d02
--- /dev/null
+++ b/wp-content/db.php
@@ -0,0 +1,1488 @@
+<?php
+
+/*
+Plugin Name: HyperDB
+Plugin URI: https://wordpress.org/plugins/hyperdb/
+Description: An advanced database class that supports replication, failover, load balancing, and partitioning.
+Author: Automattic
+License: GPLv2 or later
+Version: 1.6
+*/
+
+/** This file should be installed at ABSPATH/wp-content/db.php **/
+
+/** Load the wpdb class while preventing instantiation **/
+$wpdb = true;
+if ( defined('WPDB_PATH') )
+	require_once(WPDB_PATH);
+else
+	require_once( ABSPATH . WPINC . '/wp-db.php' );
+
+if ( defined('DB_CONFIG_FILE') && file_exists( DB_CONFIG_FILE ) ) {
+
+	/** The config file was defined earlier. **/
+
+} elseif ( file_exists( ABSPATH . 'db-config.php') ) {
+
+	/** The config file resides in ABSPATH. **/
+	define( 'DB_CONFIG_FILE', ABSPATH . 'db-config.php' );
+
+} elseif ( file_exists( dirname(ABSPATH) . '/db-config.php' ) && ! file_exists( dirname(ABSPATH) . '/wp-settings.php' ) ) {
+
+	/** The config file resides one level above ABSPATH but is not part of another install. **/
+	define( 'DB_CONFIG_FILE', dirname(ABSPATH) . '/db-config.php' );
+
+} else {
+
+	/** Lacking a config file, revert to the standard database class. **/
+	$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
+	return;
+
+}
+
+/**
+ * Common definitions
+ */
+define( 'HYPERDB_LAG_OK', 1 );
+define( 'HYPERDB_LAG_BEHIND', 2 );
+define( 'HYPERDB_LAG_UNKNOWN', 3 );
+
+define( 'HYPERDB_CONN_HOST_ERROR', 2003 );   // Can't connect to MySQL server on '%s' (%d)
+define( 'HYPERDB_SERVER_GONE_ERROR', 2006 ); // MySQL server has gone away
+
+class hyperdb extends wpdb {
+
+        /**
+	 * A/I patch!
+	 * store a FlexiHash() instance here.
+	 */
+	var $hash_map;
+
+	/**
+	 * The last table that was queried
+	 * @var string
+	 */
+	var $last_table;
+
+	/**
+	 * After any SQL_CALC_FOUND_ROWS query, the query "SELECT FOUND_ROWS()"
+	 * is sent and the mysql result resource stored here. The next query
+	 * for FOUND_ROWS() will retrieve this. We do this to prevent any
+	 * intervening queries from making FOUND_ROWS() inaccessible. You may
+	 * prevent this by adding "NO_SELECT_FOUND_ROWS" in a comment.
+	 * @var resource
+	 */
+	var $last_found_rows_result;
+
+	/**
+	 * Whether to store queries in an array. Useful for debugging and profiling.
+	 * @var bool
+	 */
+	var $save_queries = false;
+
+	/**
+	 * The current mysql link resource
+	 * @var resource
+	 */
+	var $dbh;
+
+	/**
+	 * Associative array (dbhname => dbh) for established mysql connections
+	 * @var array
+	 */
+	var $dbhs;
+
+	/**
+	 * The multi-dimensional array of datasets and servers
+	 * @var array
+	 */
+	var $hyper_servers = array();
+
+	/**
+	 * Optional directory of tables and their datasets
+	 * @var array
+	 */
+	var $hyper_tables = array();
+
+	/**
+	 * Optional directory of callbacks to determine datasets from queries
+	 * @var array
+	 */
+	var $hyper_callbacks = array();
+
+	/**
+	 * Custom callback to save debug info in $this->queries
+	 * @var callable
+	 */
+	var $save_query_callback = null;
+
+	/**
+	 * Whether to use persistent connections
+	 * @var bool
+	 */
+	var $persistent = false;
+
+	/**
+	 * The maximum number of db links to keep open. The least-recently used
+	 * link will be closed when the number of links exceeds this.
+	 * @var int
+	 */
+	var $max_connections = 10;
+
+	/**
+	 * Whether to check with fsockopen prior to connecting to mysql.
+	 * @var bool
+	 */
+	var $check_tcp_responsiveness = true;
+
+	/**
+	 * Minimum number of connections to try before bailing
+	 * @var int
+	 */
+	var $min_tries = 3;
+
+	/**
+	 * Send Reads To Masters. This disables slave connections while true.
+	 * Otherwise it is an array of written tables.
+	 * @var array
+	 */
+	var $srtm = array();
+
+	/**
+	 * The log of db connections made and the time each one took
+	 * @var array
+	 */
+	var $db_connections;
+
+	/**
+	 * The list of unclosed connections sorted by LRU
+	 */
+	var $open_connections = array();
+
+	/**
+	 * The last server used and the database name selected
+	 * @var array
+	 */
+	var $last_used_server;
+
+	/**
+	 * Lookup array (dbhname => (server, db name) ) for re-selecting the db
+	 * when a link is re-used.
+	 * @var array
+	 */
+	var $used_servers = array();
+
+	/**
+	 * Whether to save debug_backtrace in save_query_callback. You may wish
+	 * to disable this, e.g. when tracing out-of-memory problems.
+	 */
+	var $save_backtrace = true;
+
+	/**
+	 * Maximum lag in seconds. Set null to disable. Requires callbacks.
+	 * @var integer
+	 */
+	var $default_lag_threshold = null;
+
+	/**
+	 * Lookup array (dbhname => host:port)
+	 * @var array
+	 */
+	var $dbh2host = array();
+
+	/**
+	 * Keeps track of the dbhname usage and errors.
+	 */
+	var $dbhname_heartbeats = array();
+
+	/**
+	 * Counter for how many queries have failed during the life of the $wpdb object
+	 */
+	var $num_failed_queries = 0;
+
+	/**
+	 * Gets ready to make database connections
+	 * @param array db class vars
+	 */
+	function __construct( $args = null ) {
+		if ( is_array($args) )
+			foreach ( get_class_vars(__CLASS__) as $var => $value )
+				if ( isset($args[$var]) )
+					$this->$var = $args[$var];
+
+		$this->use_mysqli = $this->should_use_mysqli();
+
+		$this->init_charset();
+	}
+
+	/**
+	 * Triggers __construct() for backwards compatibility with PHP4
+	 */
+	function hyperdb( $args = null ) {
+		return $this->__construct($args);
+	}
+
+	/**
+	 * Sets $this->charset and $this->collate
+	 */
+	function init_charset() {
+		if ( function_exists('is_multisite') && is_multisite() ) {
+			$this->charset = 'utf8';
+			if ( defined( 'DB_COLLATE' ) && DB_COLLATE )
+				$this->collate = DB_COLLATE;
+			else
+				$this->collate = 'utf8_general_ci';
+		} elseif ( defined( 'DB_COLLATE' ) ) {
+			$this->collate = DB_COLLATE;
+		}
+
+		if ( defined( 'DB_CHARSET' ) )
+			$this->charset = DB_CHARSET;
+	}
+
+	/**
+	 * Add the connection parameters for a database
+	 */
+	function add_database( $db ) {
+		extract($db, EXTR_SKIP);
+		isset($dataset) or $dataset = 'global';
+		isset($read)    or $read = 1;
+		isset($write)   or $write = 1;
+		unset($db['dataset']);
+
+		if ( $read )
+			$this->hyper_servers[ $dataset ][ 'read' ][ $read ][] = $db;
+		if ( $write )
+			$this->hyper_servers[ $dataset ][ 'write' ][ $write ][] = $db;
+	}
+
+	/**
+	 * Specify the dateset where a table is found
+	 */
+	function add_table( $dataset, $table ) {
+		$this->hyper_tables[ $table ] = $dataset;
+	}
+
+	/**
+	 * Add a callback to a group of callbacks.
+	 * The default group is 'dataset', used to examine
+	 * queries and determine dataset.
+	 */
+	function add_callback( $callback, $group = 'dataset' ) {
+		$this->hyper_callbacks[ $group ][] = $callback;
+	}
+
+	/**
+	 * Find the first table name referenced in a query
+	 * @param string query
+	 * @return string table
+	 */
+	function get_table_from_query( $q ) {
+		// Remove characters that can legally trail the table name
+		$q = rtrim($q, ';/-#');
+		// allow (select...) union [...] style queries. Use the first queries table name.
+		$q = ltrim($q, "\t (");
+		// Strip everything between parentheses except nested
+		// selects and use only 1500 chars of the query
+		$q = preg_replace( '/\((?!\s*select)[^(]*?\)/is', '()', substr( $q, 0, 1500 ) );
+
+		// Refer to the previous query
+		// wpdb doesn't implement last_table, so we run it first.
+		if ( preg_match('/^\s*SELECT.*?\s+FOUND_ROWS\(\)/is', $q) )
+			return $this->last_table;
+
+		if( method_exists( get_parent_class( $this ), 'get_table_from_query' ) ) {
+			// WPDB has added support for get_table_from_query, which should take precedence
+			return parent::get_table_from_query( $q );
+		}
+
+		// Quickly match most common queries
+		if ( preg_match('/^\s*(?:'
+				. 'SELECT.*?\s+FROM'
+				. '|INSERT(?:\s+IGNORE)?(?:\s+INTO)?'
+				. '|REPLACE(?:\s+INTO)?'
+				. '|UPDATE(?:\s+IGNORE)?'
+				. '|DELETE(?:\s+IGNORE)?(?:\s+FROM)?'
+				. ')\s+`?([\w-]+)`?/is', $q, $maybe) )
+			return $maybe[1];
+
+		// SHOW TABLE STATUS and SHOW TABLES
+		if ( preg_match('/^\s*(?:'
+				. 'SHOW\s+TABLE\s+STATUS.+(?:LIKE\s+|WHERE\s+Name\s*=\s*)'
+				. '|SHOW\s+(?:FULL\s+)?TABLES.+(?:LIKE\s+|WHERE\s+Name\s*=\s*)'
+				. ')\W([\w-]+)\W/is', $q, $maybe) )
+			return $maybe[1];
+
+        // SHOW TABLES LIKE (used in some plugins)
+        if ( preg_match('/^\s*'
+                . 'SHOW\s+TABLES\s+LIKE\s+'
+                . '\W(\w+)\W/is', $q, $maybe) )
+            return $maybe[1];
+
+		// Big pattern for the rest of the table-related queries in MySQL 5.0
+		if ( preg_match('/^\s*(?:'
+				. '(?:EXPLAIN\s+(?:EXTENDED\s+)?)?SELECT.*?\s+FROM'
+				. '|INSERT(?:\s+LOW_PRIORITY|\s+DELAYED|\s+HIGH_PRIORITY)?(?:\s+IGNORE)?(?:\s+INTO)?'
+				. '|REPLACE(?:\s+LOW_PRIORITY|\s+DELAYED)?(?:\s+INTO)?'
+				. '|UPDATE(?:\s+LOW_PRIORITY)?(?:\s+IGNORE)?'
+				. '|DELETE(?:\s+LOW_PRIORITY|\s+QUICK|\s+IGNORE)*(?:\s+FROM)?'
+				. '|DESCRIBE|DESC|EXPLAIN|HANDLER'
+				. '|(?:LOCK|UNLOCK)\s+TABLE(?:S)?'
+				. '|(?:RENAME|OPTIMIZE|BACKUP|RESTORE|CHECK|CHECKSUM|ANALYZE|OPTIMIZE|REPAIR).*\s+TABLE'
+				. '|TRUNCATE(?:\s+TABLE)?'
+				. '|CREATE(?:\s+TEMPORARY)?\s+TABLE(?:\s+IF\s+NOT\s+EXISTS)?'
+				. '|ALTER(?:\s+IGNORE)?\s+TABLE'
+				. '|DROP\s+TABLE(?:\s+IF\s+EXISTS)?'
+				. '|CREATE(?:\s+\w+)?\s+INDEX.*\s+ON'
+				. '|DROP\s+INDEX.*\s+ON'
+				. '|LOAD\s+DATA.*INFILE.*INTO\s+TABLE'
+				. '|(?:GRANT|REVOKE).*ON\s+TABLE'
+				. '|SHOW\s+(?:.*FROM|.*TABLE)'
+				. ')\s+`?([\w-]+)`?/is', $q, $maybe) )
+			return $maybe[1];
+	}
+
+	/**
+	 * Determine the likelihood that this query could alter anything
+	 * @param string query
+	 * @return bool
+	 */
+	function is_write_query( $q ) {
+		// Quick and dirty: only SELECT statements are considered read-only.
+		$q = ltrim($q, "\r\n\t (");
+		return !preg_match('/^(?:SELECT|SHOW|DESCRIBE|DESC|EXPLAIN)\s/i', $q);
+	}
+
+	/**
+	 * Set a flag to prevent reading from slaves which might be lagging after a write
+	 */
+	function send_reads_to_masters() {
+		$this->srtm = true;
+	}
+
+	/**
+	 * Callbacks are executed in the order in which they are registered until one
+	 * of them returns something other than null.
+	 */
+	function run_callbacks( $group, $args = null) {
+		if ( ! isset( $this->hyper_callbacks[ $group ] ) || ! is_array( $this->hyper_callbacks[ $group ] ) )
+			return null;
+
+		if ( ! isset( $args ) ) {
+			$args = array( &$this );
+		} elseif ( is_array( $args ) ) {
+			$args[] = &$this;
+		} else {
+			$args = array( $args, &$this );
+		}
+
+		foreach ( $this->hyper_callbacks[ $group ] as $func ) {
+			$result = call_user_func_array($func, $args);
+			if ( isset($result) )
+				return $result;
+		}
+	}
+
+	/**
+	 * Figure out which database server should handle the query, and connect to it.
+	 * @param string query
+	 * @return resource mysql database connection
+	 */
+	function db_connect( $query = '' ) {
+		if ( empty( $query ) )
+			return false;
+
+		$this->last_table = $this->table = $this->get_table_from_query($query);
+
+		if ( isset($this->hyper_tables[$this->table]) ) {
+			$dataset = $this->hyper_tables[$this->table];
+			$this->callback_result = null;
+		} elseif ( null !== $this->callback_result = $this->run_callbacks( 'dataset', $query ) ) {
+			if ( is_array($this->callback_result) )
+				extract( $this->callback_result, EXTR_OVERWRITE );
+			else
+				$dataset = $this->callback_result;
+		}
+
+		if ( ! isset($dataset) )
+			$dataset = 'global';
+
+		if ( ! $dataset )
+			return $this->log_and_bail("Unable to determine dataset (for table: $this->table)");
+		else
+			$this->dataset = $dataset;
+
+		$this->run_callbacks( 'dataset_found', $dataset );
+
+        if (WP_DEBUG === true) {
+            $_ai_msg = sprintf("We choose dataset %s for query '%s'", $this->dataset, $query);
+            $this->print_error($_ai_msg);
+        }
+
+		if ( empty( $this->hyper_servers ) ) {
+			if ( $this->is_mysql_connection( $this->dbh ) )
+				return $this->dbh;
+			if (
+				!defined('DB_HOST')
+				|| !defined('DB_USER')
+				|| !defined('DB_PASSWORD')
+				|| !defined('DB_NAME') )
+				return $this->log_and_bail("We were unable to query because there was no database defined");
+			$this->dbh = $this->ex_mysql_connect( DB_HOST, DB_USER, DB_PASSWORD, $this->persistent );
+			if ( ! $this->is_mysql_connection( $this->dbh ) )
+				return $this->log_and_bail("We were unable to connect to the database. (DB_HOST)");
+			if ( ! $this->ex_mysql_select_db( DB_NAME, $this->dbh ) )
+				return $this->log_and_bail("We were unable to select the database");
+			if ( ! empty( $this->charset ) ) {
+				$collation_query = "SET NAMES '$this->charset'";
+				if ( !empty( $this->collate ) )
+					$collation_query .= " COLLATE '$this->collate'";
+				$this->ex_mysql_query( $collation_query, $this->dbh );
+			}
+			return $this->dbh;
+		}
+
+		// Determine whether the query must be sent to the master (a writable server)
+		if ( !empty( $use_master ) || $this->srtm === true || isset($this->srtm[$this->table]) ) {
+			$use_master = true;
+		} elseif ( $is_write = $this->is_write_query($query) ) {
+			$use_master = true;
+			if ( is_array($this->srtm) )
+				$this->srtm[$this->table] = true;
+		} elseif ( !isset($use_master) && is_array($this->srtm) && !empty($this->srtm) ) {
+			// Detect queries that have a join in the srtm array.
+			$use_master = false;
+			$query_match = substr( $query, 0, 1000 );
+			foreach ( $this->srtm as $key => $value ) {
+				if ( false !== stripos( $query_match, $key ) ) {
+					$use_master = true;
+					break;
+				}
+			}
+		} else {
+			$use_master = false;
+		}
+
+		if ( $use_master ) {
+			$this->dbhname = $dbhname = $dataset . '__w';
+			$operation = 'write';
+		} else {
+			$this->dbhname = $dbhname = $dataset . '__r';
+			$operation = 'read';
+		}
+
+		// Try to reuse an existing connection
+		while ( isset( $this->dbhs[$dbhname] ) && $this->is_mysql_connection( $this->dbhs[$dbhname] ) ) {
+			// Find the connection for incrementing counters
+			foreach ( array_keys($this->db_connections) as $i )
+				if ( $this->db_connections[$i]['dbhname'] == $dbhname )
+					$conn =& $this->db_connections[$i];
+
+			if ( isset($server['name']) ) {
+				$name = $server['name'];
+				// A callback has specified a database name so it's possible the existing connection selected a different one.
+				if ( $name != $this->used_servers[$dbhname]['name'] ) {
+					if ( ! $this->ex_mysql_select_db( $name, $this->dbhs[$dbhname] ) ) {
+						// this can happen when the user varies and lacks permission on the $name database
+						if ( isset( $conn['disconnect (select failed)'] ) )
+							++$conn['disconnect (select failed)'];
+						else
+							$conn['disconnect (select failed)'] = 1;
+
+						$this->disconnect($dbhname);
+						break;
+					}
+					$this->used_servers[$dbhname]['name'] = $name;
+				}
+			} else {
+				$name = $this->used_servers[$dbhname]['name'];
+			}
+
+			$this->current_host = $this->dbh2host[$dbhname];
+
+			// Keep this connection at the top of the stack to prevent disconnecting frequently-used connections
+			if ( $k = array_search($dbhname, $this->open_connections) ) {
+				unset($this->open_connections[$k]);
+				$this->open_connections[] = $dbhname;
+			}
+
+			$this->last_used_server = $this->used_servers[$dbhname];
+			$this->last_connection = compact('dbhname', 'name');
+
+			if ( $this->should_mysql_ping() && ! $this->ex_mysql_ping( $this->dbhs[$dbhname] ) ) {
+				if ( isset( $conn['disconnect (ping failed)'] ) )
+					++$conn['disconnect (ping failed)'];
+				else
+					$conn['disconnect (ping failed)'] = 1;
+
+				$this->disconnect($dbhname);
+				break;
+			}
+
+			if ( isset( $conn['queries'] ) )
+				++$conn['queries'];
+			else
+				$conn['queries'] = 1;
+
+			return $this->dbhs[$dbhname];
+		}
+
+		if ( $use_master && defined( "MASTER_DB_DEAD" ) ) {
+			return $this->bail("We're updating the database, please try back in 5 minutes. If you are posting to your blog please hit the refresh button on your browser in a few minutes to post the data again. It will be posted as soon as the database is back online again.");
+		}
+
+		if ( empty($this->hyper_servers[$dataset][$operation]) )
+			return $this->log_and_bail("No databases available with $this->table ($dataset)");
+
+		// Put the groups in order by priority
+		ksort($this->hyper_servers[$dataset][$operation]);
+
+		// Make a list of at least $this->min_tries connections to try, repeating as necessary.
+		$servers = array();
+		do {
+			foreach ( $this->hyper_servers[$dataset][$operation] as $group => $items ) {
+				$keys = array_keys($items);
+				shuffle($keys);
+				foreach ( $keys as $key )
+					$servers[] = compact('group', 'key');
+			}
+
+			if ( !$tries_remaining = count( $servers ) )
+				return $this->log_and_bail("No database servers were found to match the query ($this->table, $dataset)");
+
+			if ( !isset( $unique_servers ) )
+				$unique_servers = $tries_remaining;
+
+		} while ( $tries_remaining < $this->min_tries );
+
+		// Connect to a database server
+		do {
+			$unique_lagged_slaves = array();
+			$success = false;
+
+			foreach ( $servers as $group_key ) {
+				--$tries_remaining;
+
+				// If all servers are lagged, we need to start ignoring the lag and retry
+				if ( count( $unique_lagged_slaves ) == $unique_servers )
+					break;
+
+				// $group, $key
+				extract($group_key, EXTR_OVERWRITE);
+
+				// $host, $user, $password, $name, $read, $write [, $lag_threshold, $timeout ]
+				extract($this->hyper_servers[$dataset][$operation][$group][$key], EXTR_OVERWRITE);
+				$port = null;
+
+				// Split host:port into $host and $port
+				if ( strpos($host, ':') )
+					list($host, $port) = explode(':', $host);
+
+				// Overlay $server if it was extracted from a callback
+				if ( isset($server) && is_array($server) )
+					extract($server, EXTR_OVERWRITE);
+
+				// Split again in case $server had host:port
+				if ( strpos($host, ':') )
+					list($host, $port) = explode(':', $host);
+
+				// Make sure there's always a port number
+				if ( empty($port) )
+					$port = 3306;
+
+				// Use a default timeout of 200ms
+				if ( !isset($timeout) )
+					$timeout = 0.2;
+
+				// Get the minimum group here, in case $server rewrites it
+				if ( !isset( $min_group ) || $min_group > $group )
+					$min_group = $group;
+
+				// Can be used by the lag callbacks
+				$this->lag_cache_key = "$host:$port";
+				$this->lag_threshold = isset($lag_threshold) ? $lag_threshold : $this->default_lag_threshold;
+
+				// Check for a lagged slave, if applicable
+				if ( !$use_master && !$write && !isset( $ignore_slave_lag )
+					&& isset($this->lag_threshold) && !isset( $server['host'] )
+					&& ( $lagged_status = $this->get_lag_cache() ) === HYPERDB_LAG_BEHIND
+				) {
+					// If it is the last lagged slave and it is with the best preference we will ignore its lag
+					if ( !isset( $unique_lagged_slaves["$host:$port"] )
+						&& $unique_servers == count( $unique_lagged_slaves ) + 1
+						&& $group == $min_group )
+					{
+						$this->lag_threshold = null;
+					} else {
+						$unique_lagged_slaves["$host:$port"] = $this->lag;
+						continue;
+					}
+				}
+
+				$this->timer_start();
+
+				// Connect if necessary or possible
+				$server_state = null;
+				if ( $use_master || ! $tries_remaining ||
+					'up' == $server_state = $this->get_server_state( $host, $port, $timeout ) )
+				{
+					$this->set_connect_timeout( 'pre_connect', $use_master, $tries_remaining );
+					$this->dbhs[$dbhname] = $this->ex_mysql_connect( "$host:$port", $user, $password, $this->persistent );
+					$this->set_connect_timeout( 'post_connect', $use_master, $tries_remaining );
+				} else {
+					$this->dbhs[$dbhname] = false;
+				}
+
+				$elapsed = $this->timer_stop();
+
+				if ( $this->is_mysql_connection( $this->dbhs[$dbhname] ) ) {
+					/**
+					 * If we care about lag, disconnect lagged slaves and try to find others.
+					 * We don't disconnect if it is the last lagged slave and it is with the best preference.
+					 */
+					if ( !$use_master && !$write && !isset( $ignore_slave_lag )
+						&& isset($this->lag_threshold) && !isset( $server['host'] )
+						&& $lagged_status !== HYPERDB_LAG_OK
+						&& ( $lagged_status = $this->get_lag() ) === HYPERDB_LAG_BEHIND
+						&& !(
+							!isset( $unique_lagged_slaves["$host:$port"] )
+							&& $unique_servers == count( $unique_lagged_slaves ) + 1
+							&& $group == $min_group
+						)
+					) {
+						$success = false;
+						$unique_lagged_slaves["$host:$port"] = $this->lag;
+						$this->disconnect( $dbhname );
+						$this->dbhs[$dbhname] = false;
+						$msg = "Replication lag of {$this->lag}s on $host:$port ($dbhname)";
+						$this->print_error( $msg );
+						continue;
+					} elseif ( $this->ex_mysql_select_db( $name, $this->dbhs[$dbhname] ) ) {
+						$success = true;
+						$this->current_host = "$host:$port";
+						$this->dbh2host[$dbhname] = "$host:$port";
+						$queries = 1;
+						$lag = isset( $this->lag ) ? $this->lag : 0;
+						$this->last_connection = compact('dbhname', 'host', 'port', 'user', 'name', 'server_state', 'elapsed', 'success', 'queries', 'lag');
+						$this->db_connections[] = $this->last_connection;
+						$this->open_connections[] = $dbhname;
+						break;
+					}
+				}
+
+				if ( 'down' == $server_state )
+					continue; // don't flood the logs if already down
+
+				if ( HYPERDB_CONN_HOST_ERROR == $this->ex_mysql_errno() &&
+					( 'up' == $server_state || ! $tries_remaining ) )
+				{
+					$this->mark_server_as_down( $host, $port );
+					$server_state = 'down';
+				}
+
+				$success = false;
+				$this->last_connection = compact('dbhname', 'host', 'port', 'user', 'name', 'tcp', 'elapsed', 'success');
+				$this->db_connections[] = $this->last_connection;
+                /* Workaround to stop logging a/i */
+                if ( AI_LOG_HYPERDB == true ) {
+                    $msg = date( "Y-m-d H:i:s" ) . " Can't select $dbhname - \n";
+                    $msg .= "'referrer' => '{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}',\n";
+                    $msg .= "'server' => {$server},\n";
+                    $msg .= "'host' => {$host},\n";
+                    $msg .= "'error' => " . $this->ex_mysql_error() . ",\n";
+                    $msg .= "'errno' => " . $this->ex_mysql_errno() . ",\n";
+                    $msg .= "'server_state' => $server_state\n";
+                    $msg .= "'lagged_status' => " . ( isset( $lagged_status ) ? $lagged_status : HYPERDB_LAG_UNKNOWN );
+
+                    $this->print_error( $msg );
+                }
+			}
+
+			if ( ! $success || ! isset( $this->dbhs[$dbhname] ) || ! $this->is_mysql_connection( $this->dbhs[$dbhname] ) ) {
+				if ( !isset( $ignore_slave_lag ) && count( $unique_lagged_slaves ) ) {
+					// Lagged slaves were not used. Ignore the lag for this connection attempt and retry.
+					$ignore_slave_lag = true;
+					$tries_remaining = count( $servers );
+					continue;
+				}
+
+				$error_details = array(
+					'host' => $host,
+					'port' => $port,
+					'operation' => $operation,
+					'table' => $this->table,
+					'dataset' => $dataset,
+					'dbhname' => $dbhname
+				);
+				$this->run_callbacks( 'db_connection_error', $error_details );
+
+				return $this->bail( "Unable to connect to $host:$port to $operation table '$this->table' ($dataset)" );
+			}
+
+			break;
+		} while ( true );
+
+		if ( !isset( $charset ) )
+			$charset = null;
+
+		if ( !isset( $collate ) )
+			$collate = null;
+
+		$this->set_charset($this->dbhs[$dbhname], $charset, $collate);
+
+		if ( !isset( $charset ) )
+			$charset = null;
+
+		if ( !isset( $collate ) )
+			$collate = null;
+
+        // AI workaround: set all queries to latin1
+		$this->set_charset($this->dbhs[$dbhname], 'latin1');
+
+		$this->dbh = $this->dbhs[$dbhname]; // needed by $wpdb->_real_escape()
+
+		$this->last_used_server = compact('host', 'user', 'name', 'read', 'write');
+
+		$this->used_servers[$dbhname] = $this->last_used_server;
+
+		while ( !$this->persistent && count($this->open_connections) > $this->max_connections ) {
+			$oldest_connection = array_shift($this->open_connections);
+			if ( $this->dbhs[$oldest_connection] != $this->dbhs[$dbhname] )
+				$this->disconnect($oldest_connection);
+		}
+
+		return $this->dbhs[$dbhname];
+	}
+
+	/**
+	 * Sets the connection's character set.
+	 * @param resource $dbh     The resource given by ex_mysql_connect
+	 * @param string   $charset The character set (optional)
+	 * @param string   $collate The collation (optional)
+	 */
+	function set_charset($dbh, $charset = null, $collate = null) {
+		if ( !isset($charset) )
+			$charset = $this->charset;
+		if ( !isset($collate) )
+			$collate = $this->collate;
+
+		if ( ! $this->has_cap( 'collation', $dbh ) || empty( $charset ) )
+			return;
+
+		if ( ! in_array( strtolower( $charset ), array( 'utf8', 'utf8mb4', 'latin1' ) ) )
+			wp_die( "$charset charset isn't supported in HyperDB for security reasons" );
+
+		if ( $this->is_mysql_set_charset_callable() && $this->has_cap( 'set_charset', $dbh ) ) {
+			$this->ex_mysql_set_charset( $charset, $dbh );
+			$this->real_escape = true;
+		} else {
+			$query = $this->prepare( 'SET NAMES %s', $charset );
+			if ( ! empty( $collate ) )
+				$query .= $this->prepare( ' COLLATE %s', $collate );
+			$this->ex_mysql_query( $query, $dbh );
+		}
+	}
+
+	/*
+ 	 * Force addslashes() for the escapes.
+ 	 *
+ 	 * HyperDB makes connections when a query is made
+ 	 * which is why we can't use mysql_real_escape_string() for escapes.
+ 	 * This is also the reason why we don't allow certain charsets. See set_charset().
+ 	 */
+	function _real_escape( $string ) {
+		$escaped = addslashes( $string );
+		if ( method_exists( get_parent_class( $this ), 'add_placeholder_escape' ) ) {
+			$escaped = $this->add_placeholder_escape( $escaped );
+		}
+		return $escaped;
+	}
+
+	/**
+	 * Disconnect and remove connection from open connections list
+	 * @param string $tdbhname
+	 */
+	function disconnect($dbhname) {
+		if ( false !== $k = array_search($dbhname, $this->open_connections) )
+			unset($this->open_connections[$k]);
+
+		foreach ( array_keys( $this->db_connections ) as $i )
+			if ( $this->db_connections[$i]['dbhname'] == $dbhname )
+				unset( $this->db_connections[$i] );
+
+		if ( $this->is_mysql_connection( $this->dbhs[$dbhname] ) )
+			$this->ex_mysql_close( $this->dbhs[$dbhname] );
+
+		unset($this->dbhs[$dbhname]);
+	}
+
+	/**
+	 * Kill cached query results
+	 */
+	function flush() {
+		$this->last_error = '';
+		$this->last_errno = 0;
+		$this->num_rows = 0;
+		parent::flush();
+	}
+
+	/**
+	 * Basic query. See docs for more details.
+	 * @param string $query
+	 * @return int number of rows
+	 */
+	function query( $query ) {
+		// some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
+		if ( function_exists('apply_filters') )
+			$query = apply_filters('query', $query);
+
+		// initialise return
+		$return_val = 0;
+		$this->flush();
+
+		// Log how the function was called
+		$this->func_call = "\$db->query(\"$query\")";
+
+		// Keep track of the last query for debug..
+		$this->last_query = $query;
+
+		if ( preg_match( '/^\s*SELECT\s+FOUND_ROWS(\s*)/i', $query ) ) {
+			if ( $this->is_mysql_result( $this->last_found_rows_result ) ) {
+				$this->result = $this->last_found_rows_result;
+				$elapsed = 0;
+			} else {
+				$this->print_error( "Attempted SELECT FOUND_ROWS() without prior SQL_CALC_FOUND_ROWS." );
+				return false;
+			}
+		} else {
+			$this->dbh = $this->db_connect( $query );
+
+			if ( ! $this->is_mysql_connection( $this->dbh ) ) {
+				$this->check_current_query = true;
+				$this->last_error = 'Database connection failed';
+				$this->num_failed_queries++;
+				do_action( 'sql_query_log', $query, false, $this->last_error );
+				return false;
+			}
+
+			$query_comment = $this->run_callbacks( 'get_query_comment', $query );
+			if ( ! empty( $query_comment ) )
+				$query = rtrim( $query, ";\t \n\r" ) . ' /* ' . $query_comment . ' */';
+
+			// If we're writing to the database, make sure the query will write safely.
+			if ( $this->check_current_query && method_exists( $this, 'check_ascii' ) && ! $this->check_ascii( $query ) ) {
+				$stripped_query = $this->strip_invalid_text_from_query( $query );
+				if ( $stripped_query !== $query ) {
+					$this->insert_id = 0;
+					$this->last_error = 'Invalid query';
+					$this->num_failed_queries++;
+					do_action( 'sql_query_log', $query, false, $this->last_error );
+					return false;
+				}
+			}
+
+			$this->check_current_query = true;
+
+			// Inject setup and teardown statements
+			$statement_before_query = $this->run_callbacks( 'statement_before_query' );
+			$statement_after_query = $this->run_callbacks( 'statement_after_query' );
+			$query_for_log = $query;
+
+            // A/I: prevent mysql-proxy to cache the admin section
+            if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/') !== false) {
+                $query .= ' /* NO CACHE */';
+            }
+
+			$this->timer_start();
+			if ( $statement_before_query ) {
+				$query_for_log = "$statement_before_query; $query_for_log";
+				$this->ex_mysql_query( $statement_before_query, $this->dbh );
+			}
+
+			$this->result = $this->ex_mysql_query( $query, $this->dbh );
+
+			if ( $statement_after_query ) {
+				$query_for_log = "$query_for_log; $statement_after_query";
+				$this->ex_mysql_query( $statement_after_query, $this->dbh );
+			}
+			$elapsed = $this->timer_stop();
+			++$this->num_queries;
+
+			if ( preg_match('/^\s*SELECT\s+SQL_CALC_FOUND_ROWS\s/i', $query) ) {
+				if ( false === strpos($query, "NO_SELECT_FOUND_ROWS") ) {
+					$this->timer_start();
+					$this->last_found_rows_result = $this->ex_mysql_query( "SELECT FOUND_ROWS()", $this->dbh );
+					$elapsed += $this->timer_stop();
+					++$this->num_queries;
+					$query .= "; SELECT FOUND_ROWS()";
+				}
+			} else {
+				$this->last_found_rows_result = null;
+			}
+
+			$this->dbhname_heartbeats[$this->dbhname]['last_used'] = microtime( true );
+
+			if ( $this->save_queries ) {
+				if ( is_callable($this->save_query_callback) ) {
+					$saved_query = call_user_func_array( $this->save_query_callback, array( $query_for_log, $elapsed, $this->save_backtrace ? debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ) : null, &$this ) );
+					if ( $saved_query !== null ) {
+						$this->queries[] = $saved_query;
+					}
+				} else {
+					$this->queries[] = array( $query_for_log, $elapsed, $this->get_caller() );
+				}
+			}
+		}
+
+		// If there is an error then take note of it
+		if ( $this->last_error = $this->ex_mysql_error( $this->dbh ) ) {
+			$this->last_errno = $this->ex_mysql_errno( $this->dbh );
+			$this->dbhname_heartbeats[$this->dbhname]['last_errno'] = $this->last_errno;
+			$this->print_error($this->last_error);
+			$this->num_failed_queries++;
+			do_action( 'sql_query_log', $query, false, $this->last_error );
+			return false;
+		}
+
+		if ( preg_match('/^\s*(insert|delete|update|replace|alter)\s/i',$query) ) {
+			$this->rows_affected = $this->ex_mysql_affected_rows( $this->dbh );
+
+			// Take note of the insert_id
+			if ( preg_match('/^\s*(insert|replace)\s/i',$query) ) {
+				$this->insert_id = $this->ex_mysql_insert_id( $this->dbh );
+			}
+			// Return number of rows affected
+			$return_val = $this->rows_affected;
+		} else if ( is_bool( $this->result ) ) {
+			$return_val = $this->result;
+			$this->result = null;
+		} else {
+			$i = 0;
+			$this->col_info = array();
+			while ( $i < $this->ex_mysql_num_fields( $this->result ) ) {
+				$this->col_info[$i] = $this->ex_mysql_fetch_field( $this->result );
+				$i++;
+			}
+			$num_rows = 0;
+			$this->last_result = array();
+			while ( $row = $this->ex_mysql_fetch_object( $this->result ) ) {
+				$this->last_result[$num_rows] = $row;
+				$num_rows++;
+			}
+
+			$this->ex_mysql_free_result( $this->result );
+			$this->result = null;
+
+			// Log number of rows the query returned
+			$this->num_rows = $num_rows;
+
+			// Return number of rows selected
+			$return_val = $this->num_rows;
+		}
+
+		do_action( 'sql_query_log', $query, $return_val, $this->last_error );
+		return $return_val;
+	}
+
+	/**
+	 * Whether or not MySQL database is at least the required minimum version.
+	 * The additional argument allows the caller to check a specific database.
+	 *
+	 * @since 2.5.0
+	 * @uses $wp_version
+	 *
+	 * @return WP_Error
+	 */
+	function check_database_version( $dbh_or_table = false ) {
+		global $wp_version;
+		// Make sure the server has MySQL 4.1.2
+		$mysql_version = preg_replace( '|[^0-9\.]|', '', $this->db_version( $dbh_or_table ) );
+		if ( version_compare($mysql_version, '4.1.2', '<') )
+			return new WP_Error( 'database_version', sprintf(__('<strong>ERROR</strong>: WordPress %s requires MySQL 4.1.2 or higher'), $wp_version) );
+	}
+
+	/**
+	 * This function is called when WordPress is generating the table schema to determine wether or not the current database
+	 * supports or needs the collation statements.
+	 * The additional argument allows the caller to check a specific database.
+	 * @return bool
+	 */
+	function supports_collation( $dbh_or_table = false ) {
+		return $this->has_cap( 'collation', $dbh_or_table );
+	}
+
+	/**
+	 * Generic function to determine if a database supports a particular feature
+	 * The additional argument allows the caller to check a specific database.
+	 * @param string $db_cap the feature
+	 * @param false|string|resource $dbh_or_table the databaese (the current database, the database housing the specified table, or the database of the mysql resource)
+	 * @return bool
+	 */
+	function has_cap( $db_cap, $dbh_or_table = false ) {
+		$version = $this->db_version( $dbh_or_table );
+
+		switch ( strtolower( $db_cap ) ) :
+		case 'collation' :
+		case 'group_concat' :
+		case 'subqueries' :
+			return version_compare($version, '4.1', '>=');
+		case 'set_charset' :
+			return version_compare($version, '5.0.7', '>=');
+		endswitch;
+
+		return false;
+	}
+
+	/**
+	 * The database version number
+	 * @param false|string|resource $dbh_or_table the databaese (the current database, the database housing the specified table, or the database of the mysql resource)
+	 * @return false|string false on failure, version number on success
+	 */
+	function db_version( $dbh_or_table = false ) {
+		if ( !$dbh_or_table && $this->dbh )
+			$dbh =& $this->dbh;
+		elseif ( $this->is_mysql_connection( $dbh_or_table ) )
+			$dbh =& $dbh_or_table;
+		else
+			$dbh = $this->db_connect( "SELECT FROM $dbh_or_table $this->users" );
+
+		if ( $dbh )
+			return preg_replace( '/[^0-9.].*/', '', $this->ex_mysql_get_server_info( $dbh ) );
+		return false;
+	}
+
+	/**
+	 * Get the name of the function that called wpdb.
+	 * @return string the name of the calling function
+	 */
+	function get_caller() {
+		// requires PHP 4.3+
+		if ( !is_callable('debug_backtrace') )
+			return '';
+
+		$hyper_callbacks = array();
+		foreach ( $this->hyper_callbacks as $group_name => $group_callbacks )
+			$hyper_callbacks = array_merge( $hyper_callbacks, $group_callbacks );
+
+		$bt = debug_backtrace( false );
+		$caller = '';
+
+		foreach ( (array) $bt as $trace ) {
+			if ( isset($trace['class']) && is_a( $this, $trace['class'] ) )
+				continue;
+			elseif ( !isset($trace['function']) )
+				continue;
+			elseif ( strtolower($trace['function']) == 'call_user_func_array' )
+				continue;
+			elseif ( strtolower($trace['function']) == 'apply_filters' )
+				continue;
+			elseif ( strtolower($trace['function']) == 'do_action' )
+				continue;
+
+			if ( in_array( strtolower($trace['function']), $hyper_callbacks ) )
+				continue;
+
+			if ( isset($trace['class']) )
+				$caller = $trace['class'] . '::' . $trace['function'];
+			else
+				$caller = $trace['function'];
+			break;
+		}
+		return $caller;
+	}
+
+	function log_and_bail( $msg ) {
+		$logged = $this->run_callbacks( 'log_and_bail', $msg );
+
+		if ( ! $logged )
+			error_log( "WordPress database error $msg for query {$this->last_query} made by " .  $this->get_caller() );
+
+		return $this->bail( $msg );
+	}
+
+	/**
+	 * Check the responsiveness of a tcp/ip daemon
+	 * @return (string) 'up' when $host:$post responds within $float_timeout seconds,
+	 * otherwise a string with details about the failure.
+	 */
+	function check_tcp_responsiveness( $host, $port, $float_timeout ) {
+		if ( function_exists( 'apcu_store' ) ) {
+			$use_apc = true;
+			$apcu_key = "tcp_responsive_{$host}{$port}";
+			$apcu_ttl = 10;
+		} else {
+			$use_apc = false;
+		}
+
+		if ( $use_apc ) {
+			$server_state = apcu_fetch( $apcu_key );
+			if ( $server_state )
+				return $server_state;
+		}
+
+		$socket = @ fsockopen( $host, $port, $errno, $errstr, $float_timeout );
+		if ( $socket === false ) {
+			$server_state = "down [ > $float_timeout ] ($errno) '$errstr'";
+			if ( $use_apc )
+				apcu_store( $apcu_key, $server_state, $apcu_ttl );
+
+			return $server_state;
+		}
+
+		fclose( $socket );
+
+		if ( $use_apc )
+			apcu_store( $apcu_key, 'up', $apcu_ttl );
+
+		return 'up';
+	}
+
+	function get_server_state( $host, $port, $timeout ) {
+		// We still do the check_tcp_responsiveness() until we have
+		// mysql connect function with less than 1 second timeout
+		if ( $this->check_tcp_responsiveness ) {
+			$server_state = $this->check_tcp_responsiveness( $host, $port, $timeout );
+			if ( 'up' !== $server_state )
+				return $server_state;
+		}
+
+		if ( ! function_exists( 'apcu_store' ) )
+			return 'up';
+
+		$server_state = apcu_fetch( "server_state_$host$port" );
+		if ( ! $server_state )
+			return 'up';
+
+		return $server_state;
+	}
+
+	function mark_server_as_down( $host, $port, $apcu_ttl = 10 ) {
+		if ( ! function_exists( 'apcu_store' ) )
+			return;
+
+		apcu_add( "server_state_$host$port", 'down', $apcu_ttl );
+	}
+
+	function set_connect_timeout( $tag, $use_master, $tries_remaining ) {
+		static $default_connect_timeout;
+
+		if ( ! isset ( $default_connect_timeout ) )
+			$default_connect_timeout = $this->ex_mysql_connect_timeout();
+
+		switch ( $tag ) {
+			case 'pre_connect':
+				if ( ! $use_master && $tries_remaining )
+					$this->ex_mysql_connect_timeout( 1 );
+				break;
+			case 'post_connect':
+			default:
+				if ( ! $use_master && $tries_remaining )
+					$this->ex_mysql_connect_timeout( $default_connect_timeout );
+				break;
+		}
+	}
+
+	function get_lag_cache() {
+		$this->lag = $this->run_callbacks( 'get_lag_cache' );
+
+		return $this->check_lag();
+	}
+
+	function get_lag() {
+		$this->lag = $this->run_callbacks( 'get_lag' );
+
+		return $this->check_lag();
+	}
+
+	function check_lag() {
+		if ( $this->lag === false )
+			return HYPERDB_LAG_UNKNOWN;
+
+		if ( $this->lag > $this->lag_threshold )
+			return HYPERDB_LAG_BEHIND;
+
+		return HYPERDB_LAG_OK;
+	}
+
+	function should_use_mysqli() {
+		if ( ! function_exists( 'mysqli_connect' ) )
+			return false;
+
+		if ( defined( 'WP_USE_EXT_MYSQL' ) && WP_USE_EXT_MYSQL )
+			return false;
+
+		return true;
+	}
+
+	function should_mysql_ping() {
+		// Shouldn't happen
+		if ( ! isset( $this->dbhname_heartbeats[$this->dbhname] ) )
+			return true;
+
+		// MySQL server has gone away
+		if ( isset( $this->dbhname_heartbeats[$this->dbhname]['last_errno'] ) &&
+			HYPERDB_SERVER_GONE_ERROR == $this->dbhname_heartbeats[$this->dbhname]['last_errno'] )
+		{
+			unset( $this->dbhname_heartbeats[$this->dbhname]['last_errno'] );
+			return true;
+		}
+
+		// More than 0.1 seconds of inactivity on that dbhname
+		if ( microtime( true ) - $this->dbhname_heartbeats[$this->dbhname]['last_used'] > 0.1 )
+			return true;
+
+		return false;
+	}
+
+	function is_mysql_connection( $dbh ) {
+		if ( ! $this->use_mysqli )
+			return is_resource( $dbh );
+
+		return $dbh instanceof mysqli;
+	}
+
+	function is_mysql_result( $result ) {
+		if ( ! $this->use_mysqli )
+			return is_resource( $result );
+
+		return $result instanceof mysqli_result;
+	}
+
+	function is_mysql_set_charset_callable() {
+		if ( ! $this->use_mysqli )
+			return function_exists( 'mysql_set_charset' );
+
+		return function_exists( 'mysqli_set_charset' );
+	}
+
+	// MySQL execution functions.
+	// They perform the appropriate calls based on whether we use MySQLi.
+
+	function ex_mysql_query( $query, $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_query( $query, $dbh );
+
+		return mysqli_query( $dbh, $query );
+	}
+
+	function ex_mysql_unbuffered_query( $query, $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_unbuffered_query( $query, $dbh );
+
+		return mysqli_query( $dbh, $query, MYSQLI_USE_RESULT );
+	}
+
+	function ex_mysql_connect( $db_host, $db_user, $db_password, $persistent ) {
+		$client_flags = defined( 'MYSQL_CLIENT_FLAGS' ) ? MYSQL_CLIENT_FLAGS : 0;
+
+		if ( ! $this->use_mysqli ) {
+			$connect_function = $persistent ? 'mysql_pconnect' : 'mysql_connect';
+			return @$connect_function( $db_host, $db_user, $db_password, true );
+		}
+
+		$dbh = mysqli_init();
+
+		// mysqli_real_connect doesn't support the host param including a port or socket
+		// like mysql_connect does. This duplicates how mysql_connect detects a port and/or socket file.
+		$port = null;
+		$socket = null;
+		$port_or_socket = strstr( $db_host, ':' );
+		if ( ! empty( $port_or_socket ) ) {
+			$db_host = substr( $db_host, 0, strpos( $db_host, ':' ) );
+			$port_or_socket = substr( $port_or_socket, 1 );
+			if ( 0 !== strpos( $port_or_socket, '/' ) ) {
+				$port = intval( $port_or_socket );
+				$maybe_socket = strstr( $port_or_socket, ':' );
+				if ( ! empty( $maybe_socket ) ) {
+					$socket = substr( $maybe_socket, 1 );
+				}
+			} else {
+				$socket = $port_or_socket;
+			}
+		}
+
+		if ( $persistent )
+			$db_host = "p:{$db_host}";
+
+        $retval = mysqli_real_connect( $dbh, $db_host, $db_user, $db_password, null, $port, $socket, $client_flags );
+
+		if ( ! $retval || $dbh->connect_errno )
+			return false;
+
+		return $dbh;
+	}
+
+	function ex_mysql_select_db( $db_name, $dbh ) {
+		if ( ! $this->use_mysqli )
+			return @mysql_select_db( $db_name, $dbh );
+
+		return @mysqli_select_db( $dbh, $db_name );
+	}
+
+	function ex_mysql_close( $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_close( $dbh );
+
+		return mysqli_close( $dbh );
+	}
+
+	function ex_mysql_set_charset( $charset, $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_set_charset( $charset, $dbh );
+
+		return mysqli_set_charset( $dbh, $charset );
+	}
+
+	function ex_mysql_errno( $dbh = null ) {
+		if ( ! $this->use_mysqli )
+			return is_resource( $dbh ) ? mysql_errno( $dbh ) : mysql_errno();
+
+		if ( is_null( $dbh ) )
+			return mysqli_connect_errno();
+
+		return mysqli_errno( $dbh );
+	}
+
+	function ex_mysql_error( $dbh = null ) {
+		if ( ! $this->use_mysqli )
+			return is_resource( $dbh ) ? mysql_error( $dbh ) : mysql_error();
+
+		if ( is_null( $dbh ) )
+			return mysqli_connect_error();
+
+		if ( ! $this->is_mysql_connection( $dbh ) )
+			return false;
+
+		return mysqli_error( $dbh );
+	}
+
+	function ex_mysql_ping( $dbh ) {
+		if ( ! $this->use_mysqli )
+			return @mysql_ping( $dbh );
+
+		return @mysqli_ping( $dbh );
+	}
+
+	function ex_mysql_affected_rows( $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_affected_rows( $dbh );
+
+		return mysqli_affected_rows( $dbh );
+	}
+
+	function ex_mysql_insert_id( $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_insert_id( $dbh );
+
+		return mysqli_insert_id( $dbh );
+	}
+
+	function ex_mysql_num_fields( $result ) {
+		if ( ! $this->use_mysqli )
+			return @mysql_num_fields( $result );
+
+		return @mysqli_num_fields( $result );
+	}
+
+	function ex_mysql_fetch_field( $result ) {
+		if ( ! $this->use_mysqli )
+			return @mysql_fetch_field( $result );
+
+		return @mysqli_fetch_field( $result );
+	}
+
+	function ex_mysql_fetch_assoc( $result ) {
+		if ( ! $this->use_mysqli )
+			return mysql_fetch_assoc( $result );
+
+		if ( ! $this->is_mysql_result( $result ) )
+			return false;
+
+		$object = mysqli_fetch_assoc( $result );
+
+		return ! is_null( $object ) ? $object : false;
+	}
+
+	function ex_mysql_fetch_object( $result ) {
+		if ( ! $this->use_mysqli )
+			return @mysql_fetch_object( $result );
+
+		if ( ! $this->is_mysql_result( $result ) )
+			return false;
+
+		$object = @mysqli_fetch_object( $result );
+
+		return ! is_null( $object ) ? $object : false;
+	}
+
+	function ex_mysql_fetch_row( $result ) {
+		if ( ! $this->use_mysqli )
+			return mysql_fetch_row( $result );
+
+		if ( ! $this->is_mysql_result( $result ) )
+			return false;
+
+		$row = mysqli_fetch_row( $result );
+
+		return ! is_null( $row ) ? $row : false;
+
+	}
+
+	function ex_mysql_num_rows( $result ) {
+		if ( ! $this->use_mysqli )
+			return mysql_num_rows( $result );
+
+		return mysqli_num_rows( $result );
+	}
+
+	function ex_mysql_free_result( $result ) {
+		if ( ! $this->use_mysqli )
+			return @mysql_free_result( $result );
+
+		return @mysqli_free_result( $result );
+	}
+
+	function ex_mysql_get_server_info( $dbh ) {
+		if ( ! $this->use_mysqli )
+			return mysql_get_server_info( $dbh );
+
+		return mysqli_get_server_info( $dbh );
+	}
+
+	function ex_mysql_connect_timeout( $timeout = null ) {
+		if ( is_null( $timeout ) ) {
+			if ( ! $this->use_mysqli )
+				return ini_get( 'mysql.connect_timeout' );
+
+			return ini_get( 'default_socket_timeout' );
+		}
+
+		if ( ! $this->use_mysqli )
+			return ini_set( 'mysql.connect_timeout', $timeout );
+
+		return ini_set( 'default_socket_timeout', $timeout );
+	}
+	// Helper functions for configuration
+
+} // class hyperdb
+
+/**
+ * AI custom: Logs all queries for debugging purposes
+ */
+function ai_log_db_queries($query, $time, $backtrace=null, hyperdb $obj ) {
+    $fh = fopen( ABSPATH . '/profiling/noblogs_queries_'. date('Ymd') . '.log', 'a');
+    if (!$fh) {
+        return array($query, $time, $backtrace);
+    }
+    fwrite($fh, sprintf("##\n#Date: %s\n#Query time: %s\n%s\n", date('r'), $time, $query));
+    fclose($fh);
+    return array($query, $time, $backtrace);
+}
+
+
+$wpdb = new hyperdb();
+if ( AI_DB_PROFILER === true ) {
+    $wpdb->save_queries = true;
+    $wpdb->save_query_callback = 'ai_log_db_queries';
+}
+require( DB_CONFIG_FILE );
diff --git a/content/languages/admin-en_GB.mo b/wp-content/languages/admin-en_GB.mo
similarity index 100%
rename from content/languages/admin-en_GB.mo
rename to wp-content/languages/admin-en_GB.mo
diff --git a/content/languages/admin-en_GB.po b/wp-content/languages/admin-en_GB.po
similarity index 100%
rename from content/languages/admin-en_GB.po
rename to wp-content/languages/admin-en_GB.po
diff --git a/content/languages/admin-it_IT.mo b/wp-content/languages/admin-it_IT.mo
similarity index 100%
rename from content/languages/admin-it_IT.mo
rename to wp-content/languages/admin-it_IT.mo
diff --git a/content/languages/admin-it_IT.po b/wp-content/languages/admin-it_IT.po
similarity index 100%
rename from content/languages/admin-it_IT.po
rename to wp-content/languages/admin-it_IT.po
diff --git a/content/languages/admin-network-en_GB.mo b/wp-content/languages/admin-network-en_GB.mo
similarity index 100%
rename from content/languages/admin-network-en_GB.mo
rename to wp-content/languages/admin-network-en_GB.mo
diff --git a/content/languages/admin-network-en_GB.po b/wp-content/languages/admin-network-en_GB.po
similarity index 100%
rename from content/languages/admin-network-en_GB.po
rename to wp-content/languages/admin-network-en_GB.po
diff --git a/content/languages/admin-network-it_IT.mo b/wp-content/languages/admin-network-it_IT.mo
similarity index 100%
rename from content/languages/admin-network-it_IT.mo
rename to wp-content/languages/admin-network-it_IT.mo
diff --git a/content/languages/admin-network-it_IT.po b/wp-content/languages/admin-network-it_IT.po
similarity index 100%
rename from content/languages/admin-network-it_IT.po
rename to wp-content/languages/admin-network-it_IT.po
diff --git a/content/languages/continents-cities-it_IT.mo b/wp-content/languages/continents-cities-it_IT.mo
similarity index 100%
rename from content/languages/continents-cities-it_IT.mo
rename to wp-content/languages/continents-cities-it_IT.mo
diff --git a/content/languages/continents-cities-it_IT.po b/wp-content/languages/continents-cities-it_IT.po
similarity index 100%
rename from content/languages/continents-cities-it_IT.po
rename to wp-content/languages/continents-cities-it_IT.po
diff --git a/content/languages/en_GB-0ce75ad2f775d1cac9696967d484808c.json b/wp-content/languages/en_GB-0ce75ad2f775d1cac9696967d484808c.json
similarity index 100%
rename from content/languages/en_GB-0ce75ad2f775d1cac9696967d484808c.json
rename to wp-content/languages/en_GB-0ce75ad2f775d1cac9696967d484808c.json
diff --git a/content/languages/en_GB-1a0cd6a7128913b15c1a10dd68951869.json b/wp-content/languages/en_GB-1a0cd6a7128913b15c1a10dd68951869.json
similarity index 100%
rename from content/languages/en_GB-1a0cd6a7128913b15c1a10dd68951869.json
rename to wp-content/languages/en_GB-1a0cd6a7128913b15c1a10dd68951869.json
diff --git a/content/languages/en_GB-1bba9045bb07c89671c88a3f328548e8.json b/wp-content/languages/en_GB-1bba9045bb07c89671c88a3f328548e8.json
similarity index 100%
rename from content/languages/en_GB-1bba9045bb07c89671c88a3f328548e8.json
rename to wp-content/languages/en_GB-1bba9045bb07c89671c88a3f328548e8.json
diff --git a/content/languages/en_GB-28b3c3d595952907e08d98287077426c.json b/wp-content/languages/en_GB-28b3c3d595952907e08d98287077426c.json
similarity index 100%
rename from content/languages/en_GB-28b3c3d595952907e08d98287077426c.json
rename to wp-content/languages/en_GB-28b3c3d595952907e08d98287077426c.json
diff --git a/content/languages/en_GB-2c5d274ea625dd91556554ad82901529.json b/wp-content/languages/en_GB-2c5d274ea625dd91556554ad82901529.json
similarity index 100%
rename from content/languages/en_GB-2c5d274ea625dd91556554ad82901529.json
rename to wp-content/languages/en_GB-2c5d274ea625dd91556554ad82901529.json
diff --git a/content/languages/en_GB-4a38fe1c0c45989e44682ba6109d9f46.json b/wp-content/languages/en_GB-4a38fe1c0c45989e44682ba6109d9f46.json
similarity index 100%
rename from content/languages/en_GB-4a38fe1c0c45989e44682ba6109d9f46.json
rename to wp-content/languages/en_GB-4a38fe1c0c45989e44682ba6109d9f46.json
diff --git a/content/languages/en_GB-68f2cec7514bf8563c723a4d675fcfe6.json b/wp-content/languages/en_GB-68f2cec7514bf8563c723a4d675fcfe6.json
similarity index 100%
rename from content/languages/en_GB-68f2cec7514bf8563c723a4d675fcfe6.json
rename to wp-content/languages/en_GB-68f2cec7514bf8563c723a4d675fcfe6.json
diff --git a/content/languages/en_GB-7f13c36c641b114bf18cd0bcc9ecc7e0.json b/wp-content/languages/en_GB-7f13c36c641b114bf18cd0bcc9ecc7e0.json
similarity index 100%
rename from content/languages/en_GB-7f13c36c641b114bf18cd0bcc9ecc7e0.json
rename to wp-content/languages/en_GB-7f13c36c641b114bf18cd0bcc9ecc7e0.json
diff --git a/content/languages/en_GB-803bf1ce2131e13efc590c1bc47851fc.json b/wp-content/languages/en_GB-803bf1ce2131e13efc590c1bc47851fc.json
similarity index 100%
rename from content/languages/en_GB-803bf1ce2131e13efc590c1bc47851fc.json
rename to wp-content/languages/en_GB-803bf1ce2131e13efc590c1bc47851fc.json
diff --git a/content/languages/en_GB-81c889563f09dd13de1701135dc62941.json b/wp-content/languages/en_GB-81c889563f09dd13de1701135dc62941.json
similarity index 100%
rename from content/languages/en_GB-81c889563f09dd13de1701135dc62941.json
rename to wp-content/languages/en_GB-81c889563f09dd13de1701135dc62941.json
diff --git a/content/languages/en_GB-8860e58c20c6a2ab5876a0f07be43bd9.json b/wp-content/languages/en_GB-8860e58c20c6a2ab5876a0f07be43bd9.json
similarity index 100%
rename from content/languages/en_GB-8860e58c20c6a2ab5876a0f07be43bd9.json
rename to wp-content/languages/en_GB-8860e58c20c6a2ab5876a0f07be43bd9.json
diff --git a/content/languages/en_GB-947c76bb5095da30e16668eec15406b2.json b/wp-content/languages/en_GB-947c76bb5095da30e16668eec15406b2.json
similarity index 100%
rename from content/languages/en_GB-947c76bb5095da30e16668eec15406b2.json
rename to wp-content/languages/en_GB-947c76bb5095da30e16668eec15406b2.json
diff --git a/content/languages/en_GB-a25d1cc7bf7ca0b4e114f6bea64943f4.json b/wp-content/languages/en_GB-a25d1cc7bf7ca0b4e114f6bea64943f4.json
similarity index 100%
rename from content/languages/en_GB-a25d1cc7bf7ca0b4e114f6bea64943f4.json
rename to wp-content/languages/en_GB-a25d1cc7bf7ca0b4e114f6bea64943f4.json
diff --git a/content/languages/en_GB-bf0f094965d3d4a95b47babcb35fc136.json b/wp-content/languages/en_GB-bf0f094965d3d4a95b47babcb35fc136.json
similarity index 100%
rename from content/languages/en_GB-bf0f094965d3d4a95b47babcb35fc136.json
rename to wp-content/languages/en_GB-bf0f094965d3d4a95b47babcb35fc136.json
diff --git a/content/languages/en_GB-daeb084aab42199d26393a56c3465bc0.json b/wp-content/languages/en_GB-daeb084aab42199d26393a56c3465bc0.json
similarity index 100%
rename from content/languages/en_GB-daeb084aab42199d26393a56c3465bc0.json
rename to wp-content/languages/en_GB-daeb084aab42199d26393a56c3465bc0.json
diff --git a/content/languages/en_GB-e2791ba830489d23043be8650a22a22b.json b/wp-content/languages/en_GB-e2791ba830489d23043be8650a22a22b.json
similarity index 100%
rename from content/languages/en_GB-e2791ba830489d23043be8650a22a22b.json
rename to wp-content/languages/en_GB-e2791ba830489d23043be8650a22a22b.json
diff --git a/content/languages/en_GB-f8f49d9fc4a9cf7d78ec99285417bd9c.json b/wp-content/languages/en_GB-f8f49d9fc4a9cf7d78ec99285417bd9c.json
similarity index 100%
rename from content/languages/en_GB-f8f49d9fc4a9cf7d78ec99285417bd9c.json
rename to wp-content/languages/en_GB-f8f49d9fc4a9cf7d78ec99285417bd9c.json
diff --git a/content/languages/en_GB.mo b/wp-content/languages/en_GB.mo
similarity index 100%
rename from content/languages/en_GB.mo
rename to wp-content/languages/en_GB.mo
diff --git a/content/languages/en_GB.po b/wp-content/languages/en_GB.po
similarity index 100%
rename from content/languages/en_GB.po
rename to wp-content/languages/en_GB.po
diff --git a/content/languages/it_IT-0ce75ad2f775d1cac9696967d484808c.json b/wp-content/languages/it_IT-0ce75ad2f775d1cac9696967d484808c.json
similarity index 100%
rename from content/languages/it_IT-0ce75ad2f775d1cac9696967d484808c.json
rename to wp-content/languages/it_IT-0ce75ad2f775d1cac9696967d484808c.json
diff --git a/content/languages/it_IT-1a0cd6a7128913b15c1a10dd68951869.json b/wp-content/languages/it_IT-1a0cd6a7128913b15c1a10dd68951869.json
similarity index 100%
rename from content/languages/it_IT-1a0cd6a7128913b15c1a10dd68951869.json
rename to wp-content/languages/it_IT-1a0cd6a7128913b15c1a10dd68951869.json
diff --git a/content/languages/it_IT-1bba9045bb07c89671c88a3f328548e8.json b/wp-content/languages/it_IT-1bba9045bb07c89671c88a3f328548e8.json
similarity index 100%
rename from content/languages/it_IT-1bba9045bb07c89671c88a3f328548e8.json
rename to wp-content/languages/it_IT-1bba9045bb07c89671c88a3f328548e8.json
diff --git a/content/languages/it_IT-28b3c3d595952907e08d98287077426c.json b/wp-content/languages/it_IT-28b3c3d595952907e08d98287077426c.json
similarity index 100%
rename from content/languages/it_IT-28b3c3d595952907e08d98287077426c.json
rename to wp-content/languages/it_IT-28b3c3d595952907e08d98287077426c.json
diff --git a/content/languages/it_IT-2c5d274ea625dd91556554ad82901529.json b/wp-content/languages/it_IT-2c5d274ea625dd91556554ad82901529.json
similarity index 100%
rename from content/languages/it_IT-2c5d274ea625dd91556554ad82901529.json
rename to wp-content/languages/it_IT-2c5d274ea625dd91556554ad82901529.json
diff --git a/content/languages/it_IT-4a38fe1c0c45989e44682ba6109d9f46.json b/wp-content/languages/it_IT-4a38fe1c0c45989e44682ba6109d9f46.json
similarity index 100%
rename from content/languages/it_IT-4a38fe1c0c45989e44682ba6109d9f46.json
rename to wp-content/languages/it_IT-4a38fe1c0c45989e44682ba6109d9f46.json
diff --git a/content/languages/it_IT-68f2cec7514bf8563c723a4d675fcfe6.json b/wp-content/languages/it_IT-68f2cec7514bf8563c723a4d675fcfe6.json
similarity index 100%
rename from content/languages/it_IT-68f2cec7514bf8563c723a4d675fcfe6.json
rename to wp-content/languages/it_IT-68f2cec7514bf8563c723a4d675fcfe6.json
diff --git a/content/languages/it_IT-7f13c36c641b114bf18cd0bcc9ecc7e0.json b/wp-content/languages/it_IT-7f13c36c641b114bf18cd0bcc9ecc7e0.json
similarity index 100%
rename from content/languages/it_IT-7f13c36c641b114bf18cd0bcc9ecc7e0.json
rename to wp-content/languages/it_IT-7f13c36c641b114bf18cd0bcc9ecc7e0.json
diff --git a/content/languages/it_IT-803bf1ce2131e13efc590c1bc47851fc.json b/wp-content/languages/it_IT-803bf1ce2131e13efc590c1bc47851fc.json
similarity index 100%
rename from content/languages/it_IT-803bf1ce2131e13efc590c1bc47851fc.json
rename to wp-content/languages/it_IT-803bf1ce2131e13efc590c1bc47851fc.json
diff --git a/content/languages/it_IT-81c889563f09dd13de1701135dc62941.json b/wp-content/languages/it_IT-81c889563f09dd13de1701135dc62941.json
similarity index 100%
rename from content/languages/it_IT-81c889563f09dd13de1701135dc62941.json
rename to wp-content/languages/it_IT-81c889563f09dd13de1701135dc62941.json
diff --git a/content/languages/it_IT-8860e58c20c6a2ab5876a0f07be43bd9.json b/wp-content/languages/it_IT-8860e58c20c6a2ab5876a0f07be43bd9.json
similarity index 100%
rename from content/languages/it_IT-8860e58c20c6a2ab5876a0f07be43bd9.json
rename to wp-content/languages/it_IT-8860e58c20c6a2ab5876a0f07be43bd9.json
diff --git a/content/languages/it_IT-947c76bb5095da30e16668eec15406b2.json b/wp-content/languages/it_IT-947c76bb5095da30e16668eec15406b2.json
similarity index 100%
rename from content/languages/it_IT-947c76bb5095da30e16668eec15406b2.json
rename to wp-content/languages/it_IT-947c76bb5095da30e16668eec15406b2.json
diff --git a/content/languages/it_IT-a25d1cc7bf7ca0b4e114f6bea64943f4.json b/wp-content/languages/it_IT-a25d1cc7bf7ca0b4e114f6bea64943f4.json
similarity index 100%
rename from content/languages/it_IT-a25d1cc7bf7ca0b4e114f6bea64943f4.json
rename to wp-content/languages/it_IT-a25d1cc7bf7ca0b4e114f6bea64943f4.json
diff --git a/content/languages/it_IT-bf0f094965d3d4a95b47babcb35fc136.json b/wp-content/languages/it_IT-bf0f094965d3d4a95b47babcb35fc136.json
similarity index 100%
rename from content/languages/it_IT-bf0f094965d3d4a95b47babcb35fc136.json
rename to wp-content/languages/it_IT-bf0f094965d3d4a95b47babcb35fc136.json
diff --git a/content/languages/it_IT-daeb084aab42199d26393a56c3465bc0.json b/wp-content/languages/it_IT-daeb084aab42199d26393a56c3465bc0.json
similarity index 100%
rename from content/languages/it_IT-daeb084aab42199d26393a56c3465bc0.json
rename to wp-content/languages/it_IT-daeb084aab42199d26393a56c3465bc0.json
diff --git a/content/languages/it_IT-e2791ba830489d23043be8650a22a22b.json b/wp-content/languages/it_IT-e2791ba830489d23043be8650a22a22b.json
similarity index 100%
rename from content/languages/it_IT-e2791ba830489d23043be8650a22a22b.json
rename to wp-content/languages/it_IT-e2791ba830489d23043be8650a22a22b.json
diff --git a/content/languages/it_IT-f8f49d9fc4a9cf7d78ec99285417bd9c.json b/wp-content/languages/it_IT-f8f49d9fc4a9cf7d78ec99285417bd9c.json
similarity index 100%
rename from content/languages/it_IT-f8f49d9fc4a9cf7d78ec99285417bd9c.json
rename to wp-content/languages/it_IT-f8f49d9fc4a9cf7d78ec99285417bd9c.json
diff --git a/content/languages/it_IT.mo b/wp-content/languages/it_IT.mo
similarity index 100%
rename from content/languages/it_IT.mo
rename to wp-content/languages/it_IT.mo
diff --git a/content/languages/it_IT.po b/wp-content/languages/it_IT.po
similarity index 100%
rename from content/languages/it_IT.po
rename to wp-content/languages/it_IT.po
diff --git a/content/mu-plugins/disable-updates.php b/wp-content/mu-plugins/disable-updates.php
similarity index 96%
rename from content/mu-plugins/disable-updates.php
rename to wp-content/mu-plugins/disable-updates.php
index 38c4179955f7df08dac9720a27919fe4794cc8a7..0b60f59929a3c43c2923ff3e000d2825dc0a7f05 100644
--- a/content/mu-plugins/disable-updates.php
+++ b/wp-content/mu-plugins/disable-updates.php
@@ -94,8 +94,8 @@ class OS_Disable_WordPress_Updates {
 		 * 3.0
 		 */
 		add_filter( 'pre_site_transient_update_core', array($this, 'last_checked_atm') );
-		
-		
+
+
 		/*
 		 * Filter schedule checks
 		 *
@@ -143,13 +143,13 @@ class OS_Disable_WordPress_Updates {
 	 */
 	function admin_init() {
 		if ( !function_exists("remove_action") ) return;
-		
+
 		/*
 		 * Remove 'update plugins' option from bulk operations select list
 		 */
 		global $current_user;
 		$current_user->allcaps['update_plugins'] = 0;
-		
+
 		/*
 		 * Hide maintenance and update nag
 		 */
@@ -157,7 +157,7 @@ class OS_Disable_WordPress_Updates {
 		remove_action( 'network_admin_notices', 'update_nag', 3 );
 		remove_action( 'admin_notices', 'maintenance_nag' );
 		remove_action( 'network_admin_notices', 'maintenance_nag' );
-		
+
 
 		/*
 		 * Disable Theme Updates
@@ -266,8 +266,8 @@ class OS_Disable_WordPress_Updates {
 		}
 		return $event;
 	}
-	
-	
+
+
 	/**
 	 * Override version check info
 	 *
@@ -275,12 +275,12 @@ class OS_Disable_WordPress_Updates {
 	 */
 	public function last_checked_atm( $t ) {
 		include( ABSPATH . WPINC . '/version.php' );
-		
+
 		$current = new stdClass;
 		$current->updates = array();
 		$current->version_checked = $wp_version;
 		$current->last_checked = time();
-		
+
 		return $current;
 	}
 }
diff --git a/content/themes/minimalism/404.php b/wp-content/themes/minimalism/404.php
similarity index 100%
rename from content/themes/minimalism/404.php
rename to wp-content/themes/minimalism/404.php
diff --git a/content/themes/minimalism/PATCHES.txt b/wp-content/themes/minimalism/PATCHES.txt
similarity index 100%
rename from content/themes/minimalism/PATCHES.txt
rename to wp-content/themes/minimalism/PATCHES.txt
diff --git a/content/themes/minimalism/archive.php b/wp-content/themes/minimalism/archive.php
similarity index 100%
rename from content/themes/minimalism/archive.php
rename to wp-content/themes/minimalism/archive.php
diff --git a/content/themes/minimalism/archives.php b/wp-content/themes/minimalism/archives.php
similarity index 100%
rename from content/themes/minimalism/archives.php
rename to wp-content/themes/minimalism/archives.php
diff --git a/content/themes/minimalism/comments-popup.php b/wp-content/themes/minimalism/comments-popup.php
similarity index 100%
rename from content/themes/minimalism/comments-popup.php
rename to wp-content/themes/minimalism/comments-popup.php
diff --git a/content/themes/minimalism/comments.php b/wp-content/themes/minimalism/comments.php
similarity index 100%
rename from content/themes/minimalism/comments.php
rename to wp-content/themes/minimalism/comments.php
diff --git a/content/themes/minimalism/de_DE.mo b/wp-content/themes/minimalism/de_DE.mo
similarity index 100%
rename from content/themes/minimalism/de_DE.mo
rename to wp-content/themes/minimalism/de_DE.mo
diff --git a/content/themes/minimalism/de_DE.po b/wp-content/themes/minimalism/de_DE.po
similarity index 100%
rename from content/themes/minimalism/de_DE.po
rename to wp-content/themes/minimalism/de_DE.po
diff --git a/content/themes/minimalism/footer.php b/wp-content/themes/minimalism/footer.php
similarity index 100%
rename from content/themes/minimalism/footer.php
rename to wp-content/themes/minimalism/footer.php
diff --git a/content/themes/minimalism/functions.php b/wp-content/themes/minimalism/functions.php
similarity index 100%
rename from content/themes/minimalism/functions.php
rename to wp-content/themes/minimalism/functions.php
diff --git a/content/themes/minimalism/header.php b/wp-content/themes/minimalism/header.php
similarity index 100%
rename from content/themes/minimalism/header.php
rename to wp-content/themes/minimalism/header.php
diff --git a/content/themes/minimalism/image.php b/wp-content/themes/minimalism/image.php
similarity index 100%
rename from content/themes/minimalism/image.php
rename to wp-content/themes/minimalism/image.php
diff --git a/content/themes/minimalism/images/audio.jpg b/wp-content/themes/minimalism/images/audio.jpg
similarity index 100%
rename from content/themes/minimalism/images/audio.jpg
rename to wp-content/themes/minimalism/images/audio.jpg
diff --git a/content/themes/minimalism/images/header-img.php b/wp-content/themes/minimalism/images/header-img.php
similarity index 100%
rename from content/themes/minimalism/images/header-img.php
rename to wp-content/themes/minimalism/images/header-img.php
diff --git a/content/themes/minimalism/images/minimalismheader.jpg b/wp-content/themes/minimalism/images/minimalismheader.jpg
similarity index 100%
rename from content/themes/minimalism/images/minimalismheader.jpg
rename to wp-content/themes/minimalism/images/minimalismheader.jpg
diff --git a/content/themes/minimalism/index.php b/wp-content/themes/minimalism/index.php
similarity index 100%
rename from content/themes/minimalism/index.php
rename to wp-content/themes/minimalism/index.php
diff --git a/content/themes/minimalism/links.php b/wp-content/themes/minimalism/links.php
similarity index 100%
rename from content/themes/minimalism/links.php
rename to wp-content/themes/minimalism/links.php
diff --git a/content/themes/minimalism/page.php b/wp-content/themes/minimalism/page.php
similarity index 100%
rename from content/themes/minimalism/page.php
rename to wp-content/themes/minimalism/page.php
diff --git a/content/themes/minimalism/rtl.css b/wp-content/themes/minimalism/rtl.css
similarity index 100%
rename from content/themes/minimalism/rtl.css
rename to wp-content/themes/minimalism/rtl.css
diff --git a/content/themes/minimalism/screenshot.png b/wp-content/themes/minimalism/screenshot.png
similarity index 100%
rename from content/themes/minimalism/screenshot.png
rename to wp-content/themes/minimalism/screenshot.png
diff --git a/content/themes/minimalism/search.php b/wp-content/themes/minimalism/search.php
similarity index 100%
rename from content/themes/minimalism/search.php
rename to wp-content/themes/minimalism/search.php
diff --git a/content/themes/minimalism/searchform.php b/wp-content/themes/minimalism/searchform.php
similarity index 100%
rename from content/themes/minimalism/searchform.php
rename to wp-content/themes/minimalism/searchform.php
diff --git a/content/themes/minimalism/sidebar.php b/wp-content/themes/minimalism/sidebar.php
similarity index 100%
rename from content/themes/minimalism/sidebar.php
rename to wp-content/themes/minimalism/sidebar.php
diff --git a/content/themes/minimalism/single.php b/wp-content/themes/minimalism/single.php
similarity index 100%
rename from content/themes/minimalism/single.php
rename to wp-content/themes/minimalism/single.php
diff --git a/content/themes/minimalism/style.css b/wp-content/themes/minimalism/style.css
similarity index 100%
rename from content/themes/minimalism/style.css
rename to wp-content/themes/minimalism/style.css
diff --git a/wp/PATCHES.txt b/wp/PATCHES.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ae748f00db43966abe14d65681123c7c9bd684e3
--- /dev/null
+++ b/wp/PATCHES.txt
@@ -0,0 +1,7 @@
+This file was automatically generated by Composer Patches (https://github.com/cweagans/composer-patches)
+Patches applied to this directory:
+
+Disable WP 1.2 upgrade
+Source: patches/wp-upgrade-110.patch
+
+
diff --git a/wp/wp-admin/includes/upgrade.php b/wp/wp-admin/includes/upgrade.php
index 26614c9634a363f9d4649a713264d3b0bfd71743..eb5c04e772164c5b3ce0fede6c52afff053b9fa1 100644
--- a/wp/wp-admin/includes/upgrade.php
+++ b/wp/wp-admin/includes/upgrade.php
@@ -937,6 +937,7 @@ function upgrade_101() {
  * @global wpdb $wpdb WordPress database abstraction object.
  */
 function upgrade_110() {
+	return;
 	global $wpdb;
 
 	// Set user_nicename.