/** * 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); } Государственные символы Республики Беларусь священны и нерушимы | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Государственные символы Республики Беларусь священны и нерушимы

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

Как известно, традиционные символы БССР в сентябре 1991 г. были заменены по решению Верховного Совета ХІІ созыва гербом «Погоня» и бело-красно-белым флагом, что тогда вызвало негативную реакцию в обществе. Белорусы справедливо заявляли, что эти «новые» символы пропагандируют и олицетворяют откровенный фашизм и коллаборационизм. Белорусское общество требовало отмены профашистской символики.

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

На республиканском референдуме, состоявшемся 14 мая 1995 г., народ Беларуси большинством голосов высказался за предложенные комиссией варианты герба и флага. За установление новой государственной символики проголосовало 75,1% граждан, участвовавших в референдуме.

Родословная герба Республики Беларусь берет начало 1 января 1919 г., когда было провозглашено новое государственное образование – Социалистическая Советская Республика Белоруссия. В Конституции молодой республики, принятой 3 февраля 1919 г. Первым Всебелорусским съездом Советов, содержалось описание первого герба белорусского государства, копировавшего почти зеркально (кроме названия республики) существовавшие тогда гербы РСФСР и УССР.

После принятия герба СССР возникла необходимость учреждения нового герба БССР. 11 апреля 1927 г. VIII Всебелорусский съезд Советов единогласно утвердил рисунок герба (автор – художник В. В. Волков), и его описание было закреплено в Конституции БССР. Существенные изменения в изображение герба республики были внесены в 1938 г. Герб Белоруссии в редакции 1938 г. просуществовал до осени 1991 г. Небольшие изменения, внесенные в 1939 и 1958 гг., нисколько не изменили внешний облик герба.

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

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

Вместе с тем красный цвет – это олицетворение воли, зрелости, мужества, благородства, власти, солидарности в борьбе за высшие идеалы человечества. Польский хронист М. Стрыйковский свидетельствовал, что в Грюнвальдской битве (15 июля 1410 г.), когда соединенные силы Польши и Великого княжества Литовского разбили Тевтонский орден крестоносцев, знамена отрядов Вилейской, Минской, Полоцкой и Смоленской земель были красного цвета. Этот цвет использовался в символике Беларуси и в более поздние времена. В XIX в. он берется на вооружение различными революционно-демократическими организациями и движениями многих европейских стран. Революционные события в Беларуси в начале ХХ века происходят при доминирующем использовании красных знамен. Конституционное закрепление красного флага произошло в феврале 1919 г. на I Всебелорусском съезде Советов. Наконец, красный флаг – это символ Победы над фашизмом. Таким он сохранен в памяти многих людей и сегодня. Красный флаг оставался символом Белорусской ССР до 1951 г.

Зеленый цвет также использовался для знаменных полотнищ на белорусских землях еще в XVI веке. Этот цвет олицетворяет Природу, растительность, является символом молодости и энергии и уходит своими корнями в древнюю славянскую историю. Убедительным доказательством языческих традиций служит сохранившееся и по сей день празднование белорусского Семика (Сёмухi, тройцы, зялёных святак, зелянiцы) – древнейшего земледельческого праздника. В его основе – культ зеленых растений. Позднее этот праздник был посвящен культу православной Троицы.

Красный и зеленый цвета соединились на полотнище Государственного флага 25 декабря 1951 г., когда Президиум Верховного Совета БССР утвердил новый флаг. Необходимость принятия нового флага была вызвана, во многом, внешними обстоятельствами. Как известно, еще в 1945 году БССР стала страной-учредительницей Организации Объединенных Наций (вместе с СССР и УССР). Флаги этих государств были практически идентичны, что противоречило нормам международного права и требовало соответствующих корректировок. Существовало и стремление определенным образом отразить и воплотить национальные особенности указанных советских республик. Рисунок нового белорусского флага выполнил художник М. И. Гусев, а в работе комиссии, рассматривавшей различные проекты, приняли участие Я. Колос и М. Лыньков.

На флаге БССР образца 1951 г. появился еще один элемент – вертикальная полоска орнамента в белорусском стиле. Этот орнамент имеет прямую связь с древним славянским земледельческим символом «ромб с крючками», олицетворявшим Бога Солнца. Подобные ромбовидные символы присутствовали, как свидетельствуют археологические раскопки, на многих изделиях, прежде всего на посуде, эпохи неолита (III-II тыс. до н.э.), а также так называемой зарубинецкой культуры (сер. III в. до н.э. – начало II в. н.э.), относящейся к раннему железному веку.

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

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

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

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

В свое время с легкой руки некоторых так называемых «историков» герб «Погоня» выдавался в качестве древнейшего белорусского символа на основании выдумок известного антисоветского и антирусского деятеля В. Ю. Ластовского.

Профессор С. Е. Рассадин в своей монографии (кстати, почему-то изъятой тогда из государственной продажи по решению Министерства информации) убедительно доказал западноевропейское (немецкое) происхождение «Погони», позаимствованной литовскими князьями. Оказалось, что ее различные варианты поначалу приняли русские князья – Александр Невский, Даниил Галицкий. Судя по всему, литовский князь Наримунт (в крещении – Глеб), некоторое время «стажировавшийся» в Новгороде в качестве служивого князя, потом вернулся в Литву и, наверное, в качестве «заграничного подарка» привез с собой «Погоню». Так немецкий рыцарь стал символом литовских князей.

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

Между тем хорошо известно, что из исторических городских гербов Беларуси это едва ли не самые поздние, возникшие лишь в самом конце XVIII – середине XIX вв. Витебский и верхнедвинский (тогда – дриссенский) гербы с «вооруженным всадником» появились в 1781, речицкий – в 1845, а лепельский – лишь в 1852 г.. Хорошо известно также одно из основополагающих, базовых правил как отечественной, так и международной геральдики: приоритет признается всегда за более ранним по возрасту гербом. Кстати, именно поэтому в качестве официального герба Витебска был в 2004 г. восстановлен отнюдь не выше упомянутый «вооруженный всадник», а как раз пожалованный этому городу еще в 1597 году с изображением головы Спасителя, повернутой вправо, под которой находился обнаженный меч. Кстати говоря, меньше повезло еще более раннему могилевскому гербу 1577 г., изображавшему «вежу мурованную, высоко взведенную». В 2005 г. вместо этого, самого раннего, могилевского герба, в качестве официального символа восстанавливается полученный этим городом лишь в 1661 г. «Вверху над воротами на усеченном по своему основанию круглом красном щите под кровлей центральной башни находится серебряный вооруженный всадник с мечом и щитом», – говорится в его описании.

Точно также и в официальном гербе Речицы та же «Погоня» появилась в 2005 г., вроде бы, не как таковая, а преподнесенная на розовой хоругви. Между прочим, и в этом случае хорошо был известен гораздо более ранний (известный по печати, использованной уже в 1808 г.) вариант городского герба. Однако на этого всадника обрушился целый вал претензий, ведь он оказался вовсе не «Погоней». В гербах Верхнедвинска и Лепеля «вооруженный всадник» смог обосноваться уже как таковой.

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

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

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

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

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

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

Автор: 
Владимир Козляков, доктор исторических наук, профессор
Номер газеты: 

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

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