/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } Старт на минном поле | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Старт на минном поле

Среди заметных событий, которыми отметился нынешний год, политики всех рангов и стран называют рождение Евразийского экономического союза (ЕАЭС). Кроме России, Беларуси и Казахстана в него вступила Армения, а в мае вступит Киргизия. По численности населения, ресурсам, хозяйственному потенциалу и объему рынка союз должен стать новым экономическим и политическим центром силы в мире. Эксперты уже подсчитали впечатляющий рост производства, который обеспечит совместная работа стран в ЕАЭС. Однако многих настораживают тревожные симптомы, проявившиеся с первых дней его жизни.

Эхо предупредительных взрывов
Казалось бы, в новом союзе всё должно быть направлено на укрепление интеграции. И прежде всего важнейшей ее основы - торгово-экономических связей. А что происходит? Сегодня, после создания ЕАЭС, Беларусь ищет другие, вместо российского, рынки сбыта. Намечается увеличить продажу товаров Китаю, Индии, Венесуэле, Ирану. Специальным постановлением Совмин определил новые перспективные страны для поставок белорусской продукции. Их более полусотни - от Дании, Норвегии, Испании, Португалии до Никарагуа, Перу, Чили, Кувейта, Омана, Малайзии и Филиппин.

Какое значение придается переориентации экспорта, можно судить по следующим фактам. Ответственность за нее возложили на руководителей республиканских и областных органов госуправления и организаций, подчиненных правительству. Каждую страну или регион закрепили за конкретным чиновником. «Спрос будет жесточайший», - пообещал Александр Лукашенко. И, выступая после создания ЕАЭС в парламенте, назвал поиск новых рынков главным вопросом, а значит, одним из основных направлений государственной политики.

Что же заставило Беларусь и ее президента, ратующего за укрепление интеграции в Евразийском экономическом союзе, пойти на такой шаг?

Последним толчком стал запрет ввоза в Россию продукции 23 белорусских предприятий, перерабатывающих мясо и молоко. Как готовили столь массовый запрет в Россельхознадзоре, «Правда» уже писала. То использовали результаты анализов, проведенных российской лабораторией после того, когда истек срок годности мяса для исследования. То предъявляли сомнительные претензии, допустим, к качеству паштетной ливерной колбасы, а запрет распространяли на всю продукцию предприятия. А порой и вовсе пользовались данными, которые были получены мошенническим путем. На официальном сайте Россельхознадзора 22 января, например, появилась информация о том, что тверская лаборатория, проводя эпизоотический мониторинг, обнаружила на Центральном рынке города Великие Луки Псковской области в сосисках «Докторские», произведенных Гродненским мясокомбинатом, геном африканской чумы свиней (АЧС). Но продукция этого комбината в Псковскую область не поступала. В ходе проверки, проведенной после приезда специалистов из Гродно, было установлено, что документы на нее фальсифицированы.

Фактов таких, как рассказал недавно высокий российский чиновник - посол РФ в Беларуси Александр Суриков, немало.

- Когда Россельхознадзор выставлял претензии белорусским производителям продуктов питания, - сообщил он на пресс-конференции, - речь не всегда шла о белорусской продукции. Во многих случаях инициаторами «создания» ее являлись недобросовестные российские оптовики.

С помощью поддельных документов они регистрировали в Белоруссии временные фирмы, торгующие якобы здешним мясом, хотя везли его, как и раньше, до антизападных санкций, из Евросоюза. Основываясь на этих документах, Россельхознадзор наказывал белорусские мясокомбинаты, не имевшие к данной продукции никакого отношения.

В общем, применялись недопустимые, а порой, как справедливо заметил Александр Лукашенко, бандитские методы. Букет нарушений оказался столь внушительным, что дело об их причинах и виновниках было передано для расследования правоохранительным органам обоих государств.

Запреты на экспорт товаров опасны для экономики любой страны, а для белорусской - одной из самых открытых в мире (республика продает две трети того, что производит) - тем более. Особенно в худые кризисные времена, когда сократился объем торговли с Украиной, Казахстаном, рядом других партнеров. Потому-то и стала вопросом выживания Беларуси и важнейшим направлением ее государственной политики диверсификация экспорта. А поскольку почти половина его идет в Россию, продажа товаров в которую за прошлый год «просела» чуть ли не на полтора миллиарда долларов, то диверсификация вынужденно свелась в основном к поиску замены российских рынков.

Винить в этом Лукашенко, что пытаются делать его недоброжелатели и противники, верх лицемерия. Наоборот, несмотря на бандитские методы самых близких, казалось бы, партнеров, он дал жесткое указание: делать все возможное, чтобы не уходить с российского рынка, «работать там на порядок эффективнее, энергичнее занимать освобождающиеся товарные ниши» и всеми силами «цепляться» за них. Но поди уцепись, если вместо раскупаемых вмиг мясо-молочных изделий из Беларуси ответственные за продовольственное обеспечение чиновники РФ намерились завозить чертовски любимую россиянами буйволятину и сырое молоко из далекой, за семью морями, Индии, а также из Турции и Ирана.

Массовый запрет на белорусскую продукцию, незаконность которого больше месяца «не замечало» российское правительство, стал по сути повтором «молочной», «мясной», «сахарной» и прочих войн против Минска. Как и тогда, высшие россельхознадзоровские чины, подчиняющиеся Кремлю и «Белому дому», раздули ажиотаж вокруг отдельных случаев ее «нестандартности», которую легко можно было устранить в рабочем порядке, и начали выталкивать с российского рынка.

Только сейчас все выглядело ещё более парадоксально и провокационно. Ввоз мясо-молочных продуктов из Беларуси запретили в то время, когда усилилась их нехватка в России и ее руководство пошло с шапкой по миру за мясом и молоком. Вдобавок при вводе запрета были нарушены положения, установленные в Таможенном союзе. Ветеринарный контроль, основу которого составляет анализ продукции, согласно одному их таких положений, должны были проводить уполномоченные органы при ее производстве и погрузке. А проводили в одностороннем порядке российские службы за сотни километров от мест производства. И наконец, запретить ввоз продовольствия в Россию из стран Таможенного союза, по его законодательству, мог только кабмин РФ, так что Россельхознадзор превысил свои полномочия.

Напряженную ситуацию создал также запрет вполне, заметим, законного транзита Беларусью попавших под антизападные санкции товаров через Россию в Казахстан.

- Они (власти РФ. - О.С.) что, хотят закрыть Беларусь как транзитное государство? - справедливо возмутился Александр Лукашенко. - Мы не можем запретить транзит товаров через нашу территорию в другие страны. Это нарушение всех норм международного права.

Одну из причин такого грубого нарушения назвал упоминавшийся уже посол РФ в Беларуси Александр Суриков. По вопросу поставок санкционной продукции, напомнил он, российское руководство должно было сначала посоветоваться с партнерами по Таможенному союзу. «Но мы, - признал дипломат, - как-то забыли, что находимся в интеграционном пространстве, в общем союзе».

Приступ забывчивости проявился как раз накануне рождения Евразийского экономического союза. Таких случайностей в большой политике не бывает. Сработала вполне очевидная для многих закономерность. «У нашего союза слишком много противников. Особенно в России», - пояснил Лукашенко.

Массовый запрет на экспорт белорусской продукции и остальные нарушения законодательства Таможенного союза в Минске расценили как предупредительные взрывы, направленные против ЕАЭС. Эхом их стал не только поиск новых рынков сбыта. При подписании договора о Евразийском экономическом союзе Беларусь внесла беспрецедентную оговорку: в случае нарушения достигнутых договоренностей принять любые меры, вплоть до выхода из союза.

Хор имени Мадлен Олбрайт
Такое, прямо скажем, конфликтное начало жизни нового международного объединения заставляет серьезно задуматься о его будущем. Тем более что российская сторона развязывала торговые войны против Беларуси не раз. И, что особо надо отметить, уже изначально повела эти войны под предлогом борьбы за справедливые экономические отношения. Кремль, мы помним, отказался вводить одинаковые для двух стран цены на энергоносители, предусмотренные договором о создании Союзного государства. Из соображений, как было объявлено, элементарного прагматизма: дотации белорусам на газ и нефть наносят, мол, России ежегодный ущерб более пяти миллиардов долларов.

Цифры были, в общем-то, верные. Вот только часть дотаций, и немалая, возвращалась россиянам в виде недорогой, из-за меньших затрат на энергоресурсы, белорусской продукции: она всегда была на 20-25 процентов дешевле своих возможных аналогов. Терял «Газпром», но выигрывали российские потребители. Не говоря уж о том, что белорусская продукция включала в себя и российское сырье, и комплектацию, кроме энергоносителей. А это - тот сбыт, которого без Белоруссии у России просто не было бы. Так что отдачу от нефтегазовой подпитки своего союзника она имела всегда. Пусть несколько и меньшую, чем затраты на эту подпитку, но не так уж намного. Да и за свои стратегические базы, способные предупредить о ракетном нападении из натовской Европы или Атлантики и управляющие атомными подлодками в Мировом океане, Россия не платила. Американцы, к слову, предлагали Лукашенко 10 миллиардов долларов за то, чтобы удалил с белорусской земли российскую радиолокационную станцию. Но он ответил, что братство с Россией не продается.

Выступая против нефтегазовой подпитки Беларуси, прагматики утаили и самое главное обстоятельство: без равных цен на энергоресурсы ни одинаковых условий хозяйствования, ни единого экономического пространства - основы основ интеграции - быть не может. И, следовательно, действиями своими «борцы за справедливые отношения» подрывают экономический фундамент Союзного государства.

Сегодня, когда события в ЕАЭС развиваются, мягко говоря, не по оптимальному варианту, следует напомнить об истоках той разрушительной политики. Ведь именно она, аукнувшись конфликтами между Беларусью и Россией, не позволила, несмотря на их договор, завершить создание Союзного государства, а сейчас откликнулась в новом экономическом объединении. Как мина замедленного действия, заложенная около двух десятилетий назад ее хитроумными конструкторами.

Кто эти конструкторы и где свили свое гнездо - гадать не надо. Первым в использовании нефтегазовых дотаций и субсидий для поддержки Республики Беларусь обвинил Россию госдепартамент США. Возглавляла его тогда ярко выраженный политический «ястреб» Мадлен Олбрайт. И хотя именно на дотациях и субсидиях, выравнивающих экономические условия, создавался и строился Европейский союз, Олбрайт объявила их применение для белорусско-российской интеграции преступным. Документы госдепа запестрели предупреждениями о недопустимой поддержке «лукашенковского режима».

«Конструкторы» понимали, что действуют наверняка. «В отношениях между Россией и Беларусью уже существуют стратегические расхождения. Путин проводит прозападную политику, в то время как Лукашенко - антизападную», - откровенно рассказывал летом 2002 года один из самых активных тогда идеологов и рупоров Кремля Вячеслав Никонов в интервью «Белорусской деловой газете». Расхваливая эту прозападную, «по всем стратегическим направлениям», политику - от «интеграции России в глобальную экономику, информационное пространство, международные институты безопасности» до укрепления дружественных отношений с США, Евросоюзом и НАТО, - он начисто отрицал агрессивные поползновения заокеанских партнеров Кремля и их сателлитов. На вопрос корреспондента, не связана ли позиция по отношению к официальному Минску с давлением Запада на Россию, лукаво ответил: «Нет, роль Запада я здесь абсолютно исключаю… Перед нашим руководством никто никаких условий не ставит».

Увы! Все обстояло как раз с точностью до наоборот. Уже за два года до этого условия, которые постоянно ставил перед российским руководством мадлен-олбрайтовский госдеп, проводящий внешнюю политику и отвечающий за нее, вошли даже в законодательный акт государства - резолюцию конгресса США. Резолюция требовала: «ввиду экономических субсидий Российской Федерации в Беларусь призвать президента Соединённых Штатов подготовить и предоставить в конгресс отчет о мерах, принимаемых Соединенными Штатами и направленных на то, чтобы убедить правительство Российской Федерации прекратить поддержку белорусского режима Лукашенко».

Условие, поставленное властями США, было, как мы знаем, выполнено: Путин дал письменное распоряжение отменить дотации и субсидии Беларуси. Россия фактически вышла из Союзного договора, и руководство её стало ускоренными темпами поднимать для белорусов цены на газ и нефть. С телеэкранов, на шоу, организованных высшей властью РФ, звучало, что эти меры приняты для укрепления интеграции. «Нахлебница… Гиря на ногах России» - вот далеко не самые оскорбительные ярлыки, что наклеивали на братскую республику в развязанной против неё пропагандистской войне.

Зачем, подумают многие, вспоминать ту безумную вакханалию. Кремль ввел для Беларуси понижающий интеграционный коэффициент, выровняв цены на энергоносители. И тем самым признал: односторонне их повышая, он проводил антиинтеграционную политику. Но разве можно забыть, что на это понадобилось почти десять лет? И что сделано это после того, как был по всем главным статьям нарушен Союзный договор и заблокировано, в полном согласии с планом Запада, создание полноценного Союзного государства, к которому намеревалось присоединиться большинство стран СНГ. И значит, упущен исторический шанс возрождения разваленной «демократами» державы.

И как забыть, что для взлома интеграционной основы этого государства олигархическая российская власть все десять лет с подачи Вашингтона вбивала в мозги россиян лукавую мысль: «Беларусь - ваш нахлебник». И даже более высокие, чем у России, темпы ее развития объясняла «нахлебничеством»: достигнуты они, дескать, только за счёт льготных цен на газ и нефть. Хотя в России и нефть, и газ были намного дешевле, чем она продавала их Беларуси. И при такой более высокой, порой вдвое, стоимости энергоресурсов «безнадежно отстающая в реформировании лукашенковская республика» ежегодно в течение всего десятилетия обгоняла по темпам развития реформированную российскую экономику в два-три раза.

Да что говорить. Нахлебничеством назвали даже получение Беларусью кредитов. О том, что она ведет, в отличие от России, реальную модернизацию реального сектора экономики, а это требует огромных ресурсов, и обращение за кредитами в такой ситуации - нормальная практика, умолчали. Как и о том, что кредиты-то возвращаются в срок и с процентами.

Но и сегодня, после того как уже создан, пусть и в недоношенном виде, Евразийский экономический союз, почитайте «свободные» СМИ: «Лукашенко отщипывает от России лакомые кусочки… Беларусь живет за счет льготных нефтегазовых цен». Отзвуки мадлен-олбрайтовского хора слышатся не только с экранов и газетных страниц, но и из солидных бизнес-правительственных офисов. Беларусь по-прежнему стараются представить нахлебницей. А с нахлебниками можно не церемониться.

Не надо быть семи пядей во лбу, чтобы понять: эта психологическая мина под интеграцию представляет реальную опасность для нового союза. Тем более, что причина торговых войн и конфликтов, не прекратившихся даже накануне его рождения и продолжающихся уже в самом ЕАЭС в виде переориентации его участников на рынки дальнего зарубежья, не устранена.

Cиндром рыночного кретинизма
Во время этих конфликтов и войн российская власть, состоящая, как и положено в капиталистическом обществе, на службе у бизнеса, показала, что под его давлением подходит к Беларуси не как к союзнику, а как к конкуренту. Отсюда, собственно, и начинается клубок противоречий. «Они (российские бизнесмены. - О.С.) не могут с нами конкурировать ни по качеству, ни по цене, ни по организованности», - резонно заметил Александр Лукашенко. И потому, подчеркнул он, применяют административные, порой бандитские методы.

В общем, это не раз признавали, правда в более мягкой форме, сами представители российского руководства. Как, например, первый вице-премьер Игорь Шувалов, откровенно пояснивший, что один из последних крупных «нефтяных» конфликтов возник из-за того, что по уровню переработки нефти на своих НПЗ Россия заметно отстала от Беларуси. Увы! Отстала не только в этом. Тракторов, допустим, за прошлый год она произвела почти в шесть раз меньше, чем небольшая «лукашенковская республика». Мяса в расчёте на душу населения - в два, молока - в три с лишним раза меньше.
О том, как далеко назад отброшена экономика России, сказано и написано немало. Напомню лишь несколько цифр. Производство тех же тракторов с 1990 года уменьшилось в 24,5 раза, зерноуборочных комбайнов - в 20, угроблена основа развития современной промышленности - станкостроение: выпуск станков с 1986 года упал в 70 раз. И, что особо опасно, экономическая деградация продолжается: даже в «благополучном» 2008 году капитальные вложения в России были на 2,28 триллиона рублей ниже показателя ежегодного физического износа основных фондов.

Такой разгром экономики отдельными ошибками, а тем более случайностью, не объяснишь. Его учинили с помощью глобальной стратегии - стратегии свободного рынка, в который бросили по рецептам западных «друзей» «новую» Россию ее дорвавшиеся до власти правители. Еще перед началом их «реформ» известный экономист, лауреат Нобелевской премии Джон Гелбрейт предупреждал: «Говорящие о возвращении к свободному рынку не правы настолько, что их точка зрения может быть сочтена психическим отклонением клинического характера. Это то явление, которого у нас на Западе нет, которое мы не стали бы терпеть и при котором не могли бы выжить».

Действительно, на Западе свободного рынка нет - он почил, из-за перемен в производстве, после своего теоретика Адама Смита. И уже с позапрошлого века в западной экономике стала усиливаться роль государства, доля которого в производственном потенциале наиболее развитых держав за 125 лет (с 1870 по 1996 год) возросла в 4,4 раза - с 10,5 до 45,8 процента, достигнув показателей от 33 процентов в США до 64,7 процента в Швеции. А за полтора последних десятилетия, особенно в результате антикризисных мер, будь то многомиллиардные государственные вливания в экономику или национализация крупнейших предприятий и фирм, эта госдоля еще увеличилась. В «новой» России, наоборот, государство стали изгонять из экономики: в 1991 году ему принадлежало 90 процентов основных средств, сейчас - почти в десять раз меньше.

Усиливалось на Западе и государственное регулирование экономической деятельности. Она жёстко подчинена плану - от объёмов (квот) производства и сбыта продукции до качественных параметров. Япония, например, разрабатывает 12 тысяч общегосударственных плановых балансов - в тридцать раз больше, чем разрабатывал Советский Союз. В «новой» России, наоборот, с первых дней государственное регулирование подменили свободнорыночным.

От «явления», при котором «не могли бы выжить» даже на мощном Западе, российская экономика, естественно, должна была и начала рушиться. Диагноз, поставленный Джоном Гелбрейтом, подтвердился. Правда, распространять его на всех «реформаторов» я бы не стал. Подавляющее большинство их, действуя по варианту психического отклонения, отнюдь не страдали этим недугом. В полном здравии, как и их западные патроны, выдавшие рецепты для российской экономики, они осознанно работали на конечную цель: все развалить, присвоить самые лакомые куски и в новом обществе, разделённом на богатых и бедных, стать за счет ограбленного народа господами жизни. Достичь этого можно было только с помощью свободного рынка.

Чтобы разобраться, кто действительно верил в его созидательную силу из-за психического, как считал Гелбрейт, отклонения, а кто внедрял разрушительный свободнорыночный механизм осознанно, для грабежа и наживы, нужна медицинско-прокурорская, а точнее - прокурорско-медицинская проверка. Когда-то, надеюсь, она будет проведена. А пока нынешняя генерация российских руководителей продолжает курс и политику своих предшественников, бросивших Россию в свободный рынок. Что видим и слышим? Знакомые призывы-«указивки»: «Меньше государства в экономике». И - очередную, по плану правительства, волну приватизации госпредприятий.

А с государственным регулированием и вовсе до смешного доходит. Объясняя, почему правительство не торопится регулировать взбесившиеся (читай: поднятые свободнорыночным бизнесом) цены, глава кабмина Дмитрий Медведев, помните, заявил, что это - «штука достаточно тонкая». Как же справлялись тогда с этой «тонкой штукой» не обременённые вузовскими дипломами, «темные» по нынешним меркам, власть имущие в ХIII веке? Ведь уже в 1203 году в Англии установили предельные цены на хлеб, молоко и мясо, а вскоре - на ремесленные изделия. Через несколько лет - и во Франции. А в Великом княжестве Литовском с конца того же ХIII века на рынках вывешивали уставные грамоты и любого, кто нарушал указанный в них уровень цен, лишали имущества.

Трудно поверить, что господин Медведев и его правительство не знают таких хрестоматийных истин. И не ведают, что ценообразование на Западе с 30-х годов прошлого века совершенствовалось с учетом советского опыта. И что сейчас в странах Евросоюза оптовые, закупочные цены на продукцию (а от них зависят и розничные, которые тоже не бесконтрольны) устанавливаются даже не из своих столиц, а из Брюсселя. Да и в самой «цитадели» капитализма - США власть их бдительно регулирует. Это столь широко известная сфера государственной деятельности, что о ней можно узнать не только из экономической литературы. В романе «Умолкнувший оратор» маститый американский писатель Рекс Стаут, например, рассказывает об убийстве директора правительственного бюро регулирования цен, который подготовил очередной циркуляр для Национальной ассоциации промышленников с длинным списком изделий из цветных металлов и указанием предельных цен на них.

Но российское правительство саботирует регулирование цен даже на мизерный перечень социально значимых продовольственных товаров, утвержденный для регулирования самим же правительством. Саботирует во имя свободы рынка, скрывая при этом главное: свободнорыночная идея, сыгравшая в далекие времена свою положительную роль, была похоронена жизнью трижды. Первый раз, как уже говорилось, в позапрошлом веке. Второй - после попытки реанимировать ее в 20-е годы века прошлого. Рыночная стихия разнесла тогда экономику капиталистического Запада в щепки. И президент США Рузвельт спасал парализованную, по его словам, погибающую страну методами государственного регулирования, заимствованными у Советского Союза. И третий раз - после попытки реанимировать свободный рынок в «современной форме», предпринятой «гением», как его называют либерал-«реформаторы», экономической мысли Милтоном Фридманом.

Реанимированная им теория, дважды похороненная жизнью, как и следовало ожидать, привела к развалу экономики в десятках стран Южной Америки, Азии и Африки, где была применена. После этого западные советники и подсунули ее властям «новой» России. Как основу «броска в будущее». «Современная форма» теории помогала им и их подопечным - постсоветским «реформаторам» скрыть, что Россию отбрасывают во времена Смита.

Скрывают они и то, что крах своей теории признал сам Фридман. «Советская экономика, - заявлял он в 1988 году, - настолько неэффективна, что разреши там свободную рыночную систему - и через месяц практически каждый будет жить лучше, за исключением аппаратчиков». Прошло семь лет, и, отвечая на вопрос корреспондента, он вынужден был признать, что «погорячился». В это время он предлагал следующий рецепт «счастья»: «Формула состоит из трех слагаемых перехода страны к благополучию. Первое - это приватизация. Второе - приватизация. И, наконец, третье - тоже приватизация». Прошло еще семь лет, и Фридман признался, что и тогда был не прав.

Почему я так подробно рассказываю об истории давно почившей свободнорыночной, или, как её чаще называют сейчас, либерально-рыночной теории? Потому, что хочу напомнить закономерность ее краха - краха, о котором, как и о причинах его, давно говорят коммунисты. Но еще, и это сейчас не менее важно, потому, что своим служением этому все разлагающему - и экономику, и нравственность - мертвецу российские «реформаторы» нанесли не только прямой ущерб России. Под удар попала и важнейшая для нее, для ее геополитического будущего и даже просто для ее выживания интеграция. Прежде всего - с Беларусью, которая не пошла по варианту психического отклонения, или, как уточнил один из обозревателей, рыночного кретинизма. «Никакой болтовни о приватизации. Слава богу, что мы сохранили государственную собственность. И не дай бог повторить то, что произошло в России, а тем более на Украине. Чтоб через этот механизм кое-какие изворотливые люди не прихватили предприятия», - уже после рождения Евразийского экономического союза Лукашенко еще раз подтвердил свое устойчивое неприятие разрушительных либеральных «реформ».

За это неприятие российская сторона и нанесла удар по своему ближайшему союзнику. Причем - двойной. Для защиты своих обескровленных либеральным рынком сельхозпроизводителей перекрыла ему заметную часть поставок мясо-молочной продукции. И вдобавок развалом своей экономики и катастрофическим падением рубля - последствиями той же свободнорыночной политики - создала разорительные для Беларуси условия покупки российских товаров, чем ещё больше подтолкнула ее к переориентации экспорта. Рынки двух самых интегрированных республик начали «разбегаться».
С этой миной, заложенной российскими «реформаторами», и вошел в жизнь Евразийский экономический союз.

Страсти по Путину
Сегодня много пишут об огрехах и недоделках нового объединения. Об изъятиях и ограничениях, которые не позволяют даже назвать его экономическим союзом. Ведь только в 2019 году будет сформирован единый рынок электроэнергии, а регулятор финансового рынка ЕАЭС и общий рынок нефти и газа заработают лишь в 2025 году. Но аналитики почему-то обходят молчанием, что несравнимо опаснее всех этих огрехов и недоделок, свободнорыночный механизм, разрушающий экономику и ослабляющий интеграцию. Зато официозные российские СМИ не упускают момента воздать хвалу Владимиру Путину за его «продуманную интеграционную политику». И постоянно напоминают, как высок в обществе его рейтинг.

Да, Путина сегодня, после начавшегося недавно снижения рейтинга, поддерживает, по данным официальной социологии, почти 80 процентов населения. И в таких вопросах, как, допустим, помощь Новороссии и противостояние «болотникам», готовящимся еще больше либерализировать экономику, добить ее и окончательно уложить Россию под Запад, он заслуживает поддержки левых сил.

Но это не дает права умалчивать, что «болотники», и в первую голову их поводыри, - буржуазный клан, противостоящий такому же буржуазному клану Путина. И что Путин - властная опора уродливого рынка, созданного в России по рецепту: «Меньше государства в экономике». Все помнят, как на декабрьской пресс-конференции он защищал бизнесменов, обескровливающих Россию в интересах Запада: «Если бизнес хочет оставить деньги за границей, пусть оставляет». Как пытался оправдать свободнорыночников, разгромивших экономику своим «сырьевым» пристрастием: «…Бизнес старается деньги вкладывать в основном туда, где можно было извлечь максимальную и быструю прибыль».

Неудивительно, что «свободный бизнес» чувствует себя полным хозяином в государстве. Последнее тому доказательство - события в ОАО «Российские железные дороги», о которых писала «Правда». На требование Путина наладить нормальную работу 312 закрытых пригородных маршрутов свободнорыночники издевательски пустили электрички пустыми, до неподъёмности взвинтив цены на билеты. Уже не президент Путин, который привык называть себя всероссийским менеджером, руководит экономикой государства, а свободный рынок руководит президентом Путиным.

Эта разрушительная свободнорыночная стихия перекочевала и на интеграционное поле - иначе не могло быть: внешняя политика есть продолжение внутренней. Даже важнейшее для межгосударственных связей решение - ограничить поставки белорусской продукции в Россию и запретить транзит ее товаров из Европы в третьи страны через территорию РФ - было принято без согласования с Путиным. Все «обстряпали» бизнес и его лоббисты. И если бы не жёсткая позиция Лукашенко, трудно сказать, чем кончилась бы либеральная атака на Союзное государство и находившийся в предродовых муках Евразийский экономический союз.

Под свободный рынок Путин формирует и правительство. В кого ни ткни - миллионер или, того чище, миллиардер. Для них экономика, созданная по варианту психического отклонения, просто дно золотое. Надежда, что «лидер нации» вытянет её и поднимет, а на это, судя по опросам, надеются многие россияне, заставляет вспомнить слова Яна Гуса, сказанные старушке, подбросившей хворост в костер, на котором он, еретик Гус, должен сгореть: «О, sancta simplicitas!» (О, святая простота!) Как вытянет и поднимет? С такой командой? И с устаревшим, полуторавековой давности экономическим механизмом, ущерб от которого перевешивает все выгоды интеграции в ЕАЭС? Ведь российская экономика - это почти 80 процентов экономики этого союза. И задержка в развитии или уменьшение российского экономического потенциала, неизбежные при варианте свободнорыночного «психического отклонения», задержит либо отбросит в прошлое весь союз.

Наивными выглядят надежды на то, что Путин приблизит, как обещал, Россию к экономическому уровню Запада, построив современный капитализм. Для этого, даже отказавшись от разрушительного свободно-рыночного курса, надо ограбить полмира - только за счет такого грабежа, начавшегося около двухсот лет назад, Запад обогатился и создал мощный экономический потенциал. Надо сформировать подобную американской мошенническую финансовую систему, которая за пустые, ничем не обеспеченные бумажки, отпечатанные на станке, получает горы товаров и в которой курс национальной валюты будет завышен так, как завышен курс доллара: в 2007-2009 годах его реальная покупательная способность по отношению к рублю была завышена в 1,6 раза, сейчас, естественно, во много раз больше. Надо захватывать, как США с союзниками, страны мира, богатые ресурсами, и обогащаться за счет их дешевизны - это выгоднее, чем тратить средства на дополнительную, дорогую, добычу у себя.

Но даже если все это сделать и полностью перейти на западный, пусть и грабительский, механизм, Россия не сможет достичь экономического уровня Запада: из-за природных условий ей надо тратить на производство товара в полтора раза больше ресурсов, чем Западу. Для того, чтобы Россия, а с ней, естественно, и Евразийский союз вышли на современный уровень по всем главным параметрам, нужен экономический механизм куда более эффективный, чем нынешний капиталистический. Каким же он должен быть?

Единственный выход
Когда Милтон Фридман в 2002 году признал, что теория его ошибочна, это не было случайностью. Годом раньше видные американские ученые-экономисты Джозеф Стиглиц, Джордж Акерлоф и Майкл Спенс, получившие Нобелевскую премию, доказали необходимость самого активного вмешательства государства в экономику - перехода от частной к государственной собственности и замены свободной конкуренции плановым регулированием. Они предложили экономический механизм, близкий к социалистическому - тому, что был в Советском Союзе.

И это тоже не случайность. Средний прирост валового национального продукта (ВНП) в СССР в 1946-1985 годы составил семь процентов, в США - 3,2. Даже в последние доперестроечные годы (1981-1985), которые нынешние российские «реформаторы» называют застойными, темпы роста ВНП в Советском Союзе были почти в полтора раза выше, чем в США (3,6 и 2,6 процента соответственно). А объем ВНП СССР, по данным ЦРУ, в 1982 году составил 56,1 процента от ВНП США. По абсолютному большинству экономических показателей СССР занимал первое или второе место в мире.

Возвращение в будущее, к социалистической экономике - единственный выход для России. Цель эта поставлена в Программе КПРФ. О вехах нелёгкого и непростого пути к ней говорили недавно участники «круглого стола», проведенного в Госдуме коммунистической фракцией. Сегодня самая главная задача - вывести страну из тупика, в который ее завели либеральные «поводыри». А для этого прежде всего надо отправить в отставку их правительство и от свободнорыночной экономики перейти к государственно регулируемой. Иначе Россия, основное ядро Евразийского экономического союза, начнет сползать в пропасть. А с нею и весь союз, который из прогнозируемого центра силы превратится в центр слабости - легкую добычу для колонизаторов, уже показавших свое истинное лицо.

Автор: 
Олег СТЕПАНЕНКО (соб. корр. «Правды»)
Номер газеты: 

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
2 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.