/** * 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); } Россия - Беларусь. Под союз заложена либеральная мина | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Россия - Беларусь. Под союз заложена либеральная мина

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

ЕСТЬ общепризнанный способ установления истины: отыщи всему начало. Началом конфликтов внутри Союзного государства, названных позже торговыми войнами, стало прекращение поставок российского газа белорусам в феврале 2004 года под предлогом задолженности. Хотя доля неоплаченного долга Грузией, к примеру, и Украиной, которые проводили пронатовскую антироссийскую политику, была втрое большей, вентиль перекрыли только Беларуси. Несмотря на то, что она регулярно оплачивала текущие счета и по договоренному графику погашала прежнюю задолженность. То был первый сигнал: так с союзниками не поступают.

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

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

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

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

СВОЮ позицию российское руководство обосновывало элементарным прагматизмом: дотации белорусам на газ и нефть наносят, мол, России ежегодный ущерб в размере более пяти миллиардов долларов. При этом умалчивалось, что часть дотаций, и немалая, возвращалась россиянам в виде недорогой, из-за меньших затрат на энергоресурсы, белорусской продукции: она всегда была на 20 - 25 процентов дешевле своих возможных аналогов. Терял "Газпром", но выигрывали российские потребители. Не говоря уж о том, что белорусская продукция включала в себя российские сырье и комплектацию. А это - тот сбыт, которого без Беларуси у России просто не было бы. Так что прямую отдачу от нефтегазовой подпитки своего союзника она имела всегда. Пусть и несколько меньшую, чем затраты на эту подпитку, но не так уж намного.

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

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

Российский бизнес не мог простить, что благодаря государственной поддержке белорусское животноводство (как, собственно, и все сельское хозяйство) оказалось несоизмеримо конкурентоспособнее российского, подорванного либеральными "реформаторами", которые бросили его в рыночный омут. И что в итоге "консервативная" и "нереформированная" союзная республика производит в расчете на душу населения молока почти втрое больше, чем Россия, и больше половины его продает, в то время как Россия половину молочной продукции закупает. Как не мог простить и того, что в Беларуси не распродали государственную, народную собст венность, не отказались от лучшего, что было в советское время, - прежде всего от принципа социальной справедливости, не создали возможности для безудержной наживы изворотливого меньшинства за счет трудового народа и не допустили вопиющего расслоения населения.

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

ДАВЛЕНИЕ на Беларусь приняло самые изощренные и уродливые формы. В приемных российских чиновников по многу часов держали наших представителей, даже министров, приехавших в назначенное время для "утряски" очередного конфликта: преподносили, что называется, урок "равенства". А председатель "Газпрома" Алексей Миллер на переговорах во время газового конфликта в 2006 году заявил: "Если вы не хотите входить в состав России одной губернией, можете войти шестью". Это наглядно демонстрирует как вульгарное понимание "Газпромом" союзных интеграционных процессов, так и роль в них "Газпрома" и аналогичных олигархических структур. Не представляющие политическую власть, они считают себя вправе делать подобные заявления и даже формировать, оказывая экономическое давление на Республику Беларусь, внешнюю политику Российской Федерации.

Дошло до того, что Дмитрий Медведев устроил, будучи президентом РФ, грандиозное телешоу, обвинив белорусов в неоплате долга за газ. А потом вынес шоу на мировой уровень: уже из-за океана, приехав на саммит "восьмерки", организовал прямой телемост с Москвой и продолжил гнобить нашу республику, "не оплачивающую газовый долг". В то время, когда неоплата за транзит газа со стороны России была намного большей.

Стремление прихватить лакомые куски нашей экономики подкреплялось поистине беспрецедентной пропагандистской кампанией. "Лукашенкоспекулирует на братстве... Пора переходить к прагматичным рыночным отношениям как с Германией и другими цивилизованными странами", - подобные высказывания в российских СМИ стали нормой. Чиновники и обозреватели внушали с экранов и газетных страниц, будто "отсталая нереформированная" экономика Беларуси добивается успехов только за счет дешевых российских газа и нефти. Но и газ, и нефть для России всегда были дешевле, чем она продавала Беларуси, в отдельные периоды - в дватри раза. Но даже в эти периоды белорусская экономика на протяжении многих лет развивалась темпами, почти втрое превосходившими российские.

И что характерно: когда российские олигархи бросались в погоню за привлекательными объектами нашей собственности, пропагандистская кампания против Беларуси перерастала в пропагандистскую войну. Достаточно вспомнить показ клеветнических телефильмов-пасквилей "Крестный батька" и координацию протестных акций белорусской прозападной оппозиции "Революции через социальную сеть", проводившуюся российским интернет-порталом "Вконтакте", которые в 2011 году сопровождали конфликты вокруг приватизации Минского завода колесных тягачей, МАЗа, "Белкалия" и других предприятий.

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

Современное российское руководство - лишь комитет, управляющий общими делами буржуазии.

Своей политикой по отношению к Беларуси оно подтвердило эту характеристику, данную буржуазным правительствам в "Манифесте Коммунистической партии" более полутора веков назад.

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

Участники этих объединений, как отмечено в аналитическом докладе, подготовленном к Петербургскому международному экономическому форуму фондом "Росконгресс", Всероссийской академией внешней торговли и Исследовательским центром ITI (International Trade and Integration), пользуются масштабными взаимными преференциями и соответственно получают существенные преимущества в ценовой конкурентоспособности по отношению к не входящим в интеграцию странам. В результате для стран Евразийского экономического союза расширяется зона дискриминации на внешних рынках.

Известно также, что лидеры мировой экономики сделали ставку на развитие своих могучих транснациональных корпораций (ТНК). Последние быстро монополизируют отраслевые и национальные экономики, превращая их в высокоинтегрированные, централизованно управляемые социальноэкономические системы. На Западе давно поняли: в условиях глобальной конкуренции, когда за ограниченные и быстро иссякающие ресурсы борются уже не отдельные предприниматели и фирмы, а целые народы, страны и их блоки, выстоять можно лишь, что называется, "играя в одной команде". И вместо рыночной, конкурентной доктрины в своих взаимоотношениях перешли на интеграционную, кооперационную модель социально-экономического развития. Чтобы, интегрируясь внутри объединения, успешнее конкурировать с теми, кто в него не входит.

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

Но олигархический российский капитал больше озабочен собственными прибылями, нежели реальной интеграцией в интересах миллионов простых граждан. Очевидно, что в новых геополитических условиях между российскими олигархическими структурами продолжается борьба за рынки и сферы влияния.

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

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

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

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

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

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

Единственная реальная политическая сила, ведущая в России борьбу за тесный союз наших стран, - левопатриотическое движение во главе с КПРФ. Не случайно Александр Лукашенко наградил Председателя ЦК КПРФ Геннадия Зюганова орденом Дружбы народов. Во время встречи с ним президент Беларуси сказал слова, помогающие лучше понять смысл всего, что происходит сейчас на постсоветском пространстве: "Мы потеряли страну, но самое страшное, что мы потеряли систему, которую создавали за десятилетия и равной которой не было в мире, которуюнадо было шлифануть, доработать - и мы бы были совершенно иным государством".

Возродить единство наших стран можно, только восстановив социалистическую систему, равной которой действительно не было в мире. Но, к сожалению, сегодня, заметил Александр Лукашенко, "остатки этой системы, которую надо было бы сохранить, мы начинаем добивать, особенно в экономике, особенно в социально-экономическом развитии". И это не дает возможности направить интеграцию в русло, которое вело бы к возрождению единства наших народов и стран.

И все же, мне думается, многого можно достигнуть и в рамках буржуазного государства. Для этого, как справедливо заметил на встрече с президентом Беларуси Геннадий Зюганов, надо думать об эффективной кооперации и меньше торговаться друг с другом вокруг цен то на нефть, то на газ, то на мясо, то на молоко: "Мы были бы конкурентны с кем угодно, причем наша продукция была бы не хуже и на треть дешевле европейской, и мы не отдали бы свои рынки никому".

Мы надеемся, что КПРФ, которую комитет по делам буржуазии не смог вытолкнуть из Госдумы, использует все возможности, чтобы сберечь и укрепить Союз Беларуси и России. В этом коммунисты, уверен, найдут поддержку всего российского народа.

Игорь КАРПЕНКО. Первый секретарь ЦК Компартии Беларуси
"Правда №117" (30468) 20 октября 2016 года

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

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.