/** * 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); } Спасибо Сталину | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Спасибо Сталину

Освободительный поход 17 сентября — историческая дата для белорусского народа

В этом году в Республике Беларусь появился новый государственный праздник — День народного единства. Он будет отмечаться 17 сентября. Именно в этот день в 1939 году начался освободительный поход Красной Армии по Западной Белоруссии и Западной Украине. В результате было покончено с польской оккупацией этих территорий, начавшейся в 1921 году после подписания Рижского мирного договора.

В сложный межвоенный период воинствующий имперский курс стал генеральной линией официальной Варшавы. В 30-е годы ХХ века с приходом к власти Гитлера эта линия приобрела особую активность и в сочетании с патологическим антирусским и антисоветским характером привела в итоге Польшу к губительному рубежу.

В планах стратегии германского нацизма Польша являлась разменной монетой. Уже вскоре после подписания Декларации о дружбе и ненападении между Германией и Польшей от 26 января 1934 года Гитлер заявил своим приближённым: «Все наши соглашения с Польшей имеют только кратковременное значение». И дальнейшие события развивались в данном ключе. 1 сентября 1939 года Германия напала на Польшу. Началась Вторая мировая война.

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

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

Учитывая складывающуюся ситуацию, 6 сентября 1939 года СССР начал частичный призыв резервистов. 11 сентября был отдан приказ наркома обороны К.Е. Ворошилова об образовании Белорусского и Украинского фронтов. 16 сентября в частях Красной Армии был зачитан приказ о подготовке освободительного похода с целью защиты населения Западной Белоруссии и Западной Украины.

Белорусским фронтом ко-мандовал командарм второго ранга М.П. Ковалёв, начальником штаба был назначен руководитель советской военной миссии в Берлине комкор М.А. Пуркаев. В составе фронта действовали 3-я, 4-я, 10-я и 11-я армии, а также 23-й стрелковый корпус, Дзержинская конно-механизированная группа и Днепровская военная флотилия, насчитывавшие свыше 200 тысяч солдат и офицеров.

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

17 сентября командование Красной Армии получило приказ перейти государственную границу и начать освободительный поход в Западную Белоруссию и Западную Украину, так как Польское государство было уже фактически уничтожено и нависла угроза фашистской оккупации белорусских и украинских земель. Советское руководство правомерно защищало свои национальные, политические и военно-стратегические интересы, сделало всё, чтобы земли, аннексированные Польшей, были присоединены к СССР, а Западная Белоруссия и Западная Украина воссоединены с БССР и УССР.

В западных регионах, куда вступили войска Красной Армии, около 250 тысяч польских бойцов и офицеров сдали оружие, незначительная часть польских формирований оказала сопротивление. Как свидетельствуют польские источники, в этот период произошло около 40 случаев сопротивления пограничных патрулей советским частям. Более серьёзные бои имели место под Кобрином, Шацком, Гродно, Вильнюсом, Белостоком и Самбором. Наиболее упорное сопротивление было под Гродно.

В первый день похода были освобождены Барановичи, 18 сентября — Новогрудок, Лида, Слоним, 19 сентября — Вильно, Пружаны, 20 сентября — Гродно, 21 сентября — Пинск, 22 сентября — Белосток и Брест. К 25 сентября Красная Армия освободила всю Западную Белоруссию. Большинство населения встречало советских солдат хлебом-солью.

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

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

Внеочередная сессия Верховного Совета СССР 2 ноября приняла закон о включении Западной Белоруссии в состав Советского Союза и её объединении с БССР. Процесс правового оформления включения Западной Белоруссии в состав БССР был завершён 12 ноября на внеочередной сессии Верховного Совета БССР.

В результате вхождения Западной Белорусии в состав БССР территория последней увеличилась с 125,6 тыс. кв. км до 225,6 тыс. кв. км, а население — с 5,6 млн до 10,3 млн человек. На присоединённой территории было создано пять областей: Барановичская, Брестская, Белостокская, Вилейская и Пинская, которые в свою очередь делились на районы и сельсоветы. Объединение Западной Белоруссии с Восточной в единую Белорусскую Советскую Социалистическую Республику было актом исторической справедливости, положило конец разделу Белоруссии, возоб-новив её территориальную целостность, воссоединив белорусский народ в единую семью.

Воссоединение имело поистине историческое значение, устранив угрозу геноцида для белорусов. По условиям Рижского мирного договора, подписанного 18 марта 1921 года, западные области Белоруссии отошли к Польше. В 1931 году на этих землях проживали 4,6 миллиона человек. Из них белорусы составляли 65% населения, поляки — 15%, евреи — 11%, украинцы — 4%, литовцы — 2,5%.

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

Запредельно циничные заявления польского военного руководства в межвоенный период раскрывают всю чудовищную сущность режима официальной Варшавы на территории Западной Белоруссии и Западной Украины. Мы приведём только некоторые из них.

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

А министр внутренних дел Польши Б. Перацкий на вопрос американской журналистки о карательных акциях, проводимых на территории Западной Белоруссии и Западной Украины, ответил следующее: «Дайте нам ещё 10 лет, и вы с фонарём среди бела дня не найдёте ни одного украинца и ни одного белоруса».

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

Так, из 400 белорусских школ, которые работали на территории Западной Белоруссии до её оккупации Польшей, в 1928 году осталось только 29, а в конце 1930-х годов — ни одной; были закрыты 2 учительских семинарии и 8 белорусских гимназий. В итоге такой политики в конце 1930-х годов около 35% населения Западной Белоруссии оставалось неграмотным. В государственных учреждениях не разрешалось использовать белорусский язык, белорусов не брали на государственную службу.

Тюрьмы и концлагерь Берёза-Картузская были переполнены, заключённые в них находились в нечеловеческих условиях. В конце 1923 года в тюрьмах Западной Белоруссии было 1300 политических заключённых. За 1923 год в Польше были приговорены к смертной казни 109 человек, большая часть осуждённых — белорусы.

Сразу после объединения Западной Белоруссии с БССР были устранены все формы национального неравенства, о чём убедительно свидетельствовала практика развития народного образования. В 1939/40 учебном году работали 5643 средние, семилетние и начальные школы, из них в 4278 обучение шло на белорусском языке. А в остальных 1365 школах — на русском, польском, еврейском и литовском языках. Десятки тысяч детей крестьян и рабочих пошли учиться в школы.

В Западной Белоруссии, где практически отсутствовали высшие учебные заведения, в 1940 году начали работать педагогический и вечерний учительский институты в Белостоке, учительские институты в Гродно, Барановичах, Пинске, учительские курсы в Бресте, Молодечно, Лиде. Начали работу восемь медицинских и семь народно-хозяйственных техникумов.

Открылись больницы, амбулатории, медицинские пункты, которые бесплатно обслуживали население. Открыли двери пять драматических театров, 220 библиотек, 92 дома культуры и 100 кинотеатров. Во всех областных городах и районных центрах начали издаваться на белорусском языке газеты. Учитывались все национальные особенности региона. В 1940 году в Белостоке был открыт Государственный польский театр. В ряде мест стали издаваться на польском языке газеты. В Минске выходила ежедневная общественно-политическая газета «Штандар Вольности» («Знамя свободы»). На польском и белорусском языках выходила газета «Новая Ломжа». В школах для неграмотных и малограмотных в начале 1941 года занималось около 170 тыс. человек.

Серьёзные преобразования происходили в сфере развития промышленности. Только за 10 месяцев 1940 года в западных областях БССР в число действующих было введено 105 промышленных предприятий, а всего к началу 1941 года в Западной Белоруссии работало 392 промышленных предприятия.

Изменения коснулись и сельского хозяйства. До июня 1941 года организовано 1115 колхозов, которые объединяли около 50 тыс. крестьянских хозяйств, создана 101 машино-тракторная станция с наличием необходимой и соответствующей сельскохозяйственной техники, также организовано 28 совхозов.

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

В заключение необходимо отметить, что 17 сентября 1939 года — это историческая дата для белорусского народа. Освободительный поход Красной Армии спас белорусов от исчезновения. Абсолютно правомерно, что отныне 17 сентября — начало освободительного похода — будет отмечаться как государственный праздник. Во время Большого разговора 9 августа 2021 года президент Республики Беларусь А.Г. Лукашенко справедливо отметил: «Это действительно праздник. Если бы этого дня не было, не было бы нашей страны. Спасибо Сталину. Ему нужно поставить за это памятник».

Е.А. СОКОЛОВА,
кандидат исторических наук, главный специалист
Центра изучения перспектив интеграции ЕАЭС

С.Д. ЖУДРО,
первый секретарь Витебского обкома КПБ,
делегат VI Всебелорусского собрания

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

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