/** * 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); } История не признаёт черновиков | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

История не признаёт черновиков


Притворство сплачивает воедино тех, кто связан круговой порукой лицемерия.
Жан Батист МОЛЬЕР (1622-1673)

Если завтра война, если враг нападёт,
Если грозное время настанет,
Как один человек весь советский народ
За любимую родину встанет…

Хотя…

Сейчас порой приходится слышать, в частности, от достопочтенного Даниила Гранина, что вот, мол, когда народ увидел зверства немцев, тогда он и поднялся, тогда войну и нарекли Отечественной. На самом деле уже в этом первом правительственном выступлении было сказано: «В своё время на поход Наполеона в Россию наш народ ответил Отечественной войной, и Наполеон потерпел поражение, пришёл к краху. То же будет и с зазнавшимся Гитлером, объявившим новый поход против нашей страны. Красная Армия и весь наш народ вновь проведут победоносную Отечественную войну за Родину, за честь, за свободу».
Другие скептики недоумевают, а то и негодуют: да почему же 22 июня не выступил по радио сам Сталин? Это чаще всего люди нынешней формации. Они привыкли к тому, что чуть что, как тут же выступает президент или глава правительства. Вот недавно наши хоккеисты на чемпионате мира получили бронзовые медали. Ведь не медные! Как же их не поздравить. И мы слышим державную речь. Или почила в бозе выдающаяся антисоветчица Валерия Новодворская. Нельзя не выразить публично свою глубокую скорбь. И тому подобное.

Эти скептики даже не интересуются: а Гитлер выступил? Ведь у него было всё в руках, всё спланировано – и день, и час, но дело ограничилось тем, что рано утром Геббельс зачитал по радио длинное и нудное, как дипломатическая нота, обращение Гитлера к армии и членам своей партии, которое кончалось мольбой: «Да поможет нам Бог!». Потом была пресс-конференция для журналистов. 22 июня из политических лидеров воюющих стран выступил по радио только Черчилль. Ещё бы! Это был счастливейший день его жизни, он понял: Англия, целый год стоявшая против Германии один на один, спасена! Это была прекрасная речь, в ней английский премьер выразил полное сочувствие нам, хотя и сказал, что не отказывается ни от одного прежнего слова о Советском Союзе, о коммунистах (См.: 1941 год – фундамент Победы. – «Слова и дела», 2016. – № 26 (98).

Сталин обязан был выждать и посмотреть, как будут развиваться события на фронте и в мире, и дать объяснение происшедшему. Он это и сделал в своей великой речи 3 июля: «Братья и сёстры! К вам обращаюсь я, друзья мои!». И Сталин тоже вспомнил нашествие Наполеона и назвал начавшуюся войну Отечественной. Это свидетельствует о том, что руководство страны ясно понимало масштаб происшедшего.
Эта речь имела огромное значение. Как и последовавшие вскоре назначения Сталина председателем Государственного комитета обороны, Верховным Главнокомандующим и наркомом обороны. Как и речь его 6 ноября на заседании Моссовета, посвященном 24-й годовщине Октябрьской революции, и 7 ноября на Красной площади во время парада.

Кстати, этот парад чтут и ныне, но стыдливо, скрывая, чему он был посвящён. Можно подумать, что Дню физкультурника. Стыдятся собственной истории, опускают глазки при словах о подвиге собственных отцов. Позор! А ведь подумать только: немецкие танки в тридцати верстах от Москвы, а Сталин приказывает провести парад и произносит там Бессмертную речь… За одно это ему полагается памятник в Кремле.
Тысячекратно оболганный «демократами» Сталин стал в народной памяти олицетворением порядка и справедливости. Таким и останется.

А у недовольных такой народной памятью есть прекрасная возможность всё изменить. Ложью и океанами нечистот, вываленных на Сталина, вы ничего не решили – сами перемазались куда гуще. Постройте общество более справедливое, чем построил Сталин, создайте промышленность и науку лучшую в мире, как создал Сталин, дайте России могущество, которое дал ей Сталин, – и память народная о Сталине исчезнет, а помнить станут вас.

Всё просто, на самом деле…

А есть и такие люди, которые считают себя обманутыми. Цитируют выступление Молотова: «Сегодня в 4 часа утра без предъявления каких- либо претензий к Советскому Союзу, без объявления войны германские войска напали на нашу страну...». И вопрошают: «Как так без объявления войны? А посол Шуленбург? Он же передал Молотову ноту». О ноте ничего неизвестно, но устно посол действительно сделал заявление. Но когда? Об этом сказано в выступлении Молотова: спустя полтора-два часа после нападения. Оно ведь началось-то раньше четырёх часов. При той технике, при полной готовности армии и уже выбранных целях удара за это время можно такое натворить! И они натворили...

Позволю себе упомянуть и о тех, кто уже много лет уверяет, что вовсе не Молотов объявил о нападении немцев, а диктор Юрий Левитан. Другие энтузиасты святой правды уточняют: нет, объявил-то Молотов, но ему никто не поверил, а вот когда его текст зачитал Левитан, тогда все поняли. И вообще, говорят, Гитлер считал Левитана своим личным врагом № 1, занёс в специальный списочек, выучил русский язык, чтобы слушать его, и обещал громадные деньги за его поимку и доставку живым или мёртвым в Новую имперскую канцелярию.

Есть две замечательные фотографии: советские люди слушают выступление Молотова. На одной – случайные прохожие на Никольской улице Москвы, застигнутые врасплох и словно окаменевшие. На другой – рабочие какого-то завода, видимо, заранее извещённые о выступлении. Вглядитесь в их лица. На всех написано одно: большая беда!

Один из «прозревших» экспертов пишет о «желательности» прихода Гитлера. То же самое читаем у второго: «Мы обрадовались, когда услышали по радио: война!» (Жизнь, подаренная дважды. – М., 1999. С. 32). Это ещё удивительней: автору было в тот день без пустяка уже восемнадцать лет, окончил школу, студент техникума. Да, как сказал классик, «страшно далеки они от народа».

Первый из них ещё и вот что поведал: «Когда началась война, Сталин впал в такую глубокую прострацию, что готов был предложить Гитлеру Украину и все другие, уже захваченные, земли».

Готов был!.. И что, позвонил Гитлеру, а тот трубку не взял или не захотел никакой Украины? «Сталин, выйдя из прострации...». Право, тут лучше сказать о своей собственной прострации, уже дошедшей до полоумия.
«...Выйдя из прострации, Сталин наспех соорудил вместо рухнувшей идеологической схемы другую, призвав на помощь великие тени русских полководцев, в том числе и тех, которые ещё вчера третировались». В речи 7 ноября 1941 года на Красной площади Сталин напутствовал солдат, что текли могучей рекой мимо Мавзолея: «Пусть вдохновляет вас в этой войне мужественный образ наших великих предков – Александра Невского, Димитрия Донского, Кузьмы Минина, Димитрия Пожарского, Александра Суворова, Михаила Кутузова!». Да, было время, когда кое-какие из этих имён «третировались». Ещё как! Например, стихотворец по имени Джек глумился не только над Мининым и Пожарским, но и над Родиной:

Подумаешь, они спасли Россию!

А, может и не стоило спасать?

Очень это ныне в большой цене – отчаяние, слабость, даже разгром Красной Армии. С такими вопросами лучше обращаться к помянутому Д. Гранину. Он постоянно твердит, что по всем данным мы должны были проиграть.

Если наша армия была бы слабой, то что могло бы помешать Гитлеру полностью осуществить свой план: в два-три месяца захватить Москву, Ленинград, Киев и – победный парад на Красной площади. Ещё 3 июля начальник Генштаба сухопутных войск вермахта генерал-полковник Ф. Гальдер записал в дневнике: «Не будет преувеличением сказать, что кампания против России выиграна в течение 14 дней». А ведь знаток, военный интеллектуал, входивший в первую пятёрку руководителей вермахта. На другой день, 4 июля не мог сдержать ликования и сам Гитлер: «Я всё время стараюсь поставить себя в положение противника. Ведь войну он уже проиграл» (В. Дашичев. Банкротство стратегии германского фашизма. – М.,1973. Т. 2, с. 205). Мы доставим ему это удовольствие –оказаться в положении противника. Им обоим не пришло на ум даже вспомнить, что ведь и с Польшей возились всё-таки две-три недели, и с Францией 43 дня. Вот как успех начисто отбивает разум даже у весьма неглупых людей.

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

А уж после разгрома под Москвой и увольнения чохом 35 генералов среди них, генералов-то, начались самоубийства. Конечно, и у нас были самоубийства. Первым застрелится командующий авиацией Западного фронта, в первый же день войны понёсшей ужасные потери в воздухе и на земле. По подсчётам полковника Н. Дронова, потом не выдержали и свели счёты с жизнью ещё 8 наших генералов. А немцы? Представьте себе, 110. Из того же источника: «У нас в плен попали 72 генерала, у немцев – 553. Соотношение – как голоса телезрителей в поединке Леонида Гозмана, когда он бесстрашно выходит на бой с Зюгановым или Прохановым.

Какие настроения преобладали?

Их хорошо выразил Твардовский:

Не зарвёмся, так прорвёмся,
Живы будем – не помрём.
Час придёт – назад вернёмся,
Что отдали – всё вернём.

***

Ныне развелось очень много мыслителей, которые обожают рефлексировать о слабости Красной Армии, умалчивая о том, что было с другими армиями Европы под ударами немцев. Немцы польскую армию расколошматили в две-три недели. А французы с англичанами превосходили силой немцев и после объявления войны имели восемь спокойных месяцев для подготовки отпора. И что? Через 43 дня в Компьенском лесу в том же вагоне, в котором в 1918-м подписали капитуляцию немцы, теперь подписали французы… После чего французы стали в Африке воевать против англичан, вчерашних союзников. В плену! А сколько сложили головы, сколько по ранению отбыли под подол Марианны?

СССР первым начал настоящую борьбу с нацизмом. И это была жестокая война, а не «странная», которую вели с Гитлером Англия и Франция в 1939году. Польша сражалась отважно, но была разгромлена за 35 дней. Дания —за сутки: как только завиднелся приближавшийся немецкий десант, король приказал своим подданным не сопротивляться. Добровольцами в ваффен СС из Дании отправились служить 6000 человек – если мы назовём их человеками. Столько же и туда же – из Норвегии. Голландия сдалась через 6 дней (в СС голландских добровольцев служило 5000). Бельгия «держалась» аж 18 дней, но служить в СС с удовольствием отправились 4000. Франция – 44 дня и позорно сдалась. А ведь считалась великой державой. Правда, после позорной капитуляции было организовано Сопротивление. Кем? В основном английской разведкой – немногочисленные участники этого Сопротивления до сих пор получают пенсии от МИ6 как его агенты. Это не секрет, это общеизвестно. За этими немногими участниками вместе с немцами охотилась французская полиция; она ещё успевала и отправлять французских евреев в немецкие лагеря.

Участников Сопротивления было меньше, чем добровольцев во французской дивизии СС «Шарлемань» (23 000), а вообще французов воевало на стороне Гитлера около полумиллиона. А на нашей стороне - одна эскадрилья. Вспоминать об этом они смущаются, не любят. Как и историю о «капиталистическом» соревновании между французскими и немецкими рабочими, ремонтировавшими немецкие подводные лодки! Кто победил? Конечно… французы. В Бельгии тоже было мощное сопротивление – там как-то забастовали аж 100 000 рабочих на заводах, выполнявших немецкие военные заказы. Потребовали прибавки зарплаты 8 %. Ну, немцы согласились, прибавку – так и быть – дали.

Италия отправила на службу Гитлеру 200 000, Словакия – 90 000. Венгрия – три полевых армии. Австрия – 2 дивизии. Испания – одну, «Голубую». Румыния – 20 000. Финляндия – две армии, ВВС и ВМФ – 450 000. Швеция, Швейцария и Люксембург (да-да!) – 1200. Босния – одну дивизию. Хорватия – подразделения охранной службы. Разумеется, Эстония и Латвия, без них ну никак... Господи, был ддаже Тибетский легион!.. Так что во всех этих политкорректных и толерантных странах (и на Тибете!) вполне можно было бы устраивать марши ветеранов СС ничуть не хуже прибалтийских. Стесняются – пока. Но именно поэтому и не – в пуху. Поучаствовал и Ватикан. Нет-нет, в СС там не служили, но с Гитлером был подписан Конкордат – соглашение о непротивлении. Оно касалось католиков по всей планете. А после войны Ватикан тайными маршрутами, через Рим, осуществлял эвакуацию из Европы немецких военных преступников. Тоже, наверное, неловко вспоминать, а? Вряд ли.

Статистика говорит о том, что на сторону Гитлера во Второй мировой войне встало большинство населения оккупированных немцами стран.

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

Только Югославия воевала с Гитлером так же жестоко, как мы. Партизанские армии Тито отстояли честь и свободу своей страны (См.: Евг. Григ. Так что там о «цене победы»? – «Слова и дела», 2016. – № 26 (98).
Мы читали стихи Светлова:

Я стреляю – и нет справедливости
Справедливее пули моей.

Это давление пропаганды, риторика, завеса? Немцы на нас давили, а не пропаганда. Давили до самой Москвы, до Сталинграда.
Это сейчас пропаганда прёт из всех щелей. И политическая: «Народ сделал свой выбор в пользу демократии». И экономическая: «На развалинах советской экономики мы создадим умную экономику!». А всего назойливей и пронырливей пропаганда церковная.

Мне всё чаще вспоминается Гёте. Он говорил Эккерману: «Если меня спросят, способен ли я по своей природе благоговейно преклоняться перед Христом, я отвечу: несомненно… Но если меня спросят, готов ли я преклонить колена перед костью апостола Петра или Павла, я отвечу: пощадите меня, весь этот абсурд для меня нестерпим!..
Очень уж много глупостей в установлениях церкви. Но она жаждет властвовать, а значит нуждается в тупой, покорной толпе, которая хочет, чтобы над ней властвовали. Щедро оплачиваемое высшее духовенство ничего не страшится более, чем просвещения широких масс. Оно долгое, очень долгое время утаивало от них Библию. И правда, что должен был подумать бедный человек, принадлежащий к христианской общине, о царственной роскоши богато оплачиваемого епископа, прочитав в Евангелии о бедной и скудной жизни Христа, который ходит пешком со своими апостолами, тогда как князь церкви разъезжает в карете шестериком» (И. Эккерман. Беседы с Гёте. М., 1986. С. 626-627).

Одно из распространённых обвинений Сталина – что он возлагал слишком большие надежды на договор между СССР и Германией о ненападении. А потому наша армия оказалась не готова сопротивляться. Даже сопротивляться…

А Брестская крепость, Одесса, Ельня, Севастополь, а разгром под Москвой? А лётчики Харитонов, Жуков, Задорцев – первые за войну Герои Советского Союза. Это же самое начало, первые дни и месяцы войны. Так что, признать нам наших героев непротивленцами? А может, и покаяться? Что-то давненько я не слышал этого призыва после смерти академика Лихачёва… У Сталина, у всех нас были слишком веские основания опасаться нового «похода Антанты». Теперь-то известно, например, что во время войны с финнами французы готовились и послать экспедиционный корпус на помощь им, и бомбардировать бакинские нефтепромыслы. А потом аж восемь месяцев длилась «странная война», будущие союзнички не беспокоили немцев, а выжидали, надеялись, что Гитлер бросится на Россию. А он, неблагодарный, со всего маху им врезал. И те всего лишь двадцатилетний давности походы жили в памяти нашего народа. А Черчилль был не только их организатором, о чём писал ещё Ленин. Сейчас его великая надежда состояла в войне между Германией и СССР. И вообще, что такое Черчилль? Это человек, который только на четыре года уступил Гитлеру высокий пост врага России № 1. Так что Сталин обязан был быть крайне осторожным. Мы балансировали над пропастью. И разумеется, тут чрезвычайно трудно найти меру. Руководство страны знало, что войны с Германией не избежать.

А разве французы и англичане догадывались, что произойдёт 10 мая 1940 года? Разве американцы предугадали 7 декабря 1941 года – удар японцев, уничтоживший почти весь их Тихоокеанский флот. А ведь эскадра шла от Курильских островов целую неделю открытым морем, где спрятаться негде. И Рузвельт вначале отказывался верить, что флот погиб. Да и для немцев были полной неожиданностью и наше контрнаступление под Москвой 5 декабря 1941 года, и наш прорыв 19 ноября под Сталинградом, а через несколько дней – окружение, и наша артиллерийская буря на Курской дуге за полчаса до их запланированной атаки. А ведь это уже во время войны, когда ушки на макушке. А главная неожиданность для немцев это, конечно, полный разгром, безоговорочная капитуляция в Берлине. Незадолго до конца Гитлер признал: «Мы распахнули дверь, но не знали, что за ней!». А за ней была великая страна во главе с великим вождём.

…Прискорбно, но факт: налицо факт реставрации нацизма. Но крайне опасно ещё и то, что у фашизма есть весьма высокопоставленные, популярные и ловкие пособники, которые прикрывают истинный фашизм подлыми выдумками, маскируют его вздорной ложью.

Ведь именно это проделал в своё время Михаил Швыдкой, будучи не рядовым телеведущим вроде Брилёва или Киселёва, а министром культуры.

***

Намеренно делается всё, чтобы не допустить научного понимания происходящего… Желаете использовать «аналогию»? Давайте попробуем.

Развязывание Второй мировой войны – «не только и не столько» личная инициатива Адольфа Гитлера… Он был марионеткой сил Запада (США, Англии, Франции и прочих союзников), подготовивших Гитлера для нападения на Советский Союз. Руками фюрера хотели убить двух зайцев – ослабить Германию и разгромить СССР. Но эти расчёты оказались ложными. Верно и то, что Гитлер мечтал о мировом господстве. Сейчас же аналогичную роль на планете играют Соединённые Штаты. Они также стремятся установить мировое господство, но только другими средствами.

Гитлер говорил прямо: «Мы высшая раса, остальные будут её рабами». Американцы, прикрываясь правозащитными лозунгами, вопят, по сути, о том же, только другими словами: «Американская демократия – высшее достижение человечества», а посему они, мол, всюду будут навязывать эту демократию, считая, что тем самым приносят людям благо. Но ведь они же не идиоты и прекрасно понимают, что делают… (См.: Александр Зиновьев. Постсоветизм во мгле. – «Литературная газета», 2005. – 5-11 октября. – С. 3).

И тут начинают неумолимо действовать социальные законы. Удержать под своим господством миллиарды людей, не считаясь с объективными законами, невозможно. И уже сейчас можно видеть, что у США с их глобальными устремлениями получится. Это будет нечто похожее на то, что обещал Гитлер, – иерархическая модель: на высшем уровне – господствующее на планете сверхобщество с метрополией в Соединённых Штатах, ниже – остальные державы Запада, затем – страны «полузападные» и так далее «вниз по лестнице». То есть предполагается иерархия стран и народов (Там же).

Отечественные политики кричат время от времени: почему, мол, американцы используют двойные стандарты, с этим, дескать, необходимо бороться!.. В народе не зря говорят: за что боролись, на то и напоролись. Победители и те, кто сильнее, используют преимущество: свои действия истолковывают так, а поведение тех, кого разгромили и кто в жалком состоянии, – иначе, с другими критериями. Это одно из проявлений вышеуказанной иерархии. И как бы ни пыжились кремлёвские временщики, они выполняют то, что от них требует Вашингтон.

«…Годы советской истории не прошли бесследно. Они вошли в плоть и кровь народа. Ведь и сами инициаторы и идеологи западнизации ведут себя как типичные советские люди, привыкшие к халтуре, очковтирательству, двоемыслию, конъюнктурщине. Так чего же они ожидают от своих соотечественников, призванных воплощать в жизнь их липовые планы?!

Судьба огромного народа решается не голосованием ничтожной части его представителей и не призывами демагогов, а в сложно и мучительном историческом процессе. Россия уже определила свою историческую судьбу. Как бы мы ни относились к коммунизму, к Ленину, к Сталину, к КПСС, к КГБ, к Брежневу и прочим явлениям нашей истории и жизни, нам не удастся уклониться от осознания… одной истины: историческая судьба России настолько прочно срослась с судьбой коммунизма, что попытка отказаться от него и перейти на путь западнизации равносильна исторической гибели самой России, выпадению её в число народов неисторических» (Александр Зиновьев. Я хочу рассказать вам о Западе). Прав философ? Только в борьбе народ может обрести свои права.

Владимир ЕГОРЫЧЕВ

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

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