/** * A simple set of functions to check our version 1.0 update service. * * @package WordPress * @since 2.3.0 */ /** * Check WordPress version against the newest version. * * The WordPress version, PHP version, and Locale is sent. Checks against the * WordPress server at api.wordpress.org server. Will only check if WordPress * isn't installing. * * @since 2.3.0 * @uses $wp_version Used to check against the newest WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_version_check( $extra_stats = array(), $force_check = false ) { if ( defined('WP_INSTALLING') ) return; global $wpdb, $wp_local_package; include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $php_version = phpversion(); $current = get_site_transient( 'update_core' ); $translations = wp_get_installed_translations( 'core' ); // Invalidate the transient when $wp_version changes if ( is_object( $current ) && $wp_version != $current->version_checked ) $current = false; if ( ! is_object($current) ) { $current = new stdClass; $current->updates = array(); $current->version_checked = $wp_version; } if ( ! empty( $extra_stats ) ) $force_check = true; // Wait 60 seconds between multiple version check requests $timeout = 60; $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( ! $force_check && $time_not_changed ) return false; $locale = get_locale(); /** * Filter the locale requested for WordPress core translations. * * @since 2.8.0 * * @param string $locale Current locale. */ $locale = apply_filters( 'core_version_check_locale', $locale ); // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_core', $current ); if ( method_exists( $wpdb, 'db_version' ) ) $mysql_version = preg_replace('/[^0-9.].*/', '', $wpdb->db_version()); else $mysql_version = 'N/A'; if ( is_multisite() ) { $user_count = get_user_count(); $num_blogs = get_blog_count(); $wp_install = network_site_url(); $multisite_enabled = 1; } else { $user_count = count_users(); $user_count = $user_count['total_users']; $multisite_enabled = 0; $num_blogs = 1; $wp_install = home_url( '/' ); } $query = array( 'version' => $wp_version, 'php' => $php_version, 'locale' => $locale, 'mysql' => $mysql_version, 'local_package' => isset( $wp_local_package ) ? $wp_local_package : '', 'blogs' => $num_blogs, 'users' => $user_count, 'multisite_enabled' => $multisite_enabled, ); $post_body = array( 'translations' => json_encode( $translations ), ); if ( is_array( $extra_stats ) ) $post_body = array_merge( $post_body, $extra_stats ); $url = $http_url = 'http://api.wordpress.org/core/version-check/1.7/?' . http_build_query( $query, null, '&' ); if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $options = array( 'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3 ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url( '/' ), 'headers' => array( 'wp_install' => $wp_install, 'wp_blog' => home_url( '/' ) ), 'body' => $post_body, ); $response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) return false; $body = trim( wp_remote_retrieve_body( $response ) ); $body = json_decode( $body, true ); if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) return false; $offers = $body['offers']; foreach ( $offers as &$offer ) { foreach ( $offer as $offer_key => $value ) { if ( 'packages' == $offer_key ) $offer['packages'] = (object) array_intersect_key( array_map( 'esc_url', $offer['packages'] ), array_fill_keys( array( 'full', 'no_content', 'new_bundled', 'partial', 'rollback' ), '' ) ); elseif ( 'download' == $offer_key ) $offer['download'] = esc_url( $value ); else $offer[ $offer_key ] = esc_html( $value ); } $offer = (object) array_intersect_key( $offer, array_fill_keys( array( 'response', 'download', 'locale', 'packages', 'current', 'version', 'php_version', 'mysql_version', 'new_bundled', 'partial_version', 'notify_email', 'support_email' ), '' ) ); } $updates = new stdClass(); $updates->updates = $offers; $updates->last_checked = time(); $updates->version_checked = $wp_version; if ( isset( $body['translations'] ) ) $updates->translations = $body['translations']; set_site_transient( 'update_core', $updates ); if ( ! empty( $body['ttl'] ) ) { $ttl = (int) $body['ttl']; if ( $ttl && ( time() + $ttl < wp_next_scheduled( 'wp_version_check' ) ) ) { // Queue an event to re-run the update check in $ttl seconds. wp_schedule_single_event( time() + $ttl, 'wp_version_check' ); } } // Trigger a background updates check if running non-interactively, and we weren't called from the update handler. if ( defined( 'DOING_CRON' ) && DOING_CRON && ! doing_action( 'wp_maybe_auto_update' ) ) { do_action( 'wp_maybe_auto_update' ); } } /** * Check plugin versions against the latest versions hosted on WordPress.org. * * The WordPress version, PHP version, and Locale is sent along with a list of * all plugins installed. Checks against the WordPress server at * api.wordpress.org. Will only check if WordPress isn't installing. * * @since 2.3.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_plugins( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined('WP_INSTALLING') ) return false; // If running blog-side, bail unless we've not checked in the last 12 hours if ( !function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins(); $translations = wp_get_installed_translations( 'plugins' ); $active = get_option( 'active_plugins', array() ); $current = get_site_transient( 'update_plugins' ); if ( ! is_object($current) ) $current = new stdClass; $new_option = new stdClass; $new_option->last_checked = time(); // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-plugins.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $plugin_changed = false; foreach ( $plugins as $file => $p ) { $new_option->checked[ $file ] = $p['Version']; if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) $plugin_changed = true; } if ( isset ( $current->response ) && is_array( $current->response ) ) { foreach ( $current->response as $plugin_file => $update_details ) { if ( ! isset($plugins[ $plugin_file ]) ) { $plugin_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $plugin_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $current->last_checked = time(); set_site_transient( 'update_plugins', $current ); $to_send = compact( 'plugins', 'active' ); $locales = array( get_locale() ); /** * Filter the locales requested for plugin translations. * * @since 3.7.0 * * @param array $locales Plugin locale. Default is current locale of the site. */ $locales = apply_filters( 'plugins_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 plugins $timeout = 3 + (int) ( count( $plugins ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'plugins' => json_encode( $to_send ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), 'all' => json_encode( true ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/plugins/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); foreach ( $response['plugins'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); foreach ( $response['no_update'] as &$plugin ) { $plugin = (object) $plugin; } unset( $plugin ); if ( is_array( $response ) ) { $new_option->response = $response['plugins']; $new_option->translations = $response['translations']; // TODO: Perhaps better to store no_update in a separate transient with an expiry? $new_option->no_update = $response['no_update']; } else { $new_option->response = array(); $new_option->translations = array(); $new_option->no_update = array(); } set_site_transient( 'update_plugins', $new_option ); } /** * Check theme versions against the latest versions hosted on WordPress.org. * * A list of all themes installed in sent to WP. Checks against the * WordPress server at api.wordpress.org. Will only check if WordPress isn't * installing. * * @since 2.7.0 * @uses $wp_version Used to notify the WordPress version. * * @param array $extra_stats Extra statistics to report to the WordPress.org API. * @return mixed Returns null if update is unsupported. Returns false if check is too soon. */ function wp_update_themes( $extra_stats = array() ) { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version if ( defined( 'WP_INSTALLING' ) ) return false; $installed_themes = wp_get_themes(); $translations = wp_get_installed_translations( 'themes' ); $last_update = get_site_transient( 'update_themes' ); if ( ! is_object($last_update) ) $last_update = new stdClass; $themes = $checked = $request = array(); // Put slug of current theme into request. $request['active'] = get_option( 'stylesheet' ); foreach ( $installed_themes as $theme ) { $checked[ $theme->get_stylesheet() ] = $theme->get('Version'); $themes[ $theme->get_stylesheet() ] = array( 'Name' => $theme->get('Name'), 'Title' => $theme->get('Name'), 'Version' => $theme->get('Version'), 'Author' => $theme->get('Author'), 'Author URI' => $theme->get('AuthorURI'), 'Template' => $theme->get_template(), 'Stylesheet' => $theme->get_stylesheet(), ); } // Check for update on a different schedule, depending on the page. switch ( current_filter() ) { case 'upgrader_process_complete' : $timeout = 0; break; case 'load-update-core.php' : $timeout = MINUTE_IN_SECONDS; break; case 'load-themes.php' : case 'load-update.php' : $timeout = HOUR_IN_SECONDS; break; default : if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 0; } else { $timeout = 12 * HOUR_IN_SECONDS; } } $time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time() - $last_update->last_checked ); if ( $time_not_changed && ! $extra_stats ) { $theme_changed = false; foreach ( $checked as $slug => $v ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) $theme_changed = true; } if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) { foreach ( $last_update->response as $slug => $update_details ) { if ( ! isset($checked[ $slug ]) ) { $theme_changed = true; break; } } } // Bail if we've checked recently and if nothing has changed if ( ! $theme_changed ) return false; } // Update last_checked for current to prevent multiple blocking requests if request hangs $last_update->last_checked = time(); set_site_transient( 'update_themes', $last_update ); $request['themes'] = $themes; $locales = array( get_locale() ); /** * Filter the locales requested for theme translations. * * @since 3.7.0 * * @param array $locales Theme locale. Default is current locale of the site. */ $locales = apply_filters( 'themes_update_check_locales', $locales ); if ( defined( 'DOING_CRON' ) && DOING_CRON ) { $timeout = 30; } else { // Three seconds, plus one extra second for every 10 themes $timeout = 3 + (int) ( count( $themes ) / 10 ); } $options = array( 'timeout' => $timeout, 'body' => array( 'themes' => json_encode( $request ), 'translations' => json_encode( $translations ), 'locale' => json_encode( $locales ), ), 'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ); if ( $extra_stats ) { $options['body']['update_stats'] = json_encode( $extra_stats ); } $url = $http_url = 'http://api.wordpress.org/themes/update-check/1.1/'; if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) $url = set_url_scheme( $url, 'https' ); $raw_response = wp_remote_post( $url, $options ); if ( $ssl && is_wp_error( $raw_response ) ) { trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE ); $raw_response = wp_remote_post( $http_url, $options ); } if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) return false; $new_update = new stdClass; $new_update->last_checked = time(); $new_update->checked = $checked; $response = json_decode( wp_remote_retrieve_body( $raw_response ), true ); if ( is_array( $response ) ) { $new_update->response = $response['themes']; $new_update->translations = $response['translations']; } set_site_transient( 'update_themes', $new_update ); } /** * Performs WordPress automatic background updates. * * @since 3.7.0 */ function wp_maybe_auto_update() { include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; $upgrader->run(); } /** * Retrieves a list of all language updates available. * * @since 3.7.0 */ function wp_get_translation_updates() { $updates = array(); $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' ); foreach ( $transients as $transient => $type ) { $transient = get_site_transient( $transient ); if ( empty( $transient->translations ) ) continue; foreach ( $transient->translations as $translation ) { $updates[] = (object) $translation; } } return $updates; } /** * Collect counts and UI strings for available updates * * @since 3.3.0 * * @return array */ function wp_get_update_data() { $counts = array( 'plugins' => 0, 'themes' => 0, 'wordpress' => 0, 'translations' => 0 ); if ( $plugins = current_user_can( 'update_plugins' ) ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( ! empty( $update_plugins->response ) ) $counts['plugins'] = count( $update_plugins->response ); } if ( $themes = current_user_can( 'update_themes' ) ) { $update_themes = get_site_transient( 'update_themes' ); if ( ! empty( $update_themes->response ) ) $counts['themes'] = count( $update_themes->response ); } if ( ( $core = current_user_can( 'update_core' ) ) && function_exists( 'get_core_updates' ) ) { $update_wordpress = get_core_updates( array('dismissed' => false) ); if ( ! empty( $update_wordpress ) && ! in_array( $update_wordpress[0]->response, array('development', 'latest') ) && current_user_can('update_core') ) $counts['wordpress'] = 1; } if ( ( $core || $plugins || $themes ) && wp_get_translation_updates() ) $counts['translations'] = 1; $counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations']; $titles = array(); if ( $counts['wordpress'] ) $titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] ); if ( $counts['plugins'] ) $titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] ); if ( $counts['themes'] ) $titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] ); if ( $counts['translations'] ) $titles['translations'] = __( 'Translation Updates' ); $update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : ''; $update_data = array( 'counts' => $counts, 'title' => $update_title ); /** * Filter the returned array of update data for plugins, themes, and WordPress core. * * @since 3.5.0 * * @param array $update_data { * Fetched update data. * * @type array $counts An array of counts for available plugin, theme, and WordPress updates. * @type string $update_title Titles of available updates. * } * @param array $titles An array of update counts and UI strings for available updates. */ return apply_filters( 'wp_get_update_data', $update_data, $titles ); } function _maybe_update_core() { include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version $current = get_site_transient( 'update_core' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) && isset( $current->version_checked ) && $current->version_checked == $wp_version ) return; wp_version_check(); } /** * Check the last time plugins were run before checking plugin versions. * * This might have been backported to WordPress 2.6.1 for performance reasons. * This is used for the wp-admin to check only so often instead of every page * load. * * @since 2.7.0 * @access private */ function _maybe_update_plugins() { $current = get_site_transient( 'update_plugins' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_plugins(); } /** * Check themes versions only after a duration of time. * * This is for performance reasons to make sure that on the theme version * checker is not run on every page load. * * @since 2.7.0 * @access private */ function _maybe_update_themes() { $current = get_site_transient( 'update_themes' ); if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) ) return; wp_update_themes(); } /** * Schedule core, theme, and plugin update checks. * * @since 3.1.0 */ function wp_schedule_update_checks() { if ( !wp_next_scheduled('wp_version_check') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_version_check'); if ( !wp_next_scheduled('wp_update_plugins') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_plugins'); if ( !wp_next_scheduled('wp_update_themes') && !defined('WP_INSTALLING') ) wp_schedule_event(time(), 'twicedaily', 'wp_update_themes'); if ( ( wp_next_scheduled( 'wp_maybe_auto_update' ) > ( time() + HOUR_IN_SECONDS ) ) && ! defined('WP_INSTALLING') ) wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); } if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) return; add_action( 'admin_init', '_maybe_update_core' ); add_action( 'wp_version_check', 'wp_version_check' ); add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'load-plugins.php', 'wp_update_plugins' ); add_action( 'load-update.php', 'wp_update_plugins' ); add_action( 'load-update-core.php', 'wp_update_plugins' ); add_action( 'admin_init', '_maybe_update_plugins' ); add_action( 'wp_update_plugins', 'wp_update_plugins' ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'load-themes.php', 'wp_update_themes' ); add_action( 'load-update.php', 'wp_update_themes' ); add_action( 'load-update-core.php', 'wp_update_themes' ); add_action( 'admin_init', '_maybe_update_themes' ); add_action( 'wp_update_themes', 'wp_update_themes' ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); add_action( 'wp_maybe_auto_update', 'wp_maybe_auto_update' ); add_action('init', 'wp_schedule_update_checks'); La inyección letal se muere de hambreSesiónDeControl.com
Arrow

La inyección letal se muere de hambre


0
Zoomnews

ZoomNews es un diario digital de información general cuyo principios básico son la independencia y la pluralidad informativa.


Escrito el 16 de febrero de 2014 a las 7:25 | Clasificado en EEUU

El 19 de noviembre de 2013, el viejo Franklin debió de pensar que el universo había conspirado para salvarle. “Estaba feliz –declaró su abogado al Salt Lake Tribune–. Realmente no estoy convencido de que comprendiera totalmente que iba a morir”.

Mapa del estado de la pena de muerte en el mundo (Fuente: Global Voices)
Mapa del estado de la pena de muerte en el mundo (Fuente: Global Voices)

Joseph Paul Franklin había nacido 63 años antes de aquel martes. En su adolescencia, inspirado por la lectura del Mein Kampf, empezó a vincularse con el Ku Klux Klan y el partido Nacional Socialista de la Gente Blanca. Entre 1977 y 1980, Franklin emprendió una cruzada racial en la que asesinó a catorce personas y dejó para siempre en silla de ruedas al pornógrafo Larry Flynt, contra quien disparó por haber incluido en su revista Hustler escenas de una pareja interracial.

Franklin fue condenado a seis cadenas perpetuas y una de muerte, por el asesinato de Gerald Gordon en Richmond Heights, Misuri, uno de los estados más activos en aplicar la pena capital. El 8 de octubre de 1977 abrió fuego con un rifle contra la sinagoga de Brith Shalom, de donde Gordon y otros fieles salían.

Su ejecución estaba programada para el miércoles 20 de noviembre de 2013. Sin embargo, un día antes, no una, sino dos jueces federales, Nanette Laughry Carol Jackson, emitieron sendas suspensiones provisionales de la condena. El abogado de este supremacista confiaba en que su caso fuese uno más de los que se posponían en Misuri, que llevaba tres años con la pena de muerte congelada debido a un litigio que Franklin y otros condenados mantenían contra el estado por el método de ejecución. Apenas tres semanas antes, la cita del homicida Allen Nicklasson con la inyección letal había sido aplazada en esa misma cárcel, el correccional de Bonne Terre.

La inyección letal es, de lejos, el método más empleado para la pena capital en Estados Unidos. Según estadísticas del Departamento de Justicia de EE UU, de las 1.348 personas ejecutadas desde 1976 hasta el 1 de enero de 2014, la administración intravenosa se dio en un 87% de los casos.

Aunque la composición de este cóctel mortal varía ligeramente entre estados, la mayoría ha venido utilizando una combinación de fármacos en tres pasos. Previamente se inyecta una solución salina para expandir la vena. Primero se administra tiopental sódico –un barbitúrico para inducir el coma– seguido de bromuro de pancuronio –un agente paralizante– y finalmente cloruro de potasio, encargado de provocar la parada cardíaca al condenado.

Esta combinación de medicamentos es seleccionada concienzudamente, ya que las demandas de los abogados exigen que los compuestos para la inyección letal no traspasen los límites de las enmiendas Octava y Decimocuarta, que proscriben la crueldad en el castigo o un trato desigual hacia los reclusos. Por esta razón los jueces han aplazado multitud de penas de muerte.

Empieza el conflicto con el tiopental

De 1.176 condenados que fallecieron desde 1976 mediante inyección letal, solo en 59 ocasiones se sustituyó el cóctel de tres fármacos por una sobredosis de un solo compuesto. Este último método se empleó como alternativa años atrás, durante una escasez del suministro de bromuro de pancuronio en los que simplemente se inyectó a los condenados una sobredosis de tiopental.

Para los 35 estados que aún permiten la pena capital, los problemas comenzaron en enero de 2011, cuando la compañía estadounidense Hospira dejó de fabricar el tiopental en su fábrica de Liscate, próxima a Milán, donde tenía su principal suministro, debido a que no podían garantizar al gobierno italiano que el medicamento no se utilizara en inyecciones letales, a las que la farmacéutica también se oponía.

A esto se unió que “el tiopental es un medicamento bastante antiguo, que ya está rentabilizado. Ahora solo sigue usándose como inductor a la anestesia”, explica a Sinc Valle Madueño, farmacéutica que realiza ensayos clínicos con medicamentos para varios laboratorios en una Organización de Investigación Clínica.

Posteriormente, la Unión Europea restringió la exportación de medicamentos empleados para fines no terapéuticos a partir del 21 de diciembre de 2011. Algunos estados, como Connecticut y Maryland, han aprovechado desde entonces para derogar la pena capital. Mientras tanto, los férreos partidarios como Misuri y Texas entraron en una carrera a contrarreloj por encontrar un sustituto idóneo al tiopental para sus inyecciones letales.

El más obvio era otro sedante, el pentobarbital, pero su suministro también se interrumpió abruptamente meses después, en cuanto la farmacéutica danesa Lundbeck se enteró del uso que algunos estados estaban dando a su Nembutal.

Se sospecha que algunas cárceles se apresuraron para avituallarse de pentobarbital antes de 2012, pero ni siquiera comprar todo el del mundo solucionaba su problema, ya que el Nembutal tiene una fecha de caducidad de 18 meses.

El propofol hizo temblar al sistema sanitario

El 23 de agosto de 1994, el coche donde viajaba Allen Nicklassonjunto a dos compinches los dejó tirados. Se dirigían a Kansas City a comprar droga. Entre medias, aprovecharon para robar en una casa. Entre las 4 y las 5 de la tarde, Richard Drummond, supervisor técnico en una compañía telefónica, se detuvo en el arcén y se ofreció a llevarlos. Lo secuestraron y, horas después, Nicklasson lo condujo a un bosque y disparó dos veces al buen samaritano.

Para su inyección letal, programada para el 23 de octubre de 2013, Misuri hizo públicas sus intenciones de emplear propofol, un agente anestésico con mala prensa –una sobredosis administrada por su médico mató a Michael Jackson– pero nunca antes empleado en una ejecución.

El anuncio hizo tambalear al sistema sanitario. Aunque existen a día de hoy unos 14 distribuidores de propofol en Estados Unidos, un 89% del que se emplea en el país norteamericano se fabrica en Europa.

“El uso de propofol es bastante usual en cirugías menores y el midazolam –empleado por Florida en una inyección letal el 15 de octubre de 2013– se utiliza en todos los hospitales para sedar pacientes en estado crítico. Los dos se usan en anestesia de forma generalizada”, apunta Madueño.

A finales del año pasado, Morris & Dickinson, una distribuidora farmacéutica de Luisiana, envió por error un paquete que contenía veinte viales de Diprivam, una solución de propofol, al correccional de Bonne Terre. Los encargados de la prisión, a instancia de sus superiores, rechazaron la devolución de los viales de Diprivam, que contenían suficiente cantidad para las dos siguientes inyecciones letales, las de Nicklasson y Franklin.

Los anestesiólogos pusieron el grito en el cielo. “Lo usamos en entre el 90% y el 95% de nuestras intervenciones”, dijo la doctora Elizabeth Kavanagh, de la Sociedad de Anestesiólogos de Misuri. Temiendo una prohibición, el laboratorio alemán Fresenius Kabi, fabricante del propofol que acabó en Bonne Terre, restringió a sus distribuidores de EE UU la venta a cárceles.

Los 35.000 hospitales que emplean propofol en Estados Unidos fijaron su mirada en el gobernador demócrata de Misuri, Jay Nixon, firme partidario de la pena capital. Finalmente, nueve días antes de la ejecución de Nicklasson, Nixon tomó la decisión de posponerla y ordenó sacar el propofol de la inyección letal.

¿Dónde fabrica EEUU su midazolam?

Las autoridades de Florida jamás revelaron el origen del midazolam que emplearon en octubre de 2013 para ejecutar al violador William Happ. Apelaron a una cláusula en las leyes de registros públicos que permite preservar el anonimato al laboratorio suministrador de hipocloruro de midazolam, un medicamento parecido al Valium que, hasta entonces, jamás había sido empleado para tan aciago uso. Fuentes presenciales dijeron a la prensa que el condenado seguía parpadeando y moviendo la cabeza quince minutos después de la primera inyección.

Pese a las dudas sobre su eficacia, otros estados piensan en esta opción. Se estima que un corte en el suministro de importaciones de midazolam no sería tan desastroso como en el caso del propofol, ya que algunas empresas nacionales, como Hospira, lo distribuyen. Un portavoz de los laboratorios rehusó decir a la sección de noticias de Nature dónde fabricaban el midazolam, aunque concedió que las restricciones europeas “no eran un problema”.

Los laboratorios alemanes B. Braun fabrican tanto propofol como midazolam, este último en su planta de Rubí, cerca de Barcelona.Florence Rouméas, la portavoz de la compañía en España, confirma a Sinc que B. Braun “no comercializa ni Propofol-Lipuro ni Midazolam en Estados Unidos”.

“Nos comprometemos a no vender Propofol-Lipuro ni a ponerlo a disposición de ningún destinatario que pudiera utilizarlo para otros fines distintos a los estrictamente terapéuticos”, recalca Rouméas. “A nivel internacional, ni vendemos ni facilitamos la venta a través de terceros de este producto a países que son conocidos por ejecutar la pena de muerte con inyección letal”, comenta la portavoz, añadiendo que “imponemos las mismas obligaciones a nuestros clientes y distribuidores locales”.

Una alternativa: pentobarbital fabricado por la farmacia local

En la madrugada del miércoles, pocas horas después de recibir las dos suspensiones temporales, el abogado de Franklin le informó de que el Tribunal Supremo de Misuri había desestimado ambas. Eran las 2:55. Habían encontrado una alternativa para matarlo sin propofol.

El pentobarbital fue encargado específicamente a una farmacia local de fórmulas magistrales, cuyo anonimato se garantizó. Se le administraría una única dosis, de cinco gramos, y si cinco minutos después no estaba muerto, otros cinco. Su abogado apeló al Tribunal Supremo. A las 4:40 de la mañana llegó la respuesta del Tribunal de Apelaciones. Negativo.

En su noche final, Franklin, muy delgado y con las gafas sujetas a mitad de la nariz, bajo un pelo enmarañado, se mostró enajenado, absorto. Entre los testigos estaban su hija, dos sacerdotes y dos funcionarios del correccional. Declinó tener una última cena, tampoco quiso pronunciar unas palabras finales. Incluso en la sala de ejecuciones, mientras le ataban con correas a la camilla, Franklin permaneció en silencio.

La presión ha dado resultado en algunos estados, pero no puede hablarse de final feliz para los detractores. Todavía hay otros métodos –como los cócteles de fármacos empleados en las recientes ejecuciones del mexicano Edgar Tamayo, en Texas, y Dennis McGuire, en Ohio, ambos encargados a farmacias no reguladas por la Agencia de Alimentos y Medicamentos (FDA)–. Y, sobre todo, hay otros países.

A las 6:07 de la mañana del miércoles 20 de noviembre de 2013, a Joseph Paul Franklin le administraron el pentobarbital. Ya era oficialmente hombre muerto a las 6:17, justo para entrar en el informativo de la mañana.

Fuente: La inyección letal se muere de hambre

Autor: Antonio Villarreal

Comparte tu punto de vista

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>