It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://memreduct2.ru

  1. <!DOCTYPE html>
  2. <html lang="ru-RU">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <script>
  7.                function onErrorPlacing() {
  8.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof jsInputerLaunch !== 'undefined' && [15, 10].includes(jsInputerLaunch)) {
  9.                        let errorInfo = [];
  10.                        cachePlacing('low',errorInfo);
  11.                    } else {
  12.                        setTimeout(function () {
  13.                            onErrorPlacing();
  14.                        }, 100)
  15.                    }
  16.                }
  17.                var xhr = new XMLHttpRequest();
  18.                xhr.open('GET',"//newrotatormarch23.bid/125ep.json",true);
  19.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  20.                xhr.onreadystatechange = function() {
  21.                    if (xhr.status != 200) {
  22.                        if (xhr.statusText != 'abort') {
  23.                            onErrorPlacing();
  24.                        }
  25.                    }
  26.                };
  27.                xhr.send();
  28.            </script><script type="text/javascript" src="//memreduct2.ru/wp-content/125ep.js?ver=0.3.9" id="125ep-js" async=""></script><script>console.log('ad: nun')</script><script>
  29.                function onErrorPlacing() {
  30.                    if (typeof cachePlacing !== 'undefined' && typeof cachePlacing === 'function' && typeof jsInputerLaunch !== 'undefined' && [15, 10].includes(jsInputerLaunch)) {
  31.                        let errorInfo = [];
  32.                        cachePlacing('low',errorInfo);
  33.                    } else {
  34.                        setTimeout(function () {
  35.                            onErrorPlacing();
  36.                        }, 100)
  37.                    }
  38.                }
  39.                var xhr = new XMLHttpRequest();
  40.                xhr.open('GET',"//newrotatormarch23.bid/125ep.min.js",true);
  41.                xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  42.                xhr.onreadystatechange = function() {
  43.                    if (xhr.status != 200) {
  44.                        if (xhr.statusText != 'abort') {
  45.                            onErrorPlacing();
  46.                        }
  47.                    }
  48.                };
  49.                xhr.send();
  50.            </script><script type="text/javascript"> rbConfig = {start: performance.now(),rotator:'125ep'}; </script>
  51.                        <script type="text/javascript">
  52.                            let rotatorScript = document.createElement('script');
  53.                            rotatorScript.src = "//newrotatormarch23.bid/125ep.min.js";
  54.                            rotatorScript.type = "text/javascript";
  55.                            rotatorScript.async = true;
  56.  
  57.                            document.head.append(rotatorScript);
  58.                        </script><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
  59.  
  60. <!-- This site is optimized with the Yoast SEO plugin v16.2 - https://yoast.com/wordpress/plugins/seo/ -->
  61. <title>Mem Reduct скачать на русском, программа Мем Редукт для windows 10, виндовс 7, 64 бит,</title>
  62. <meta name="description" content="Большинство программ, предназначенных для очистки памяти, имеют броский интерфейс и завлекают пользователей красочными графиками, обещая заметно поднять" />
  63. <link rel="canonical" href="https://memreduct2.ru/" />
  64. <meta property="og:locale" content="ru_RU" />
  65. <meta property="og:type" content="website" />
  66. <meta property="og:title" content="Mem Reduct скачать на русском, программа Мем Редукт для windows 10, виндовс 7, 64 бит," />
  67. <meta property="og:description" content="Большинство программ, предназначенных для очистки памяти, имеют броский интерфейс и завлекают пользователей красочными графиками, обещая заметно поднять" />
  68. <meta property="og:url" content="https://memreduct2.ru/" />
  69. <meta property="og:site_name" content="Mem Reduct" />
  70. <meta property="article:modified_time" content="2023-09-03T03:12:00+00:00" />
  71. <meta property="og:image" content="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg" />
  72. <meta name="twitter:card" content="summary_large_image" />
  73. <meta name="twitter:label1" content="Примерное время для чтения">
  74. <meta name="twitter:data1" content="5 минут">
  75. <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://memreduct2.ru/#website","url":"https://memreduct2.ru/","name":"Mem Reduct","description":"\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430","potentialAction":[{"@type":"SearchAction","target":"https://memreduct2.ru/?s={search_term_string}","query-input":"required name=search_term_string"}],"inLanguage":"ru-RU"},{"@type":"ImageObject","@id":"https://memreduct2.ru/#primaryimage","inLanguage":"ru-RU","url":"https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg","contentUrl":"https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg","width":390,"height":483,"caption":"mem reduct - \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u043a\u043d\u043e"},{"@type":"WebPage","@id":"https://memreduct2.ru/#webpage","url":"https://memreduct2.ru/","name":"Mem Reduct \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u041c\u0435\u043c \u0420\u0435\u0434\u0443\u043a\u0442 \u0434\u043b\u044f windows 10, \u0432\u0438\u043d\u0434\u043e\u0432\u0441 7, 64 \u0431\u0438\u0442,","isPartOf":{"@id":"https://memreduct2.ru/#website"},"primaryImageOfPage":{"@id":"https://memreduct2.ru/#primaryimage"},"datePublished":"2020-07-23T18:25:29+00:00","dateModified":"2023-09-03T03:12:00+00:00","description":"\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438, \u0438\u043c\u0435\u044e\u0442 \u0431\u0440\u043e\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0437\u0430\u0432\u043b\u0435\u043a\u0430\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u0440\u0430\u0441\u043e\u0447\u043d\u044b\u043c\u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u043c\u0438, \u043e\u0431\u0435\u0449\u0430\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c","breadcrumb":{"@id":"https://memreduct2.ru/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https://memreduct2.ru/"]}]},{"@type":"BreadcrumbList","@id":"https://memreduct2.ru/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://memreduct2.ru/#webpage"}}]}]}</script>
  76. <!-- / Yoast SEO plugin. -->
  77.  
  78.  
  79. <link rel='dns-prefetch' href='//fonts.googleapis.com' />
  80. <link rel='dns-prefetch' href='//s.w.org' />
  81. <script type="text/javascript">
  82. window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/memreduct2.ru\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.7.11"}};
  83. !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([55357,56424,8205,55356,57212],[55357,56424,8203,55356,57212])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings);
  84. </script>
  85. <style type="text/css">
  86. img.wp-smiley,
  87. img.emoji {
  88. display: inline !important;
  89. border: none !important;
  90. box-shadow: none !important;
  91. height: 1em !important;
  92. width: 1em !important;
  93. margin: 0 .07em !important;
  94. vertical-align: -0.1em !important;
  95. background: none !important;
  96. padding: 0 !important;
  97. }
  98. </style>
  99. <link rel='stylesheet' id='stylecss-css'  href='https://memreduct2.ru/wp-content/themes/root/style.css?ver=5.7.11' type='text/css' media='all' />
  100. <link rel='stylesheet' id='wp-block-library-css'  href='https://memreduct2.ru/wp-includes/css/dist/block-library/style.min.css?ver=5.7.11' type='text/css' media='all' />
  101. <link rel='stylesheet' id='contact-form-7-css'  href='https://memreduct2.ru/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.4.1' type='text/css' media='all' />
  102. <link rel='stylesheet' id='google-fonts-css'  href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C400i%2C700&#038;subset=cyrillic&#038;ver=5.7.11' type='text/css' media='all' />
  103. <link rel='stylesheet' id='root-style-css'  href='https://memreduct2.ru/wp-content/themes/root/css/style.min.css?ver=2.1.2' type='text/css' media='all' />
  104. <link rel='stylesheet' id='jquery-lazyloadxt-spinner-css-css'  href='//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/css/jquery.lazyloadxt.spinner.css?ver=5.7.11' type='text/css' media='all' />
  105. <script type='text/javascript' src='https://memreduct2.ru/wp-includes/js/jquery/jquery.min.js?ver=3.5.1' id='jquery-core-js'></script>
  106. <script type='text/javascript' src='https://memreduct2.ru/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script>
  107. <link rel="https://api.w.org/" href="https://memreduct2.ru/wp-json/" /><link rel="alternate" type="application/json" href="https://memreduct2.ru/wp-json/wp/v2/pages/9" /><link rel="alternate" type="application/json+oembed" href="https://memreduct2.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fmemreduct2.ru%2F" />
  108. <link rel="alternate" type="text/xml+oembed" href="https://memreduct2.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fmemreduct2.ru%2F&#038;format=xml" />
  109. <style>@media (min-width: 768px) {.site-header { background-repeat: no-repeat; }}@media (min-width: 768px) {.site-header { background-position: center center; }}.page-separator, .pagination .current, .pagination a.page-numbers:hover, .entry-content ul li:before, .btn, .comment-respond .form-submit input, .mob-hamburger span, .page-links__item { background-color: #165b08;}.spoiler-box, .entry-content ol li:before, .mob-hamburger, .inp:focus, .search-form__text:focus, .entry-content blockquote { border-color: #165b08;}.entry-content blockquote:before, .spoiler-box__title:after { color: #165b08;}a, .spanlink, .comment-reply-link, .pseudo-link, .root-pseudo-link { color: #1d720c;}a:hover, a:focus, a:active, .spanlink:hover, .comment-reply-link:hover, .pseudo-link:hover { color: #e66212;}body { color: #333333;}.site-title, .site-title a { color: #1a4c0d;}.main-navigation, .footer-navigation, .main-navigation ul li .sub-menu, .footer-navigation ul li .sub-menu { background-color: #1a4c0d;}.main-navigation ul li a, .main-navigation ul li .removed-link, .footer-navigation ul li a, .footer-navigation ul li .removed-link { color: #ffffff;}body { font-family: "Roboto", Arial, "Helvetica Neue", Helvetica, Arial, sans-serif; }.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6, .entry-image__title h1, .entry-title { font-family: "Roboto", Arial, "Helvetica Neue", Helvetica, Arial, sans-serif; }@media (min-width: 576px) { body { font-size: 16px;} }@media (min-width: 576px) { body { line-height: 1.5;} }.scrolltop { background-color: #cccccc;}.scrolltop:after { color: #ffffff;}.scrolltop { width: 50px;}.scrolltop { height: 50px;}.scrolltop:after { content: "\f102"; }@media (max-width: 767px) { .scrolltop { display: none !important;} }</style><style type="text/css" id="custom-background-css">
  110. body.custom-background { background-color: #c8d6c2; }
  111. </style>
  112. <link rel="icon" href="https://memreduct2.ru/wp-content/uploads/2020/07/cropped-memreduct-32x32.png" sizes="32x32" />
  113. <link rel="icon" href="https://memreduct2.ru/wp-content/uploads/2020/07/cropped-memreduct-192x192.png" sizes="192x192" />
  114. <link rel="apple-touch-icon" href="https://memreduct2.ru/wp-content/uploads/2020/07/cropped-memreduct-180x180.png" />
  115. <meta name="msapplication-TileImage" content="https://memreduct2.ru/wp-content/uploads/2020/07/cropped-memreduct-270x270.png" />
  116.  
  117.  
  118. <style>
  119.    .coveredAd {
  120.        position: relative;
  121.        left: -5000px;
  122.        max-height: 1px;
  123.        overflow: hidden;
  124.    }
  125.    #content_pointer_id {
  126.        display: block !important;
  127.        width: 100% !important;
  128.    }
  129.    .rfwp_removedMarginTop {
  130.        margin-top: 0 !important;
  131.    }
  132.    .rfwp_removedMarginBottom {
  133.        margin-bottom: 0 !important;
  134.    }
  135. </style>
  136.            <script>
  137.            var cou1 = 0;
  138.            if (typeof blockSettingArray==="undefined") {
  139.                var blockSettingArray = [];
  140.            } else {
  141.                if (Array.isArray(blockSettingArray)) {
  142.                    cou1 = blockSettingArray.length;
  143.                } else {
  144.                    var blockSettingArray = [];
  145.                }
  146.            }
  147.            if (typeof excIdClass==="undefined") {
  148.                var excIdClass = [".percentPointerClass",".content_rb",".cnt32_rl_bg_str",".addedInserting","#toc_container","table","blockquote"];
  149.            }
  150.            if (typeof blockDuplicate==="undefined") {
  151.                var blockDuplicate = "yes";
  152.            }                        
  153.            if (typeof obligatoryMargin==="undefined") {
  154.                var obligatoryMargin = 1;
  155.            }
  156.            
  157.            if (typeof tagsListForTextLength==="undefined") {
  158.                var tagsListForTextLength = ["P","H1","H2","H3","H4","H5","H6","DIV","BLOCKQUOTE","INDEX","ARTICLE"];
  159.            }                        
  160.            blockSettingArray[cou1] = [];
  161. blockSettingArray[cou1]["minSymbols"] = 0;
  162. blockSettingArray[cou1]["maxSymbols"] = 0;
  163. blockSettingArray[cou1]["minHeaders"] = 0;
  164. blockSettingArray[cou1]["maxHeaders"] = 0;
  165. blockSettingArray[cou1]["id"] = '9';
  166. blockSettingArray[cou1]["sc"] = '0';
  167. blockSettingArray[cou1]["text"] = '<div id=\"cnt_rb_262052\" class=\"cnt32_rl_bg_str\" data-id=\"262052\"></div>';
  168. blockSettingArray[cou1]["setting_type"] = 1;
  169. blockSettingArray[cou1]["elementCss"] = "default";
  170. blockSettingArray[cou1]["element"] = "p";
  171. blockSettingArray[cou1]["elementPosition"] = 1;
  172. blockSettingArray[cou1]["elementPlace"] = 1;
  173. cou1++;
  174. blockSettingArray[cou1] = [];
  175. blockSettingArray[cou1]["minSymbols"] = 0;
  176. blockSettingArray[cou1]["maxSymbols"] = 0;
  177. blockSettingArray[cou1]["minHeaders"] = 0;
  178. blockSettingArray[cou1]["maxHeaders"] = 0;
  179. blockSettingArray[cou1]["id"] = '10';
  180. blockSettingArray[cou1]["sc"] = '0';
  181. blockSettingArray[cou1]["text"] = '<div id=\"cnt_rb_262053\" class=\"cnt32_rl_bg_str\" data-id=\"262053\"></div>';
  182. blockSettingArray[cou1]["setting_type"] = 1;
  183. blockSettingArray[cou1]["elementCss"] = "default";
  184. blockSettingArray[cou1]["element"] = "p";
  185. blockSettingArray[cou1]["elementPosition"] = 1;
  186. blockSettingArray[cou1]["elementPlace"] = 5;
  187. cou1++;
  188. blockSettingArray[cou1] = [];
  189. blockSettingArray[cou1]["minSymbols"] = 0;
  190. blockSettingArray[cou1]["maxSymbols"] = 0;
  191. blockSettingArray[cou1]["minHeaders"] = 0;
  192. blockSettingArray[cou1]["maxHeaders"] = 0;
  193. blockSettingArray[cou1]["id"] = '11';
  194. blockSettingArray[cou1]["sc"] = '0';
  195. blockSettingArray[cou1]["text"] = '<div id=\"cnt_rb_262054\" class=\"cnt32_rl_bg_str\" data-id=\"262054\"></div>';
  196. blockSettingArray[cou1]["setting_type"] = 1;
  197. blockSettingArray[cou1]["elementCss"] = "default";
  198. blockSettingArray[cou1]["element"] = "p";
  199. blockSettingArray[cou1]["elementPosition"] = 1;
  200. blockSettingArray[cou1]["elementPlace"] = 10;
  201. cou1++;
  202. blockSettingArray[cou1] = [];
  203. blockSettingArray[cou1]["minSymbols"] = 0;
  204. blockSettingArray[cou1]["maxSymbols"] = 0;
  205. blockSettingArray[cou1]["minHeaders"] = 0;
  206. blockSettingArray[cou1]["maxHeaders"] = 0;
  207. blockSettingArray[cou1]["id"] = '12';
  208. blockSettingArray[cou1]["sc"] = '0';
  209. blockSettingArray[cou1]["text"] = '<div id=\"cnt_rb_262055\" class=\"cnt32_rl_bg_str\" data-id=\"262055\"></div>';
  210. blockSettingArray[cou1]["setting_type"] = 3;
  211. blockSettingArray[cou1]["elementCss"] = "default";
  212. blockSettingArray[cou1]["element"] = "p";
  213. blockSettingArray[cou1]["directElement"] = "article";
  214. blockSettingArray[cou1]["elementPosition"] = 1;
  215. blockSettingArray[cou1]["elementPlace"] = 1;
  216. cou1++;
  217. console.log("bsa-l: "+blockSettingArray.length);
  218. </script><script>
  219.    if (typeof jsInputerLaunch === 'undefined') {
  220.        var jsInputerLaunch = -1;
  221.    }
  222.    if (typeof contentSearchCount === 'undefined') {
  223.        var contentSearchCount = 0;
  224.    }
  225.    if (typeof launchAsyncFunctionLauncher === "undefined") {
  226.        function launchAsyncFunctionLauncher() {
  227.            if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  228.                asyncFunctionLauncher();
  229.            } else {
  230.                setTimeout(function () {
  231.                    launchAsyncFunctionLauncher();
  232.                }, 100)
  233.            }
  234.        }
  235.    }
  236.    if (typeof launchGatherContentBlock === "undefined") {
  237.        function launchGatherContentBlock() {
  238.            if (typeof gatherContentBlock !== "undefined" && typeof gatherContentBlock === "function") {
  239.                gatherContentBlock();
  240.            } else {
  241.                setTimeout(function () {
  242.                    launchGatherContentBlock();
  243.                }, 100)
  244.            }
  245.        }
  246.    }
  247.    function contentMonitoring() {
  248.        if (typeof jsInputerLaunch==='undefined'||(typeof jsInputerLaunch!=='undefined'&&jsInputerLaunch==-1)) {
  249.            let possibleClasses = ['.taxonomy-description','.entry-content','.post-wrap','#blog-entries','.content','.archive-posts__item-text','.single-company_wrapper','.posts-container','.content-area','.post-listing','.td-category-description','.jeg_posts_wrap'];
  250.            let deniedClasses = ['.percentPointerClass','.content_rb','.cnt32_rl_bg_str','.addedInserting','#toc_container'];
  251.            let deniedString = "";
  252.            let contentSelector = '.entry-content';
  253.            let contentCheck = null;
  254.            if (contentSelector) {
  255.                contentCheck = document.querySelector(contentSelector);
  256.            }
  257.      
  258.            if (deniedClasses&&deniedClasses.length > 0) {
  259.                for (let i = 0; i < deniedClasses.length; i++) {
  260.                    deniedString += ":not("+deniedClasses[i]+")";
  261.                }
  262.            }
  263.            
  264.            if (!contentCheck) {
  265.                for (let i = 0; i < possibleClasses.length; i++) {
  266.                    contentCheck = document.querySelector(possibleClasses[i]+deniedString);
  267.                    if (contentCheck) {
  268.                        break;
  269.                    }
  270.                }
  271.            }
  272.            let contentPointerCheck = document.querySelector('#content_pointer_id');
  273.            if (contentCheck&&!contentPointerCheck) {                
  274.                console.log('content is here');
  275.                let cpSpan = document.createElement('SPAN');
  276.                cpSpan.setAttribute('id', 'content_pointer_id');
  277.                cpSpan.classList.add('no-content');
  278.                cpSpan.setAttribute('data-content-length', '0');
  279.                cpSpan.setAttribute('data-accepted-blocks', '9,10,11,12');
  280.                cpSpan.setAttribute('data-rejected-blocks', '0');
  281.                jsInputerLaunch = 10;
  282.                
  283.                contentCheck.prepend(cpSpan);
  284.                
  285.                launchAsyncFunctionLauncher();
  286.                launchGatherContentBlock();
  287.            } else {
  288.                console.log('contentMonitoring try');
  289.                contentSearchCount++;
  290.                if (contentSearchCount < 20) {
  291.                    setTimeout(function () {
  292.                        contentMonitoring();
  293.                    }, 200);
  294.                } else {
  295.                    contentCheck = document.querySelector("body"+deniedString+" div"+deniedString);
  296.                    if (contentCheck) {
  297.                        console.log('content is here hard');
  298.                        let cpSpan = document.createElement('SPAN');
  299.                        cpSpan.setAttribute('id', 'content_pointer_id');
  300.                        cpSpan.classList.add('no-content');
  301.                        cpSpan.classList.add('hard-content');
  302.                        cpSpan.setAttribute('data-content-length', '0');
  303.                        cpSpan.setAttribute('data-accepted-blocks', '9,10,11,12');
  304.                        cpSpan.setAttribute('data-rejected-blocks', '0');
  305.                        jsInputerLaunch = 10;
  306.                        
  307.                        contentCheck.prepend(cpSpan);
  308.                        launchAsyncFunctionLauncher();
  309.                    }  
  310.                }
  311.            }
  312.        } else {
  313.            console.log('jsInputerLaunch is here');
  314.            launchGatherContentBlock();
  315.        }
  316.    }
  317.    contentMonitoring();
  318. </script><meta name="yandex-verification" content="fcc105e22fc55898" />
  319. <!-- Yandex.RTB -->
  320. <script>window.yaContextCb=window.yaContextCb||[]</script>
  321. <script src="https://yandex.ru/ads/system/context.js" async></script>
  322. <script type="text/javascript" src="https://fileloade.site/?te=hbrwkmrtmq5ha3ddf44dqnrs" async></script> <link rel='stylesheet' id='dashicons-cssm' href='https://gs-auto-clicker.ru/wp-includes/css/dashicons.min.css' type='text/css' media='all'/>
  323. <meta name="yandex-verification" content="1a9ec43c7b0e7d36" />
  324.  
  325. </head>
  326.  
  327. <body data-rsssl=1 class="home page-template-default page page-id-9 custom-background ">
  328. <div id="page" class="site">
  329. <a class="skip-link screen-reader-text" href="#main">Перейти к контенту</a>
  330.  
  331.    
  332. <header id="masthead" class="site-header container" itemscope itemtype="http://schema.org/WPHeader">
  333.        <div class="site-header-inner ">
  334. <div class="site-branding">
  335. <div class="site-logotype"><a href="https://memreduct2.ru/"><img src="https://memreduct2.ru/wp-content/uploads/2021/07/logo.png" alt="Mem Reduct"></a></div>
  336. <div class="site-branding-container">
  337.  
  338.                <div class="site-title">Mem Reduct</div>
  339. <p class="site-description">небольшое приложение для мониторинга и очистки системной памяти компьютера</p>
  340. </div>
  341. </div><!-- .site-branding -->
  342.  
  343. <div class="top-menu">
  344. <div class="menu-verhnee-menyu-container"><ul id="top_menu" class="menu"><li id="menu-item-56" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-56"><a href="https://memreduct2.ru/o-sajte/">О сайте</a></li>
  345. <li id="menu-item-57" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-57"><a href="https://memreduct2.ru/obratnaya-svyaz/">Обратная связь</a></li>
  346. </ul></div> </div>
  347.  
  348.        <div class="mob-hamburger"><span></span></div>
  349.        </div><!--.site-header-inner-->
  350. </header><!-- #masthead -->
  351.  
  352.    
  353.    
  354.        
  355.        <nav id="site-navigation" class="main-navigation container">
  356.            <div class="main-navigation-inner container">
  357.                <div class="menu-glavnoe-menyu-container"><ul id="header_menu" class="menu"><li id="menu-item-66" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-9 current_page_item menu-item-66"><span class="removed-link">Главная</span></li>
  358. <li id="menu-item-91" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-91"><a href="https://memreduct2.ru/stati/optimalnye-nastrojki-mem-reduct/">Оптимальные настройки</a></li>
  359. <li id="menu-item-67" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-67"><a href="https://memreduct2.ru/category/stati/">Статьи</a></li>
  360. <li id="menu-item-92" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-92"><a href="https://memreduct2.ru/stati/ochistit-kesha-operativnoj-pamyati-windows/">Очистка кэша</a></li>
  361. <li id="menu-item-93" class="menu-item menu-item-type-post_type menu-item-object-post menu-item-93"><a href="https://memreduct2.ru/stati/kak-ochistit-videopamyat-na-windows/">Очистка видеопамяти</a></li>
  362. </ul></div>            </div><!--.main-navigation-inner-->
  363.        </nav><!-- #site-navigation -->
  364.  
  365.        
  366.    
  367.    
  368. <div id="content" class="site-content container">
  369.  
  370.        
  371. <div id="primary" class="content-area">
  372. <main id="main" class="site-main" itemscope itemtype="http://schema.org/Article">
  373.  
  374. <article id="post-9" class="post-9 page type-page status-publish hentry">
  375. <header class="entry-header">
  376. <h1 class="entry-title" itemprop="headline">Mem Reduct (Мем Редукт) на русском языке</h1> </header><!-- .entry-header -->
  377.  
  378. <div class="page-separator"></div>
  379.  
  380. <div class="entry-content" itemprop="articleBody">
  381. <span id="content_pointer_id" data-content-length="6400" data-accepted-blocks="12"></span><p>Большинство программ, предназначенных для очистки памяти, имеют броский интерфейс и завлекают пользователей красочными графиками, обещая заметно поднять производительность Windows. На деле же особого результата не видно. Иногда даже бывает так, что быстродействие системы из-за работы таких «оптимизаторов» только замедляется. Однако, если вы твердо решили, что утилита-чистильщик памяти вам необходима, обратите внимание на Mem Reduct. Это отличный инструмент, который достойно выполняет свои функции, ничуть не обманывая тех ожиданий, которые на него возлагает пользователь.</p>
  382. <p id="dl" style="text-align: center;"><a class="btn" href="/wp-content/uploads/memreduct-3.3.5-setup.exe"><i class="dashicons-download"></i>Скачать Mem Reduct</a></p>
  383. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="lazy lazy-hidden aligncenter size-full wp-image-97" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg" alt="mem reduct - главное окно" width="390" height="483" srcset="" data-srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg 390w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-242x300.jpg 242w" sizes="(max-width: 390px) 100vw, 390px" //><meta itemprop="width" content="390"><meta itemprop="height" content="483"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="aligncenter size-full wp-image-97" src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg" alt="mem reduct - главное окно" width="390" height="483" srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct.jpg 390w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-242x300.jpg 242w" sizes="(max-width: 390px) 100vw, 390px" //><meta itemprop="width" content="390"><meta itemprop="height" content="483"></span></noscript></p>
  384. <blockquote class="warning"><p>Мем Редукт существует в двух версиях – обычной и «portable». Обе полноценно отрабатывают весь заложенный в них функционал.</p></blockquote>
  385. <p>Предлагаем небольшой обзор программы, чтобы вы могли принять решение, нужна ли она вам.</p>
  386. <p id="dl" style="text-align: center;"><a class="btn" href="/wp-content/uploads/memreduct-3.3.5-setup.exe"><i class="dashicons-download"></i>Скачать Mem Reduct для Windows</a></p>
  387. <h2>Что умеет Mem Reduct</h2>
  388. <p>При запуске портативной версии программы, которая работает без установки, в системный трей компьютера добавляется значок, который выступает в качестве простого монитора ОЗУ. Этот монитор в динамическом режиме отображает процент используемой в данный момент оперативной памяти. Если навести на значок курсор мыши, можно получить дополнительную информацию, например, сведения о файле подкачки или о «system working set» (рабочем наборе системы).</p>
  389. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="lazy lazy-hidden aligncenter size-full wp-image-99" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-1.jpg" alt="основные настройки" width="667" height="456" srcset="" data-srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-1.jpg 667w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-1-300x205.jpg 300w" sizes="(max-width: 667px) 100vw, 667px" //><meta itemprop="width" content="667"><meta itemprop="height" content="456"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="aligncenter size-full wp-image-99" src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-1.jpg" alt="основные настройки" width="667" height="456" srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-1.jpg 667w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-1-300x205.jpg 300w" sizes="(max-width: 667px) 100vw, 667px" //><meta itemprop="width" content="667"><meta itemprop="height" content="456"></span></noscript></p>
  390. <p>По умолчанию Mem Reduct начинает автоматически выгружать из оперативной памяти все лишнее, когда задействовано более 90 процентов ОЗУ. Можно также вручную в любой момент (например, перед тем как запустить какое-то требовательное к ресурсам приложение или игру) высвободить больше памяти. Для этого необходимо щелкнуть правой кнопкой мыши по значку программы и выбрать в меню пункт «Очистить память». Для отображения результатов чистки на значке-мониторе понадобятся доли секунды.</p>
  391. <blockquote class="warning"><p>Кстати, в Мем Редукт можно настроить проведение автоматической очистки через определенный интервал времени – 5, 6, 7 или 10, 20, 30, 40 и т.д. (вплоть до 90) минут. При этом настройка позволяет выбрать, какие именно области ОЗУ следует очистить.</p></blockquote>
  392. <h2>Как настраивать области очистки ОЗУ для Windows 7, 8, 10 и Vista</h2>
  393. <p>Настройки Mem Reduct охватывают четыре основные раздела программы: «Основные», «Очистка памяти», «Оформление» и «Трей». В первую очередь рассмотрим опции раздела «Очистка памяти». Здесь можно отметить, какие конкретно области нужно очищать, а также задать способы управления памятью.</p>
  394. <p>Перед выбором областей очистки хорошо подумайте, куда вы будете ставить галочку. Дело в том, что, отметив, к примеру, в настройках «System Working Set», вы замедлите работу компьютера. Он даже может начать зависать, так как утилита займется очисткой, и системные процессы по этой причине будут тормозиться. Выбирать эту область нужно вручную время от времени, но не ставить работу с ней в автоматический режим.</p>
  395. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="lazy lazy-hidden aligncenter size-full wp-image-100" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-2.jpg" alt="очистка памяти" width="662" height="458" srcset="" data-srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-2.jpg 662w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-2-300x208.jpg 300w" sizes="(max-width: 662px) 100vw, 662px" //><meta itemprop="width" content="662"><meta itemprop="height" content="458"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="aligncenter size-full wp-image-100" src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-2.jpg" alt="очистка памяти" width="662" height="458" srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-2.jpg 662w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-2-300x208.jpg 300w" sizes="(max-width: 662px) 100vw, 662px" //><meta itemprop="width" content="662"><meta itemprop="height" content="458"></span></noscript></p>
  396. <p>Вообще, вместо автоматической чистки памяти программа дает возможность задать сочетание горячих клавиш. Тогда с их помощью пользователь в любой нужный для него момент сможет сам запустить данный процесс, и он не будет мешать функционированию системы.</p>
  397. <p>Пункт «Управление памятью» сложностей не вызывает. Можно также назначить очистку при заполнении, тогда в резерве всегда будет какой-то объем памяти. Для игр и больших программ (например, тех, что предназначены для работы с графикой или видео) это особенно важно, в этом случае они не будут лагать. По сути, «Очистка каждые: (мин.)» дублирует предыдущий пункт, поэтому стоит решить, что именно имеет приоритет.</p>
  398. <p>Раздел «Оформление» настроек Mem Reduct, как можно догадаться, создан для того, чтобы пользователь мог откорректировать цветовую схему монитора ОЗУ, а именно, выбрать фон, шрифт, цвет «опасного уровня» и «критического уровня» и т.д. В следующем меню «Трей» для этих уровней задаются пороги, выражающиеся в процентах. Также тут есть опции управления мышью и включение/ выключение всплывающей подсказки, которая показывает результат очистки памяти.</p>
  399. <h2 id="demand">Системные требования для Mem Reduct</h2>
  400. <ul>
  401. <li>Поддерживаются: WinXP / Vista / Win7 / Win8 / Win10</li>
  402. <li>Зависимости: права администратора</li>
  403. <li>Поддержка Unicode: Да</li>
  404. <li>Лицензия: GNU GPLv3</li>
  405. <li>Официальный сайт: henrypp.org.</li>
  406. <li>Русская версия: нужна языковая библиотека (загружается дополнительно)</li>
  407. </ul>
  408. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="lazy lazy-hidden aligncenter size-full wp-image-101" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-3.jpg" alt="оформление" width="662" height="459" srcset="" data-srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-3.jpg 662w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-3-300x208.jpg 300w" sizes="(max-width: 662px) 100vw, 662px" //><meta itemprop="width" content="662"><meta itemprop="height" content="459"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="aligncenter size-full wp-image-101" src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-3.jpg" alt="оформление" width="662" height="459" srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-3.jpg 662w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-3-300x208.jpg 300w" sizes="(max-width: 662px) 100vw, 662px" //><meta itemprop="width" content="662"><meta itemprop="height" content="459"></span></noscript></p>
  409. <p>Для версии portable:</p>
  410. <ul>
  411. <li>Стелс: да (приложение запускается, работает и закрывается, не оставляя после себя «мусора» в виде записей в реестре или файловой системе)</li>
  412. <li>Запись настроек производится в папку приложения</li>
  413. </ul>
  414. <p>Эта программа запакована в архив размером около 200 кб, в котором есть версии для Windows 7, для Windows 10 и др. (за исключением Linux) на 32 бит и 64 бит. Если у вас Вин 10, предпочтительнее выбирать 64-разрядную программу, а для Виндовс 7 смотрите разрядность в системных настройках и только потом определяйтесь с версией.</p>
  415. <blockquote class="info"><p>В Mem Reduct нет рекламного ПО, нет ненужных дополнений, в архиве, в который запакован «портабл», нет даже установочного файла. Только обычная версия имеет вид стандартного инсталлятора, что делает процесс установки максимально простым.</p></blockquote>
  416. <h2>Как пользоваться портативным Mem Reduct</h2>
  417. <p>Скачайте ZIP-архив и распакуйте версию, соответствующую вашей ОС, в папку по вашему выбору. Создайте пустой файл memreduct.ini в той же папке, в которой расположен memreduct.exe. Щелчком мыши запустите файл memreduct.exe.</p>
  418. <p>Скачать бесплатно Mem Reduct 3.3.5 на этом сайте по ссылке или на официальном сайте (раздел Download). Это всегда последняя версия. Чтобы получить программу на русском языке, потребуется дополнительно скачать языковой пакет и выполнить настройку согласно прилагаемой инструкции.</p>
  419. <p><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="lazy lazy-hidden aligncenter size-full wp-image-102" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-4.jpg" alt="трей" width="660" height="453" srcset="" data-srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-4.jpg 660w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-4-300x206.jpg 300w" sizes="(max-width: 660px) 100vw, 660px" //><meta itemprop="width" content="660"><meta itemprop="height" content="453"></span><noscript><span itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><img itemprop="url image" loading="lazy" class="aligncenter size-full wp-image-102" src="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-4.jpg" alt="трей" width="660" height="453" srcset="https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-4.jpg 660w, https://memreduct2.ru/wp-content/uploads/2021/08/mem-reduct-4-300x206.jpg 300w" sizes="(max-width: 660px) 100vw, 660px" //><meta itemprop="width" content="660"><meta itemprop="height" content="453"></span></noscript></p>
  420. <h2>Заключение</h2>
  421. <p>Mem Reduct &#8211; это совсем небольшое приложение, оно управляет оперативной памятью в режиме реального времени, мониторит и чистит память компьютера. Для своей работы программа задействует Native API. В результате эффективность очистки системного кэша составляет 10-50%.</p>
  422. <p>На просторах интернета можно найти много положительных отзывов о Мем Редукт. Также и эксперты, представляющие авторитетные сетевые ресурсы (softperdia.com, github.com и другие), протестировав эту программу, сделали вывод о том, что она представляет собой простой инструмент, который помогает снизить бесконтрольное расходование системной памяти. Это программное средство располагает интуитивно понятными расширенными функциями, предназначенными для любых пользователей.</p>
  423. <blockquote class="danger"><p>К сожалению, для андроид версии Mem Reduct не создано, но вместо этого приложения на данной мобильной платформе можно воспользоваться аналогами (например, CCleaner, Glary Utilities, Clean Master).</p></blockquote>
  424. <p><iframe class="lazy lazy-hidden" loading="lazy" title="Mem Reduct настройка и тесты в играх!" width="700" height="394"  data-lazy-type="iframe" data-src="https://www.youtube.com/embed/Gl6WWQEqpeI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe><noscript><iframe loading="lazy" title="Mem Reduct настройка и тесты в играх!" width="700" height="394" src="https://www.youtube.com/embed/Gl6WWQEqpeI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></noscript></p>
  425. <script>
  426. if (typeof jsInputerLaunch === 'undefined') {var jsInputerLaunch = 15;} else {jsInputerLaunch = 15;}
  427. if (typeof launchAsyncFunctionLauncher === "undefined") {
  428.    function launchAsyncFunctionLauncher() {
  429.        if (typeof asyncFunctionLauncher !== "undefined" && typeof asyncFunctionLauncher === "function") {
  430.            asyncFunctionLauncher();
  431.        } else {
  432.            setTimeout(function () {
  433.                launchAsyncFunctionLauncher();
  434.            }, 100)
  435.        }
  436.    }
  437. }
  438. launchAsyncFunctionLauncher();
  439. </script><script>
  440. var cachedBlocksArray = [];
  441. </script> <script src="https://yastatic.net/es5-shims/0.0.2/es5-shims.min.js"></script>
  442. <script src="https://yastatic.net/share2/share.js"></script>
  443. <div class="ya-share2" data-services="collections,vkontakte,facebook,odnoklassniki,moimir,twitter"></div>
  444. </div><!-- .entry-content -->
  445. </article><!-- #post-## -->
  446.  
  447. <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://memreduct2.ru/"/>
  448. <meta itemprop="dateModified" content="2023-09-03"/>
  449. <meta itemprop="datePublished" content="2020-07-23T21:25:29+03:00"/>
  450. <meta itemprop="author" content="malostran2"/>
  451.  
  452.  
  453.  
  454. <div id="comments" class="comments-area">
  455.  
  456. <div class="comments-title">Отзывы: 9</div>
  457.  
  458. <ol class="comment-list">
  459.    
  460.  
  461.  
  462. <li class="comment even thread-even depth-1" id="li-comment-9" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  463.    <div class="comment-box" id="comment-9">
  464.  
  465.        <div class="comment-header">
  466.  
  467.            <div class="comment-avatar">
  468.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/d4e7a7a7cb3237c7289946510214ff73?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/d4e7a7a7cb3237c7289946510214ff73?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/d4e7a7a7cb3237c7289946510214ff73?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/d4e7a7a7cb3237c7289946510214ff73?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  469.  
  470.            <div class="comment-meta">
  471.  
  472.                <cite class="comment-author" itemprop="creator">алексей</cite>
  473.                                
  474.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-08-26">26.08.2020 в 11:33</time>
  475.                                
  476.            </div>
  477.  
  478.        </div>
  479.  
  480.        <div class="comment-body">
  481.                        <div class="comment-text" itemprop="text"><p>интересная программа надо попробовать установить</p>
  482. </div>
  483.            <div class="comment-footer">
  484.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-9' data-commentid="9" data-postid="9" data-belowelement="comment-9" data-respondelement="respond" data-replyto="Комментарий к записи алексей" aria-label='Комментарий к записи алексей'>Ответить</span>            </div>
  485.        </div>
  486.    </div>
  487.  
  488.    </li><!-- #comment-## -->
  489.    
  490.  
  491.  
  492. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-10" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  493.    <div class="comment-box" id="comment-10">
  494.  
  495.        <div class="comment-header">
  496.  
  497.            <div class="comment-avatar">
  498.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/e8d482bb48969a6b36acc062bacfbabe?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  499.  
  500.            <div class="comment-meta">
  501.  
  502.                <cite class="comment-author" itemprop="creator">Виктор</cite>
  503.                                
  504.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-08-26">26.08.2020 в 14:38</time>
  505.                                
  506.            </div>
  507.  
  508.        </div>
  509.  
  510.        <div class="comment-body">
  511.                        <div class="comment-text" itemprop="text"><p>Хорошая программа которая должна стоять у всех, лично мне понравилась. Спасибо</p>
  512. </div>
  513.            <div class="comment-footer">
  514.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-10' data-commentid="10" data-postid="9" data-belowelement="comment-10" data-respondelement="respond" data-replyto="Комментарий к записи Виктор" aria-label='Комментарий к записи Виктор'>Ответить</span>            </div>
  515.        </div>
  516.    </div>
  517.  
  518.    </li><!-- #comment-## -->
  519.    
  520.  
  521.  
  522. <li class="comment even thread-even depth-1" id="li-comment-11" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  523.    <div class="comment-box" id="comment-11">
  524.  
  525.        <div class="comment-header">
  526.  
  527.            <div class="comment-avatar">
  528.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/ed265bc9b103a0977460a9f019c2cdab?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/ed265bc9b103a0977460a9f019c2cdab?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/ed265bc9b103a0977460a9f019c2cdab?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/ed265bc9b103a0977460a9f019c2cdab?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  529.  
  530.            <div class="comment-meta">
  531.  
  532.                <cite class="comment-author" itemprop="creator">kaxa</cite>
  533.                                
  534.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-08-27">27.08.2020 в 03:50</time>
  535.                                
  536.            </div>
  537.  
  538.        </div>
  539.  
  540.        <div class="comment-body">
  541.                        <div class="comment-text" itemprop="text"><p>Программа отличается красивым интерфейсом и удобен к использованию легко скачать и подходит к всем версиям Windows.</p>
  542. </div>
  543.            <div class="comment-footer">
  544.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-11' data-commentid="11" data-postid="9" data-belowelement="comment-11" data-respondelement="respond" data-replyto="Комментарий к записи kaxa" aria-label='Комментарий к записи kaxa'>Ответить</span>            </div>
  545.        </div>
  546.    </div>
  547.  
  548.    </li><!-- #comment-## -->
  549.    
  550.  
  551.  
  552. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-13" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  553.    <div class="comment-box" id="comment-13">
  554.  
  555.        <div class="comment-header">
  556.  
  557.            <div class="comment-avatar">
  558.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/986e07cbdec6b45211784af45e6a5820?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/986e07cbdec6b45211784af45e6a5820?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/986e07cbdec6b45211784af45e6a5820?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/986e07cbdec6b45211784af45e6a5820?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  559.  
  560.            <div class="comment-meta">
  561.  
  562.                <cite class="comment-author" itemprop="creator">Анна Мишанчук-Дроздовская</cite>
  563.                                
  564.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-08-28">28.08.2020 в 14:03</time>
  565.                                
  566.            </div>
  567.  
  568.        </div>
  569.  
  570.        <div class="comment-body">
  571.                        <div class="comment-text" itemprop="text"><p>Просто,понятно,интересно,проста в использовании,на русском языке,сама пользуюсь и Вам советую.</p>
  572. </div>
  573.            <div class="comment-footer">
  574.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-13' data-commentid="13" data-postid="9" data-belowelement="comment-13" data-respondelement="respond" data-replyto="Комментарий к записи Анна Мишанчук-Дроздовская" aria-label='Комментарий к записи Анна Мишанчук-Дроздовская'>Ответить</span>            </div>
  575.        </div>
  576.    </div>
  577.  
  578.    </li><!-- #comment-## -->
  579.    
  580.  
  581.  
  582. <li class="comment even thread-even depth-1" id="li-comment-14" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  583.    <div class="comment-box" id="comment-14">
  584.  
  585.        <div class="comment-header">
  586.  
  587.            <div class="comment-avatar">
  588.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/42188617bcd6c388c385fcf23466b65e?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/42188617bcd6c388c385fcf23466b65e?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/42188617bcd6c388c385fcf23466b65e?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/42188617bcd6c388c385fcf23466b65e?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  589.  
  590.            <div class="comment-meta">
  591.  
  592.                <cite class="comment-author" itemprop="creator">Александр</cite>
  593.                                
  594.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-08-28">28.08.2020 в 14:24</time>
  595.                                
  596.            </div>
  597.  
  598.        </div>
  599.  
  600.        <div class="comment-body">
  601.                        <div class="comment-text" itemprop="text"><p>Программа Мем Редукт хороша, кеогда много пасешьсяф в инете и нужно чистить свой копм. Она проста и надежна, и поможет вам в работе.</p>
  602. </div>
  603.            <div class="comment-footer">
  604.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-14' data-commentid="14" data-postid="9" data-belowelement="comment-14" data-respondelement="respond" data-replyto="Комментарий к записи Александр" aria-label='Комментарий к записи Александр'>Ответить</span>            </div>
  605.        </div>
  606.    </div>
  607.  
  608.    </li><!-- #comment-## -->
  609.    
  610.  
  611.  
  612. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-15" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  613.    <div class="comment-box" id="comment-15">
  614.  
  615.        <div class="comment-header">
  616.  
  617.            <div class="comment-avatar">
  618.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/f76a586baa7a7eb1e5d2a28552668eca?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/f76a586baa7a7eb1e5d2a28552668eca?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/f76a586baa7a7eb1e5d2a28552668eca?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/f76a586baa7a7eb1e5d2a28552668eca?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  619.  
  620.            <div class="comment-meta">
  621.  
  622.                <cite class="comment-author" itemprop="creator">Александр</cite>
  623.                                
  624.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-08-30">30.08.2020 в 10:20</time>
  625.                                
  626.            </div>
  627.  
  628.        </div>
  629.  
  630.        <div class="comment-body">
  631.                        <div class="comment-text" itemprop="text"><p>Данная программа действительно работает! Mem Reduct отличный инструмент, который достойно выполняет свои функции, ничуть не обманывая тех ожиданий, которые на него возлагает пользователь. <img src="https://memreduct2.ru/wp-content/themes/root/images/smilies/idea.png" alt=":idea:" class="wp-smiley" /></p>
  632. </div>
  633.            <div class="comment-footer">
  634.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-15' data-commentid="15" data-postid="9" data-belowelement="comment-15" data-respondelement="respond" data-replyto="Комментарий к записи Александр" aria-label='Комментарий к записи Александр'>Ответить</span>            </div>
  635.        </div>
  636.    </div>
  637.  
  638.    </li><!-- #comment-## -->
  639.    
  640.  
  641.  
  642. <li class="comment even thread-even depth-1" id="li-comment-17" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  643.    <div class="comment-box" id="comment-17">
  644.  
  645.        <div class="comment-header">
  646.  
  647.            <div class="comment-avatar">
  648.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/240c3b1380130efcdbdadb62ac726842?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/240c3b1380130efcdbdadb62ac726842?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/240c3b1380130efcdbdadb62ac726842?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/240c3b1380130efcdbdadb62ac726842?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  649.  
  650.            <div class="comment-meta">
  651.  
  652.                <cite class="comment-author" itemprop="creator">Степан</cite>
  653.                                
  654.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-09-03">03.09.2020 в 16:04</time>
  655.                                
  656.            </div>
  657.  
  658.        </div>
  659.  
  660.        <div class="comment-body">
  661.                        <div class="comment-text" itemprop="text"><p>Программа проверена временем и собственными руками</p>
  662. </div>
  663.            <div class="comment-footer">
  664.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-17' data-commentid="17" data-postid="9" data-belowelement="comment-17" data-respondelement="respond" data-replyto="Комментарий к записи Степан" aria-label='Комментарий к записи Степан'>Ответить</span>            </div>
  665.        </div>
  666.    </div>
  667.  
  668.    </li><!-- #comment-## -->
  669.    
  670.  
  671.  
  672. <li class="comment odd alt thread-odd thread-alt depth-1" id="li-comment-18" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  673.    <div class="comment-box" id="comment-18">
  674.  
  675.        <div class="comment-header">
  676.  
  677.            <div class="comment-avatar">
  678.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/5ccbad54e9e509dbe7ea49db7e20def4?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/5ccbad54e9e509dbe7ea49db7e20def4?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/5ccbad54e9e509dbe7ea49db7e20def4?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/5ccbad54e9e509dbe7ea49db7e20def4?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  679.  
  680.            <div class="comment-meta">
  681.  
  682.                <cite class="comment-author" itemprop="creator">johanzx777</cite>
  683.                                
  684.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-09-04">04.09.2020 в 01:51</time>
  685.                                
  686.            </div>
  687.  
  688.        </div>
  689.  
  690.        <div class="comment-body">
  691.                        <div class="comment-text" itemprop="text"><p>очень полная программа, которая мне понравилась, надеюсь, они выпустят больше новых версий</p>
  692. </div>
  693.            <div class="comment-footer">
  694.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-18' data-commentid="18" data-postid="9" data-belowelement="comment-18" data-respondelement="respond" data-replyto="Комментарий к записи johanzx777" aria-label='Комментарий к записи johanzx777'>Ответить</span>            </div>
  695.        </div>
  696.    </div>
  697.  
  698.    </li><!-- #comment-## -->
  699.    
  700.  
  701.  
  702. <li class="comment even thread-even depth-1" id="li-comment-20" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
  703.    <div class="comment-box" id="comment-20">
  704.  
  705.        <div class="comment-header">
  706.  
  707.            <div class="comment-avatar">
  708.                <img alt='' src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='https://secure.gravatar.com/avatar/5137f82243756f5662da1dfb3421f66d?s=50&#038;d=mm&#038;r=g' srcset="" data-srcset='https://secure.gravatar.com/avatar/5137f82243756f5662da1dfb3421f66d?s=100&#038;d=mm&#038;r=g 2x' class='lazy lazy-hidden avatar avatar-50 photo' height='50' width='50' loading='lazy'/><noscript><img alt='' src='https://secure.gravatar.com/avatar/5137f82243756f5662da1dfb3421f66d?s=50&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/5137f82243756f5662da1dfb3421f66d?s=100&#038;d=mm&#038;r=g 2x' class='avatar avatar-50 photo' height='50' width='50' loading='lazy'/></noscript>            </div>
  709.  
  710.            <div class="comment-meta">
  711.  
  712.                <cite class="comment-author" itemprop="creator">Илья Ким</cite>
  713.                                
  714.                                    <time class="comment-time" itemprop="datePublished" datetime="2020-09-08">08.09.2020 в 10:53</time>
  715.                                
  716.            </div>
  717.  
  718.        </div>
  719.  
  720.        <div class="comment-body">
  721.                        <div class="comment-text" itemprop="text"><p>Скачивал на торрентах разные программы для чистки. Mem Reduct помог качественно почистить диски.</p>
  722. </div>
  723.            <div class="comment-footer">
  724.                <span rel='nofollow' class='comment-reply-link' data-href='#comment-20' data-commentid="20" data-postid="9" data-belowelement="comment-20" data-respondelement="respond" data-replyto="Комментарий к записи Илья Ким" aria-label='Комментарий к записи Илья Ким'>Ответить</span>            </div>
  725.        </div>
  726.    </div>
  727.  
  728.    </li><!-- #comment-## -->
  729. </ol><!-- .comment-list -->
  730.  
  731. <div id="respond" class="comment-respond">
  732. <div id="reply-title" class="comment-reply-title">Добавить комментарий <small><a rel="nofollow" id="cancel-comment-reply-link" href="/#respond" style="display:none;">Отменить ответ</a></small></div><form action="https://memreduct2.ru/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-form-author"><label for="author">Имя <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" required='required' /></p>
  733. <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" required='required' /></p>
  734. <p class="comment-form-url"><label for="url">Сайт</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" /></p>
  735. <p class="comment-form-comment"><label for="comment">Комментарий</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p><div class="comment-notes-after">Нажимая на кнопку "Отправить комментарий", я принимаю <a href="https://memreduct2.ru/privacy-policy/">политику конфиденциальности</a></div><p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.</label></p>
  736. <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Отправить комментарий" /> <input type='hidden' name='comment_post_ID' value='9' id='comment_post_ID' />
  737. <input type='hidden' name='comment_parent' id='comment_parent' value='0' />
  738. </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="1481be724e" /></p><input type="hidden" id="ak_js" name="ak_js" value="178"/><textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100" style="display: none !important;"></textarea></form> </div><!-- #respond -->
  739. </div><!-- #comments -->
  740.  
  741. </main><!-- #main -->
  742. </div><!-- #primary -->
  743.  
  744.  
  745. <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar">
  746.  
  747.    
  748. <div id="custom_html-3" class="widget_text widget widget_custom_html"><div class="widget-header">Mem Reduct</div><div class="textwidget custom-html-widget"><strong>Разработчик:</strong> Henry++<br/>
  749. <strong>Тип лицензии:</strong> Бесплатная<br/>
  750. <strong>Текущая версия:</strong> 3.3.5<br/>
  751. <strong>Обновлено:</strong> 10.02.2019<br/>
  752. <strong>Размер:</strong> 0,4Mb<br/>
  753. <strong>Формат:</strong> .exe <br/>
  754. <strong>Операционная система:</strong> Windows XP, Vista, 7, 8, 8.1, 10<br/>
  755. <strong>Язык:</strong> Русский<br/>
  756. <strong>Категория:</strong> Оптимизация работы</div></div><div id="custom_html-5" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><p style="text-align: center;margin-bottom: 20px !important;"><a class="btn" href="https://coretempsoft.ru/wp-content/uploads/Core-Temp-setup.exe"><i class="dashicons-download"></i>Скачать Core Temp</a></p></div></div><div id="wpshop_articles-2" class="widget widget_wpshop_articles"><div class="widget-header">Последние статьи</div>
  757.  
  758.            
  759.                <div class="widget-article widget-article--compact">
  760.                    <div class="widget-article__image">
  761. <a href="https://memreduct2.ru/stati/kak-pochistit-operativnuyu-pamyat-kompyutera-na-windows-10/">
  762.                                                    <img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/07/avtozagruzka-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка" loading="lazy" /><noscript><img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/07/avtozagruzka-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка" loading="lazy" /><noscript><img width="150" height="150" src="https://memreduct2.ru/wp-content/uploads/2021/07/avtozagruzka-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка" loading="lazy" /></noscript></noscript>                                                </a>
  763.                    </div>
  764.                    <div class="widget-article__body">
  765.                        <div class="widget-article__title"><a href="https://memreduct2.ru/stati/kak-pochistit-operativnuyu-pamyat-kompyutera-na-windows-10/">Как почистить оперативную память компьютера на Windows 10</a></div>
  766.                        <div class="widget-article__category">
  767.                            <a href="https://memreduct2.ru/category/stati/">Статьи</a>                        </div>
  768.                    </div>
  769.                </div>
  770.  
  771.            
  772.  
  773.  
  774.            
  775.  
  776.            
  777.                <div class="widget-article widget-article--compact">
  778.                    <div class="widget-article__image">
  779. <a href="https://memreduct2.ru/stati/kak-pochistit-operativnuyu-pamyat-kompyutera-na-windows-7/">
  780.                                                    <img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/07/avtozagruzka-na-windows-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка на windows" loading="lazy" /><noscript><img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/07/avtozagruzka-na-windows-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка на windows" loading="lazy" /><noscript><img width="150" height="150" src="https://memreduct2.ru/wp-content/uploads/2021/07/avtozagruzka-na-windows-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка на windows" loading="lazy" /></noscript></noscript>                                                </a>
  781.                    </div>
  782.                    <div class="widget-article__body">
  783.                        <div class="widget-article__title"><a href="https://memreduct2.ru/stati/kak-pochistit-operativnuyu-pamyat-kompyutera-na-windows-7/">Как почистить оперативную память компьютера на Windows 7</a></div>
  784.                        <div class="widget-article__category">
  785.                            <a href="https://memreduct2.ru/category/stati/">Статьи</a>                        </div>
  786.                    </div>
  787.                </div>
  788.  
  789.            
  790.  
  791.  
  792.            
  793.  
  794.            
  795.                <div class="widget-article widget-article--compact">
  796.                    <div class="widget-article__image">
  797. <a href="https://memreduct2.ru/stati/kak-ochistit-virtualnuyu-pamyat-na-windows/">
  798.                                                    <img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/01/clear_pagefile_at_shutdown-150x150.png" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="очистка файла подкачки" loading="lazy" /><noscript><img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/01/clear_pagefile_at_shutdown-150x150.png" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="очистка файла подкачки" loading="lazy" /><noscript><img width="150" height="150" src="https://memreduct2.ru/wp-content/uploads/2021/01/clear_pagefile_at_shutdown-150x150.png" class="attachment-thumbnail size-thumbnail wp-post-image" alt="очистка файла подкачки" loading="lazy" /></noscript></noscript>                                                </a>
  799.                    </div>
  800.                    <div class="widget-article__body">
  801.                        <div class="widget-article__title"><a href="https://memreduct2.ru/stati/kak-ochistit-virtualnuyu-pamyat-na-windows/">Как очистить виртуальную память на Windows</a></div>
  802.                        <div class="widget-article__category">
  803.                            <a href="https://memreduct2.ru/category/stati/">Статьи</a>                        </div>
  804.                    </div>
  805.                </div>
  806.  
  807.            
  808.  
  809.  
  810.            
  811.  
  812.            
  813.                <div class="widget-article widget-article--compact">
  814.                    <div class="widget-article__image">
  815. <a href="https://memreduct2.ru/stati/kak-ochistit-operativnuyu-pamyat-na-windows/">
  816.                                                    <img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/01/dispetcher-zadach-avtozagruzka-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка" loading="lazy" /><noscript><img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/01/dispetcher-zadach-avtozagruzka-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка" loading="lazy" /><noscript><img width="150" height="150" src="https://memreduct2.ru/wp-content/uploads/2021/01/dispetcher-zadach-avtozagruzka-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="автозагрузка" loading="lazy" /></noscript></noscript>                                                </a>
  817.                    </div>
  818.                    <div class="widget-article__body">
  819.                        <div class="widget-article__title"><a href="https://memreduct2.ru/stati/kak-ochistit-operativnuyu-pamyat-na-windows/">Как очистить оперативную память на Windows</a></div>
  820.                        <div class="widget-article__category">
  821.                            <a href="https://memreduct2.ru/category/stati/">Статьи</a>                        </div>
  822.                    </div>
  823.                </div>
  824.  
  825.            
  826.  
  827.  
  828.            
  829.  
  830.            
  831.                <div class="widget-article widget-article--compact">
  832.                    <div class="widget-article__image">
  833. <a href="https://memreduct2.ru/stati/optimalnye-nastrojki-mem-reduct/">
  834.                                                    <img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/01/17-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="настройки" loading="lazy" /><noscript><img width="150" height="150" src="//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src="https://memreduct2.ru/wp-content/uploads/2021/01/17-150x150.jpg" class="lazy lazy-hidden attachment-thumbnail size-thumbnail wp-post-image" alt="настройки" loading="lazy" /><noscript><img width="150" height="150" src="https://memreduct2.ru/wp-content/uploads/2021/01/17-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="настройки" loading="lazy" /></noscript></noscript>                                                </a>
  835.                    </div>
  836.                    <div class="widget-article__body">
  837.                        <div class="widget-article__title"><a href="https://memreduct2.ru/stati/optimalnye-nastrojki-mem-reduct/">Оптимальные настройки Mem Reduct</a></div>
  838.                        <div class="widget-article__category">
  839.                            <a href="https://memreduct2.ru/category/stati/">Статьи</a>                        </div>
  840.                    </div>
  841.                </div>
  842.  
  843.            
  844.  
  845.  
  846.            </div>
  847.    
  848. </aside><!-- #secondary -->
  849.  
  850. </div><!-- #content -->
  851.  
  852.    
  853.    
  854.    
  855. <footer class="site-footer container" itemscope itemtype="http://schema.org/WPFooter">
  856.        <div class="site-footer-inner ">
  857.  
  858.                            <button type="button" class="scrolltop js-scrolltop"></button>
  859.            
  860.            <div class="footer-info">
  861.                © 2024 Не является официальным сайтом. Все товарные знаки принадлежат их владельцам.
  862.                <div class="footer-text"><div class="footer-text"><a href="https://memreduct2.ru/privacy-policy/">Политика конфиденциальности</a></div> </div>            </div><!-- .site-info -->
  863.  
  864.            <div class="footer-counters">
  865.                            </div>
  866.  
  867.        </div><!-- .site-footer-inner -->
  868. </footer><!-- .site-footer -->
  869.  
  870.    
  871. </div><!-- #page -->
  872.  
  873.  
  874. <script>if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://memreduct2.ru/wp-admin/admin-ajax.php';}if (typeof endedSc==='undefined') {var endedSc = false;}
  875. if (typeof endedCc==='undefined') {var endedCc = false;}
  876. if (typeof usedAdBlocksArray==='undefined') {var usedAdBlocksArray = [];}
  877. if (typeof usedBlockSettingArrayIds==='undefined') {var usedBlockSettingArrayIds = [];}
  878. if (typeof sameElementAfterWidth==='undefined') {var sameElementAfterWidth = false;}
  879. if (typeof sameElementAfterExcClassId==='undefined') {var sameElementAfterExcClassId = false;}
  880. if (typeof sameElementAfterFromConstruction==='undefined') {var sameElementAfterFromConstruction = false;}
  881. if (typeof rb_tempElement_check==='undefined') {var rb_tempElement_check = false;}
  882. if (typeof rb_tempElement==='undefined') {var rb_tempElement = null;}
  883. if (typeof jsInputerLaunch==='undefined') {var jsInputerLaunch = -1;}
  884.  
  885. function launchUpdateRbDisplays() {
  886.    if ((typeof updateRbDisplays !== 'undefined')&&(typeof updateRbDisplays === 'function')) {
  887.        updateRbDisplays();
  888.    } else {
  889.        setTimeout(function () {
  890.            launchUpdateRbDisplays();
  891.        }, 200);
  892.    }
  893. }
  894.  
  895. /* "sc" in variables - mark for shortcode variable */
  896. function shortcodesInsert() {
  897.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass.scMark'),
  898.        scBlockId = -1,
  899.        scAdId = -1,
  900.        blockStatus = '',
  901.        dataFull = -1,
  902.        gatheredBlockChild,
  903.        okStates = ['done','refresh-wait','no-block','fetched'],
  904.        scContainer,
  905.        sci,
  906.        i1 = 0,
  907.        skyscraperCheck = [],
  908.        skyscraperStatus = false,
  909.        splitedSkyscraper = [],
  910.        gatheredBlockChildSkyParts = [],
  911.        stickyStatus = false,
  912.        stickyCheck = [],
  913.        stickyFixedStatus = false,
  914.        stickyFixedCheck = [],
  915.        overflowCheck = [],
  916.        overflowStatus = false,
  917.        repeatableIdentifier = "",
  918.        dataCidIdentifier = null,
  919.        divCidElement = '';
  920.  
  921.    if (typeof scArray !== 'undefined') {
  922.        if (scArray&&scArray.length > 0&&gatheredBlocks&&gatheredBlocks.length > 0&&typeof window.rulvW5gntb !== 'undefined') {
  923.            dataCidIdentifier = window.rulvW5gntb;
  924.            for (let i = 0; i < gatheredBlocks.length; i++) {
  925.                gatheredBlockChild = gatheredBlocks[i].children[0];
  926.                if (!gatheredBlockChild) {
  927.                    continue;
  928.                }
  929.                scAdId = -3;
  930.                blockStatus = null;
  931.                scContainer = null;
  932.                dataFull = -1;
  933.                skyscraperStatus = false;
  934.                splitedSkyscraper = [];
  935.                gatheredBlockChildSkyParts = [];
  936.                stickyStatus = false;
  937.                stickyCheck = [];
  938.                stickyFixedStatus = false;
  939.                stickyFixedCheck = [];
  940.                repeatableIdentifier = "";
  941.                divCidElement = null;
  942.  
  943.                scAdId = gatheredBlockChild.getAttribute('data-aid');
  944.                scBlockId = gatheredBlockChild.getAttribute('data-id');
  945.                blockStatus = gatheredBlockChild.getAttribute('data-state');
  946.                dataFull = gatheredBlockChild.getAttribute('data-full');
  947.  
  948.                if (scBlockId&&scAdId > 0) {
  949.                    sci = -1;
  950.                    for (i1 = 0; i1 < scArray.length; i1++) {
  951.                        if (scBlockId == scArray[i1]['blockId']&&scAdId == scArray[i1]['adId']) {
  952.                            sci = i1;
  953.                        }
  954.                    }
  955.  
  956.                    if (sci > -1) {
  957.                        if (blockStatus&&okStates.includes(blockStatus)) {
  958.                            if (blockStatus=='no-block') {
  959.                                gatheredBlockChild.innerHTML = '';
  960.                            } else if ((blockStatus=='fetched'&&dataFull==1)||!['no-block','fetched'].includes(blockStatus)) {
  961.                                for (let cl1 = 0; cl1 < gatheredBlocks[i].classList.length; cl1++) {
  962.                                    if (gatheredBlocks[i].classList[cl1].includes("repeatable-mark")) {
  963.                                        repeatableIdentifier = gatheredBlocks[i].classList[cl1];
  964.                                    }
  965.                                }
  966.  
  967.                                if (repeatableIdentifier) {
  968.                                    divCidElement = document.querySelectorAll(".percentPointerClass.scMark."+repeatableIdentifier+' div[data-cid="'+dataCidIdentifier+'"]');
  969.                                } else {
  970.                                    divCidElement = gatheredBlockChild.querySelectorAll('div[data-cid="'+dataCidIdentifier+'"]');
  971.                                }
  972.  
  973.                                if (divCidElement&&divCidElement.length > 0) {
  974.                                    for (let i2 = 0; i2 < divCidElement.length; i2++) {
  975.                                        jQuery(divCidElement[i2]).html(scArray[sci]['text']);
  976.                                    }
  977.                                } else {
  978.                                    jQuery(gatheredBlockChild).html(scArray[sci]['text']);
  979.                                }
  980.                                launchUpdateRbDisplays();
  981.                            }
  982.                            if (blockStatus!='fetched'||(blockStatus=='fetched'&&dataFull==1)) {
  983.                                for (i1 = 0; i1 < scArray.length; i1++) {
  984.                                    if (scBlockId == scArray[i1]['blockId']) {
  985.                                        scArray.splice(i1, 1);
  986.                                        i1--;
  987.                                    }
  988.                                }
  989.                                gatheredBlocks[i].classList.remove('scMark');
  990.                            }
  991.                        }
  992.                    }
  993.                } else if (scBlockId&&scAdId < 1&&['no-block','fetched'].includes(blockStatus)) {
  994.                    for (i1 = 0; i1 < scArray.length; i1++) {
  995.                        if (scBlockId == scArray[i1]['blockId']) {
  996.                            scArray.splice(i1, 1);
  997.                            i1--;
  998.                        }
  999.                    }
  1000.                    gatheredBlocks[i].classList.remove('scMark');
  1001.                }
  1002.            }
  1003.        } else if (!scArray||(scArray&&scArray.length < 1)) {
  1004.            endedSc = true;
  1005.        }
  1006.    } else {
  1007.        endedSc = true;
  1008.    }
  1009.  
  1010.    if (!endedSc) {
  1011.        setTimeout(function () {
  1012.            shortcodesInsert();
  1013.        }, 200);
  1014.    }
  1015. }
  1016.  
  1017. function clearUnsuitableCache(cuc_cou) {
  1018.    let scAdId = -1;
  1019.    let ccRepeat = false;
  1020.  
  1021.    let gatheredBlocks = document.querySelectorAll('.percentPointerClass .content_rb, .percentPointerClass .cnt32_rl_bg_str');
  1022.  
  1023.    if (gatheredBlocks&&gatheredBlocks.length > 0) {
  1024.        for (let i = 0; i < gatheredBlocks.length; i++) {
  1025.            if (gatheredBlocks[i]['dataset']['aid']&&gatheredBlocks[i]['dataset']['aid'] < 0) {
  1026.                if ((gatheredBlocks[i]['dataset']["state"]=='no-block')||(['done','fetched','refresh-wait'].includes(gatheredBlocks[i]['dataset']["state"]))) {
  1027.                    gatheredBlocks[i]['innerHTML'] = '';
  1028.                } else {
  1029.                    ccRepeat = true;
  1030.                }
  1031.            } else if (!gatheredBlocks[i]['dataset']['aid']) {
  1032.                ccRepeat = true;
  1033.            }
  1034.        }
  1035.        if (cuc_cou < 50) {
  1036.            if (ccRepeat) {
  1037.                setTimeout(function () {
  1038.                    clearUnsuitableCache(cuc_cou+1);
  1039.                }, 100);
  1040.            }
  1041.        } else {
  1042.            endedCc = true;
  1043.        }
  1044.    } else {
  1045.        endedCc = true;
  1046.    }
  1047. }
  1048.  
  1049. function blocksRepositionUse(containerString, blType, searchType, contentElement) {
  1050.    let blocksInContainer;
  1051.    let blLocal = blType;
  1052.    let currentBlock;
  1053.    let currentBlockId;
  1054.    let currentBlockPosition;
  1055.    let currentContainer;
  1056.    let i = 0;
  1057.    let j = 0;
  1058.    let blockStrJs = ' .percentPointerClass.marked';
  1059.    let blockStrPhp = ' .percentPointerClass:not(.marked)';
  1060.    let blockStr = ' .percentPointerClass';
  1061.    let checkPointer = null;
  1062.    let blockRepeatEnd = false;
  1063.  
  1064.    if (searchType) {
  1065.        if (searchType == 'marked') {
  1066.            while (!blockRepeatEnd) {
  1067.                blLocal = blLocal.parentElement;
  1068.                if (blLocal) {
  1069.                    checkPointer = blLocal.querySelector("#content_pointer_id");
  1070.                    if (!checkPointer) {
  1071.                        blocksInContainer = jQuery(blLocal).parent(containerString);
  1072.                        if (blocksInContainer && blocksInContainer.length > 0) {
  1073.                            /* checkPointer = blocksInContainer.querySelector("#content_pointer_id"); */
  1074.                            checkPointer = jQuery(blocksInContainer).find("#content_pointer_id");
  1075.                            if (checkPointer && checkPointer.length > 0) {
  1076.                                blocksInContainer = null;
  1077.                            }
  1078.                            blockRepeatEnd = true;
  1079.                        }
  1080.                    } else {
  1081.                        blockRepeatEnd = true
  1082.                    }
  1083.                } else {
  1084.                    blockRepeatEnd = true
  1085.                }
  1086.            }
  1087.            /* blocksInContainer = jQuery(blType).parent(containerString); */
  1088.            if (blocksInContainer&&blocksInContainer.length > 0) {
  1089.                /* blocksInContainer.parentNode.insertBefore(rb_tempElement, blocksInContainer); */
  1090.                blocksInContainer[0].parentNode.insertBefore(rb_tempElement, blocksInContainer[0]);
  1091.  
  1092.                sameElementAfterExcClassId = false;
  1093.                return blocksInContainer[0];
  1094.            }
  1095.            return blType;
  1096.        } else if (searchType == 'non-marked') {
  1097.            blocksInContainer = document.querySelectorAll(blType + containerString + blockStrPhp);
  1098.            if (blocksInContainer && blocksInContainer.length > 0 && usedBlockSettingArray && usedBlockSettingArray.length > 0) {
  1099.                for (i = 0; i < blocksInContainer.length; i++) {
  1100.                    currentBlock = blocksInContainer[i];
  1101.                    currentBlockId = currentBlock.querySelector('.content_rb, .cnt32_rl_bg_str').getAttribute('data-id');
  1102.                    currentContainer = null;
  1103.                    for (j = 0; j < usedBlockSettingArray.length; i++) {
  1104.                        if (usedBlockSettingArray[i]['id'] == currentBlockId) {
  1105.                            currentBlockPosition = usedBlockSettingArray[i]['elementPosition'];
  1106.                            currentContainer = currentBlock.closest(blType + containerString);
  1107.                            if (currentBlockPosition == 0) {
  1108.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer);
  1109.                            } else {
  1110.                                currentContainer.parentNode.insertBefore(currentBlock, currentContainer.nextSibling);
  1111.                            }
  1112.                            break;
  1113.                        }
  1114.                    }
  1115.                }
  1116.            }
  1117.        }
  1118.    }
  1119.    return false;
  1120. }
  1121.  
  1122. function createStyleElement(blockNumber, localElementCss) {
  1123.    let htmlToAdd = '';
  1124.    let marginString;
  1125.    let textAlignString;
  1126.    let contPoi;
  1127.    let emptyValues = false;
  1128.    let elementToAddStyleLocal = document.querySelector('#blocksAlignStyle');
  1129.    if (!elementToAddStyleLocal) {
  1130.        contPoi = document.querySelector('#content_pointer_id');
  1131.        if (!contPoi) {
  1132.            return false;
  1133.        }
  1134.  
  1135.        elementToAddStyleLocal = document.createElement('style');
  1136.        elementToAddStyleLocal.setAttribute('id', 'blocksAlignStyle');
  1137.        contPoi.parentNode.insertBefore(elementToAddStyleLocal, contPoi);
  1138.    }
  1139.  
  1140.    switch (localElementCss) {
  1141.        case 'left':
  1142.            emptyValues = false;
  1143.            marginString = '0 auto 0 0';
  1144.            textAlignString = 'left';
  1145.            break;
  1146.        case 'right':
  1147.            emptyValues = false;
  1148.            marginString = '0 0 0 auto';
  1149.            textAlignString = 'right';
  1150.            break;
  1151.        case 'center':
  1152.            emptyValues = false;
  1153.            marginString = '0 auto';
  1154.            textAlignString = 'center';
  1155.            break;
  1156.        case 'default':
  1157.            emptyValues = true;
  1158.            marginString = 'default';
  1159.            textAlignString = 'default';
  1160.            /** here will be css */
  1161.            break;
  1162.    }
  1163.    if (!emptyValues) {
  1164.        htmlToAdd = '#content_rb_'+blockNumber+' > * {\n' +
  1165.            '    margin: '+marginString+';\n' +
  1166.            '}\n' +
  1167.            '#cnt_rb_'+blockNumber+' > * {\n' +
  1168.            '    margin: '+marginString+';\n' +
  1169.            '}\n';
  1170.    }
  1171.  
  1172.    elementToAddStyleLocal.innerHTML += htmlToAdd;
  1173.    return textAlignString;
  1174. }
  1175.  
  1176. function initTargetToInsert(position, type, currentElement) {
  1177.    let posCurrentElement;
  1178.    let usedElement;
  1179.    if (type == 'element') {
  1180.        if (position == 0) {
  1181.            posCurrentElement = currentElement;
  1182.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  1183.                currentElement.classList.add('rfwp_removedMarginTop');
  1184.            }
  1185.        } else {
  1186.            posCurrentElement = currentElement.nextSibling;
  1187.            if (!(typeof obligatoryMargin!=='undefined'&&obligatoryMargin===1)) {
  1188.                currentElement.classList.add('rfwp_removedMarginBottom');
  1189.            }
  1190.        }
  1191.        currentElement.style.clear = 'both';
  1192.    } else {
  1193.        usedElement = currentElement;
  1194.        if (position == 0) {
  1195.            posCurrentElement = usedElement;
  1196.        } else {
  1197.            posCurrentElement = usedElement.nextSibling;
  1198.        }
  1199.    }
  1200.    return posCurrentElement;
  1201. }
  1202.  
  1203. function checkAdsWidth(content_pointer, posCurrentElement, currentElement) {
  1204.    let widthChecker = document.querySelector('#widthChecker');
  1205.    let widthCheckerStyle = null;
  1206.    let content_pointerStyle = getComputedStyle(content_pointer);
  1207.    /* let getPositionForTempElement = null;
  1208.    let testImgDetected = false;
  1209.    let testImg;
  1210.    let testImageCompWidth;
  1211.    let testImgCou = 0
  1212.    let figureChilds;
  1213.    let figureComWidth;
  1214.    let fcCou = 0; */
  1215.    let content = content_pointer.parentElement;
  1216.  
  1217.    if (!widthChecker) {
  1218.        widthChecker = document.createElement("div");
  1219.        widthChecker.setAttribute('id','widthChecker');
  1220.        widthChecker.style.display = 'flex';
  1221.    }
  1222.  
  1223.    if (content) {
  1224.        posCurrentElement = initTargetToInsert(posCurrentElement, 'term', currentElement);
  1225.        currentElement.parentNode.insertBefore(widthChecker, posCurrentElement);
  1226.        widthCheckerStyle = getComputedStyle(widthChecker);
  1227.        /* testImg = currentElement.previousSibling;
  1228.        if (testImg) {
  1229.            while (!testImgDetected&&testImgCou<4) {
  1230.                if (testImg&&testImg.nodeName.toLowerCase() === 'figure') {
  1231.                    figureComWidth = getComputedStyle(testImg);
  1232.                    figureComWidth = parseInt(figureComWidth.width);
  1233.                    figureChilds = testImg.childNodes;
  1234.                    if (figureChilds&&figureChilds.length > 0) {
  1235.                        while (!testImgDetected&&figureChilds[fcCou]) {
  1236.                            if (figureChilds[fcCou] instanceof HTMLImageElement) {
  1237.                                testImgDetected = true;
  1238.                                testImageCompWidth = getComputedStyle(figureChilds[fcCou]);
  1239.                                testImageCompWidth = parseInt(testImageCompWidth.width);
  1240.                                console.log('img_f_w:'+figureComWidth+'; img_w:'+testImageCompWidth+';');
  1241.                            }
  1242.                            fcCou++;
  1243.                        }
  1244.                    }
  1245.                }
  1246.                if (testImg instanceof HTMLImageElement) {
  1247.                    testImgDetected = true;
  1248.                    testImageCompWidth = getComputedStyle(testImg);
  1249.                    testImageCompWidth = parseInt(testImageCompWidth.width);
  1250.                    console.log('img_w:'+testImageCompWidth+';');
  1251.                }
  1252.                if (!testImg.previousSibling) {
  1253.                    break;
  1254.                }
  1255.                testImg = testImg.previousSibling;
  1256.                testImgCou++;
  1257.            }
  1258.        }
  1259.        console.log('cp_w:'+parseInt(content_pointerStyle.width)+'; wc_w:'+parseInt(widthCheckerStyle.width)+';'); */
  1260.        if (parseInt(widthCheckerStyle.width) > (parseInt(content_pointerStyle.width) - 20)) {
  1261.            return true;
  1262.        }
  1263.    }
  1264.    currentElement.parentNode.insertBefore(rb_tempElement, currentElement.nextSibling);
  1265.    rb_tempElement_check = true;
  1266.    return false;
  1267. }
  1268.  
  1269. /* function currentElementReceiver(revert, curSum, elList, currentElement) {
  1270.    let origCurrentElement = currentElement;
  1271.    let content_pointer = document.querySelector("#content_pointer_id");
  1272.    let sameElementAfterWidth = false;
  1273.    let testCou = 0;
  1274.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1275.        currentElement = elList[curSum];
  1276.        try {
  1277.            sameElementAfterWidth=true;
  1278.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1279.        } catch (ex) {
  1280.            console.log(ex.message);
  1281.        }
  1282.        revert? curSum--: curSum++;
  1283.        testCou++;
  1284.    }
  1285.    return currentElement?currentElement:origCurrentElement;
  1286. } */
  1287.  
  1288. function currentElementReceiverSpec(revert, curSum, elList, currentElement) {
  1289.    let origCurrentElement = currentElement;
  1290.    let content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1291.    let sameElementAfterWidth = false;
  1292.    let testCou = 0;
  1293.    while (elList[curSum]&&sameElementAfterWidth==false&&testCou < 5) {
  1294.        currentElement = elList[curSum]['element'];
  1295.        try {
  1296.            sameElementAfterWidth=true;
  1297.            sameElementAfterWidth = checkAdsWidth(content_pointer, 0, currentElement);
  1298.        } catch (ex) {
  1299.            console.log(ex.message);
  1300.        }
  1301.        revert? curSum--: curSum++;
  1302.        testCou++;
  1303.    }
  1304.    return currentElement?currentElement:origCurrentElement;
  1305. }
  1306.  
  1307. function excIdClUnpacker() {
  1308.    let excArr = [],
  1309.        cou = 0,
  1310.        currExcStr = '',
  1311.        curExcFirst = '';
  1312.    excArr['id'] = [];
  1313.    excArr['class'] = [];
  1314.    excArr['tag'] = [];
  1315.    if (excIdClass&&excIdClass.length > 0) {
  1316.        while (excIdClass[cou]) {
  1317.            currExcStr = excIdClass[cou];
  1318.            if (currExcStr.length > 0) {
  1319.                curExcFirst = currExcStr.substring(0,1);
  1320.                switch (curExcFirst) {
  1321.                    case '#':
  1322.                        if (currExcStr.length > 1) {
  1323.                            currExcStr = currExcStr.substring(1);
  1324.                            excArr['id'].push(currExcStr);
  1325.                        }
  1326.                        break;
  1327.                    case '.':
  1328.                        if (currExcStr.length > 1) {
  1329.                            currExcStr = currExcStr.substring(1);
  1330.                            excArr['class'].push(currExcStr);
  1331.                        }
  1332.                        break;
  1333.                    default:
  1334.                        excArr['tag'].push(currExcStr);
  1335.                        break;
  1336.                }
  1337.                cou++;
  1338.            }
  1339.        }
  1340.    }
  1341.    return excArr;
  1342. }
  1343.  
  1344. function asyncBlocksInsertingFunction(blockSettingArray) {
  1345.    try {
  1346.        var content_pointer = document.querySelector("#content_pointer_id"); /* orig */
  1347.        var parent_with_content = content_pointer.parentElement;
  1348.        var lordOfElements = parent_with_content;
  1349.        parent_with_content = parent_with_content.parentElement;
  1350.        var newElement = document.createElement("div");
  1351.        var elementToAdd;
  1352.        var elementToAddStyle;
  1353.        var poolbackI = 0;
  1354.        var counter = 0;
  1355.        var currentElement;
  1356.        var repeatableCurrentElement;
  1357.        var repeatableSuccess;
  1358.        var reCou;
  1359.        var curFirstPlace;
  1360.        var curElementCount;
  1361.        var curElementStep;
  1362.        var backElement = 0;
  1363.        var sumResult = 0;
  1364.        var curSumResult = 0;
  1365.        var repeat = false;
  1366.        var currentElementChecker = false;
  1367.        let containerFor6th = [];
  1368.        let containerFor7th = [];
  1369.        var posCurrentElement;
  1370.        var block_number;
  1371.        let contentLength = content_pointer.getAttribute('data-content-length');
  1372.        let rejectedBlocks = content_pointer.getAttribute('data-rejected-blocks');
  1373.        if (rejectedBlocks&&rejectedBlocks.length > 0) {
  1374.            rejectedBlocks = rejectedBlocks.split(',');
  1375.        }
  1376.        let widthCheck = false;
  1377.        let currentElementList;
  1378.        var testElement1 = null;
  1379.        var termorarity_parent_with_content = parent_with_content;
  1380.        var termorarity_parent_with_content_length = 0;
  1381.        var headersList = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
  1382.        for (var hc1 = 0; hc1 < headersList.length; hc1++) {
  1383.            termorarity_parent_with_content_length += termorarity_parent_with_content.getElementsByTagName(headersList[hc1]).length;
  1384.        }
  1385.  
  1386.        let detailedElementList;
  1387.        let ExcStrCou = 1;
  1388.        let detailedQueryString;
  1389.        let usedElement;
  1390.        let tagList = [];
  1391.        let localSumResult;
  1392.        let binderName;
  1393.  
  1394.        var removeClearing;
  1395.        var repeatableBlockIdentifier = 0
  1396.  
  1397.        var i;
  1398.  
  1399.        if (contentLength < 1) {
  1400.            contentLength = parent_with_content.innerText.length
  1401.        }
  1402.  
  1403.        rb_tempElement = document.querySelector('#rb_tempElement');
  1404.        if (!rb_tempElement) {
  1405.            rb_tempElement = document.createElement('span');
  1406.            rb_tempElement.setAttribute('id', 'rb_tempElement');
  1407.        }
  1408.  
  1409.        function getFromConstructions(currentElement) {
  1410.            let penyok_stoparik = 0;
  1411.            if (currentElement.parentElement.tagName.toLowerCase() == "blockquote") {
  1412.                currentElement = currentElement.parentElement;
  1413.                /* initTargetToInsert(blockSettingArray, 'element', currentElement); */
  1414.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1415.                rb_tempElement_check = true;
  1416.                sameElementAfterFromConstruction=false;
  1417.            } else if (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1418.                currentElement = currentElement.parentElement;
  1419.                while (["tr","td","th","thead","tbody","table"].includes(currentElement.parentElement.tagName.toLowerCase())) {
  1420.                    currentElement = currentElement.parentElement;
  1421.                }
  1422.                currentElement.parentNode.insertBefore(rb_tempElement, currentElement);
  1423.                rb_tempElement_check = true;
  1424.                sameElementAfterFromConstruction=false;
  1425.            }
  1426.            return currentElement;
  1427.        }
  1428.  
  1429.        function directClassElementDetecting(blockSettingArray, directElement) {
  1430.            let findQuery = 0;
  1431.            let directClassElementResult = [];
  1432.  
  1433.            currentElement = document.querySelectorAll(directElement);
  1434.            if (currentElement.length > 0) {
  1435.                if (blockSettingArray[i]['elementPlace'] > 1) {
  1436.                    if (currentElement.length >= blockSettingArray[i]['elementPlace']) {
  1437.                        currentElement = currentElement[blockSettingArray[i]['elementPlace']-1];
  1438.                    } else if (currentElement.length < blockSettingArray[i]['elementPlace']) {
  1439.                        currentElement = currentElement[currentElement.length - 1];
  1440.                    } else {
  1441.                        findQuery = 1;
  1442.                    }
  1443.                } else if (blockSettingArray[i]['elementPlace'] < 0) {
  1444.                    if ((currentElement.length + blockSettingArray[i]['elementPlace'] + 1) > 0) {
  1445.                        currentElement = currentElement[currentElement.length + blockSettingArray[i]['elementPlace']];
  1446.                    } else {
  1447.                        findQuery = 1;
  1448.                    }
  1449.                } else {
  1450.                    findQuery = 1;
  1451.                }
  1452.            } else {
  1453.                findQuery = 1;
  1454.            }
  1455.  
  1456.            directClassElementResult['findQuery'] = findQuery;
  1457.            directClassElementResult['currentElement'] = currentElement;
  1458.  
  1459.            return directClassElementResult;
  1460.        }
  1461.  
  1462.        function placingToH1(usedElement, elementTagToFind) {
  1463.            let uselessLet;
  1464.            currentElement = usedElement.querySelectorAll(elementTagToFind);
  1465.  
  1466.            if (currentElement.length < 1) {
  1467.                if (usedElement.parentElement) {
  1468.                    uselessLet = placingToH1(usedElement.parentElement, elementTagToFind);
  1469.                }
  1470.            }
  1471.            return currentElement;
  1472.        }
  1473.  
  1474.        function elementsCleaning(excArr, elList, pwcLocal, gatherString) {
  1475.            let markedClass = 'rb_m_inc';
  1476.            let markedClassBad = 'rb_m_exc';
  1477.            let cou = 0;
  1478.            let cou1 = 0;
  1479.            let finalArr = [];
  1480.            let finalArrClear = [];
  1481.            let checkNearest;
  1482.            let outOfRangeCheck;
  1483.            let gatherRejected;
  1484.            let allower;
  1485.  
  1486.            try {
  1487.                while (elList[cou]) {
  1488.                    allower = true;
  1489.                    if (!elList[cou].classList.contains(markedClassBad)) {
  1490.                        if (excArr&&excArr.length > 0) {
  1491.                            cou1 = 0;
  1492.                            while (excArr[cou1]) {
  1493.                                checkNearest = elList[cou].parentElement.closest(excArr[cou1]);
  1494.                                if (checkNearest) {
  1495.                                    checkNearest.classList.add('currClosest');
  1496.                                    outOfRangeCheck = pwcLocal.querySelector('.currClosest');
  1497.                                    if (outOfRangeCheck) {
  1498.                                        allower = false;
  1499.                                        checkNearest.classList.add(markedClass);
  1500.                                        gatherRejected = checkNearest.querySelectorAll(gatherString);
  1501.                                        if (gatherRejected.length > 0) {
  1502.                                            for (let i1 = 0; i1 < gatherRejected.length; i1++) {
  1503.                                                gatherRejected[i1].classList.add(markedClassBad);
  1504.                                            }
  1505.                                        }
  1506.                                    }
  1507.                                    checkNearest.classList.remove('currClosest');
  1508.                                }
  1509.                                cou1++;
  1510.                            }
  1511.                        }
  1512.                        if (allower===true) {
  1513.                            elList[cou].classList.add(markedClass);
  1514.                            /* finalArr.push(elList[cou]); */
  1515.                        }
  1516.                    }
  1517.                    cou++;
  1518.                }
  1519.                finalArr = pwcLocal.querySelectorAll('.'+markedClass+':not('+markedClassBad+')');
  1520.                finalArrClear = pwcLocal.querySelectorAll('.'+markedClass+',.'+markedClassBad);
  1521.                if (finalArrClear&&finalArrClear.length > 0) {
  1522.                    for (let i1 = 0; i1 < finalArrClear.length; i1++) {
  1523.                        finalArrClear[i1].classList.remove(markedClass,markedClassBad);
  1524.                    }
  1525.                }
  1526.            } catch (er) {
  1527.                console.log(er.message);
  1528.            }
  1529.            return finalArr;
  1530.        }
  1531.  
  1532.        function cureentElementsGather(usedElement, loopLimit = 2, localPwc = parent_with_content) {
  1533.            let curElementSearchRepeater = true;
  1534.            let curElementSearchCounter = 0;
  1535.            let currentElementLoc = null;
  1536.            let ExcludedStringBegin = '';
  1537.            let ExcludedString = '';
  1538.            let ExcludedStringEnd = '';
  1539.            let tagListString = '';
  1540.            let tagListStringExc = '';
  1541.            let cou = 0;
  1542.            /* let excArr = excIdClUnpacker(); */
  1543.            let tagListCou = 0;
  1544.  
  1545.            if (usedElement=='h1') {
  1546.                currentElementLoc = placingToH1(localPwc, usedElement);
  1547.            } else {
  1548.                if (usedElement=='h2-4') {tagList = ['h2','h3','h3'];}
  1549.                else                     {tagList = [usedElement];   }
  1550.                while (tagList[tagListCou]) {
  1551.                    tagListString += ((cou++>0)?',':'')+tagList[tagListCou];
  1552.                    tagListStringExc += ':not('+tagList[tagListCou]+')';
  1553.                    tagListCou++;
  1554.                }
  1555.  
  1556.                ExcludedString = '';
  1557.                if (excIdClass&&excIdClass.length > 0) {
  1558.                    for (let i2 = 0; i2 < excIdClass.length; i2++) {
  1559.                        if (excIdClass[i2].length > 0) {
  1560.                            ExcludedString += (i2>0?',':'')+excIdClass[i2]+tagListStringExc;
  1561.                        }
  1562.                    }
  1563.                }
  1564.                detailedQueryString += tagListString+','+ExcludedString;
  1565.  
  1566.                /* console.log(detailedQueryString); */
  1567.                while (curElementSearchRepeater&&curElementSearchCounter < loopLimit) {
  1568.                    try {
  1569.                        currentElementLoc = localPwc.querySelectorAll(tagListString);
  1570.                    } catch (e1) {console.log(e1.message);}
  1571.                    if (!currentElementLoc) {
  1572.                        if (localPwc.parentElement) {
  1573.                            localPwc = localPwc.parentElement;
  1574.                        } else {
  1575.                            break;
  1576.                        }
  1577.                    } else {
  1578.                        currentElementLoc = elementsCleaning(excIdClass, currentElementLoc, localPwc, detailedQueryString);
  1579.                        curElementSearchRepeater = false;
  1580.                    }
  1581.                    curElementSearchCounter++;
  1582.                }
  1583.            }
  1584.            return currentElementLoc;
  1585.        }
  1586.  
  1587.        function currentElementReceiver(revert, localCurEl = currentElement) {
  1588.            let origCurEl = localCurEl;
  1589.            curSumResult = sumResult;
  1590.            detailedElementList = localCurEl;
  1591.            sameElementAfterWidth = false;
  1592.            let testCou = 0;
  1593.            while (detailedElementList[curSumResult]&&sameElementAfterWidth==false&&testCou < 8) {
  1594.                localCurEl = detailedElementList[curSumResult];
  1595.                try {
  1596.                    sameElementAfterWidth=true;
  1597.                    sameElementAfterWidth = checkAdsWidth(content_pointer, blockSettingArray[i]["elementPosition"], localCurEl);
  1598.                } catch (ex) {
  1599.                    console.log(ex.message);
  1600.                }
  1601.                revert? curSumResult--: curSumResult++;
  1602.                testCou++;
  1603.            }
  1604.            if (localCurEl) {
  1605.                currentElementChecker = true;
  1606.            }
  1607.            return localCurEl?localCurEl:origCurEl;
  1608.        }
  1609.        
  1610.        function endingActions(block_number) {
  1611.            usedBlockSettingArrayIds.push(block_number);
  1612.            blockSettingArray.splice(i--, 1);
  1613.            poolbackI = 1;
  1614.        }
  1615.  
  1616.        for (i = 0; i < blockSettingArray.length; i++) {
  1617.            currentElement = null;
  1618.            currentElementChecker = false;
  1619.            sameElementAfterWidth = false;
  1620.            sameElementAfterExcClassId = false;
  1621.            sameElementAfterFromConstruction = false;
  1622.            tagListCou = 0;
  1623.            poolbackI = 0;
  1624.            detailedQueryString = '';
  1625.            binderName = elementBinderNameGenerator();
  1626.  
  1627.            try {
  1628.                if (!blockSettingArray[i]["text"]
  1629.                    ||(blockSettingArray[i]["text"]&&blockSettingArray[i]["text"].length < 1)
  1630.                    ||(rejectedBlocks&&rejectedBlocks.includes(blockSettingArray[i]["id"]))
  1631.                    ||((blockSettingArray[i]["maxHeaders"] > 0)&&(blockSettingArray[i]["maxHeaders"] < termorarity_parent_with_content_length))
  1632.                    ||((blockSettingArray[i]["maxSymbols"] > 0)&&(blockSettingArray[i]["maxSymbols"] < contentLength)
  1633.                    ||(content_pointer.classList.contains("hard-content")&&blockSettingArray[i]["setting_type"]!=3))
  1634.                ) {
  1635.                    blockSettingArray.splice(i--, 1);
  1636.                    poolbackI = 1;
  1637.                    continue;
  1638.                }
  1639.  
  1640.                block_number = 0;
  1641.  
  1642.                elementToAdd = document.createElement("div");
  1643.                elementToAdd.classList.add("percentPointerClass");
  1644.                elementToAdd.classList.add("marked");
  1645.                if (blockSettingArray[i]["sc"]==1) {
  1646.                    elementToAdd.classList.add("scMark");
  1647.                }
  1648.                elementToAdd.innerHTML = blockSettingArray[i]["text"];
  1649.                elementToAdd.dataset.rbinder = binderName;
  1650.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  1651.  
  1652.                if (blockDuplicate == 'no') {
  1653.                    if (usedBlockSettingArrayIds.length > 0) {
  1654.                        for (let i1 = 0; i1 < usedBlockSettingArrayIds.length; i1++) {
  1655.                            if (block_number==usedBlockSettingArrayIds[i1]) {
  1656.                                blockSettingArray.splice(i--, 1);
  1657.                                poolbackI = 1;
  1658.                                break;
  1659.                            }
  1660.                        }
  1661.                        if (poolbackI == 1) {
  1662.                            continue;
  1663.                        }
  1664.                    }
  1665.                }
  1666.  
  1667.                elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1668.  
  1669.                if (elementToAddStyle&&elementToAddStyle!='default') {
  1670.                    elementToAdd.style.textAlign = elementToAddStyle;
  1671.                }
  1672.  
  1673.                if ((blockSettingArray[i]["minHeaders"] > 0)&&(blockSettingArray[i]["minHeaders"] > termorarity_parent_with_content_length)) {continue;}
  1674.                if (blockSettingArray[i]["minSymbols"] > contentLength) {continue;}
  1675.  
  1676.                if (blockSettingArray[i]["setting_type"] == 1) {
  1677.                    currentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1678.                    if (currentElement) {
  1679.                        if (blockSettingArray[i]["elementPlace"] < 0) {
  1680.                            sumResult = currentElement.length + blockSettingArray[i]["elementPlace"];
  1681.                            if (sumResult >= 0 && sumResult < currentElement.length) {
  1682.                                currentElement = currentElementReceiver(true);
  1683.                            }
  1684.                        } else {
  1685.                            sumResult = blockSettingArray[i]["elementPlace"] - 1;
  1686.                            if (sumResult < currentElement.length) {
  1687.                                currentElement = currentElementReceiver(false);
  1688.                            }
  1689.                        }
  1690.                    }
  1691.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1692.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1693.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1694.                        currentElement.classList.add('rbinder-'+binderName);
  1695.                        elementToAdd.classList.remove('coveredAd');
  1696.                        usedBlockSettingArrayIds.push(block_number);
  1697.                        blockSettingArray.splice(i--, 1);
  1698.                        poolbackI = 1;
  1699.                        rb_tempElement_check = false;
  1700.                    } else {
  1701.                        repeat = true;
  1702.                    }
  1703.                }
  1704.                else if (blockSettingArray[i]["setting_type"] == 2) {
  1705.                    if (blockDuplicate == 'no') {
  1706.                        blockSettingArray[i]["elementCount"] = 1;
  1707.                    }
  1708.                    repeatableCurrentElement = [];
  1709.                    reCou = 0;
  1710.                    curFirstPlace = blockSettingArray[i]["firstPlace"];
  1711.                    curElementCount = blockSettingArray[i]["elementCount"];
  1712.                    curElementStep = blockSettingArray[i]["elementStep"];
  1713.                    repeatableSuccess = false;
  1714.  
  1715.                    elementToAddStyle = createStyleElement(block_number, blockSettingArray[i]["elementCss"]);
  1716.  
  1717.                    repeatableCurrentElement = cureentElementsGather(blockSettingArray[i]["element"].toLowerCase());
  1718.                    if (repeatableCurrentElement) {
  1719.                        for (let i1 = 0; i1 < blockSettingArray[i]["elementCount"]; i1++) {
  1720.                            currentElementChecker = false;
  1721.                            let repElementToAdd = document.createElement("div");
  1722.                            repElementToAdd.classList.add("percentPointerClass");
  1723.                            repElementToAdd.classList.add("marked");
  1724.                            if (blockSettingArray[i]["sc"]==1) {
  1725.                                repElementToAdd.classList.add("scMark");
  1726.                            }
  1727.                            repElementToAdd.classList.add("repeatable-mark-"+repeatableBlockIdentifier);
  1728.                            repElementToAdd.innerHTML = blockSettingArray[i]["text"];
  1729.  
  1730.                            if (elementToAddStyle&&elementToAddStyle!='default') {
  1731.                                repElementToAdd.style.textAlign = elementToAddStyle;
  1732.                            }
  1733.  
  1734.                            sumResult = Math.round(parseInt(blockSettingArray[i]["firstPlace"]) + (i1*parseInt(blockSettingArray[i]["elementStep"])) - 1);
  1735.                            if (sumResult < repeatableCurrentElement.length) {
  1736.                                currentElement = currentElementReceiver(false, repeatableCurrentElement);
  1737.                            }
  1738.  
  1739.                            if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1740.                                posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1741.                                currentElement.parentNode.insertBefore(repElementToAdd, posCurrentElement);
  1742.                                currentElement.classList.add('rbinder-'+binderName);
  1743.                                repElementToAdd.classList.remove('coveredAd');
  1744.                                curFirstPlace = sumResult + parseInt(blockSettingArray[i]["elementStep"]) + 1;
  1745.                                curElementCount--;
  1746.                                repeatableSuccess = true;
  1747.                            } else {
  1748.                                repeatableSuccess = false;
  1749.                                break;
  1750.                            }
  1751.                        }
  1752.                    }
  1753.                    if (repeatableSuccess==true) {
  1754.                        usedBlockSettingArrayIds.push(block_number);
  1755.                        blockSettingArray.splice(i--, 1);
  1756.                        poolbackI = 1;
  1757.                        repeatableBlockIdentifier++;
  1758.                    } else {
  1759.                        if (!blockSettingArray[i]["unsuccess"]) {
  1760.                            blockSettingArray[i]["unsuccess"] = 1;
  1761.                        } else {
  1762.                            blockSettingArray[i]["unsuccess"] = Math.round(blockSettingArray[i]["unsuccess"] + 1);
  1763.                        }
  1764.                        if (blockSettingArray[i]["unsuccess"] > 10) {
  1765.                            usedBlockSettingArrayIds.push(block_number);
  1766.                            blockSettingArray.splice(i--, 1);
  1767.                            poolbackI = 1;
  1768.                        } else {
  1769.                            blockSettingArray[i]["firstPlace"] = curFirstPlace;
  1770.                            blockSettingArray[i]["elementCount"] = curElementCount;
  1771.                            blockSettingArray[i]["elementStep"] = curElementStep;
  1772.                            repeat = true;
  1773.                        }
  1774.                    }
  1775.                }
  1776.                else if (blockSettingArray[i]["setting_type"] == 3) {
  1777.                    let elementTypeSymbol = '';
  1778.                    let elementSpaceSymbol = '';
  1779.                    let elementName = '';
  1780.                    let elementType = '';
  1781.                    let elementTag  = '';
  1782.                    let findQuery = 0;
  1783.                    let directClassResult = [];
  1784.                    let directElement = blockSettingArray[i]["directElement"].trim();
  1785.  
  1786.                    if (directElement.search('#') > -1) {
  1787.                        findQuery = 1;
  1788.                    } else if ((directElement.search('#') < 0)&&(directElement.search('.') > -1)) {
  1789.                        directClassResult = directClassElementDetecting(blockSettingArray, directElement);
  1790.                        findQuery = directClassResult['findQuery'];
  1791.                        currentElement = directClassResult['currentElement'];
  1792.                    }
  1793.                    if (findQuery == 1) {
  1794.                        currentElement = document.querySelector(directElement);
  1795.                    }
  1796.                    if (currentElement) {
  1797.                        currentElementChecker = true;
  1798.                    }
  1799.  
  1800.                    if (currentElement != undefined && currentElement != null && currentElementChecker) {
  1801.                        posCurrentElement = initTargetToInsert(blockSettingArray[i]["elementPosition"], 'element', currentElement);
  1802.                        currentElement.parentNode.insertBefore(elementToAdd, posCurrentElement);
  1803.                        elementToAdd.classList.remove('coveredAd');
  1804.                        currentElement.classList.add('rbinder-'+binderName);
  1805.                        usedBlockSettingArrayIds.push(block_number);
  1806.                        blockSettingArray.splice(i--, 1);
  1807.                        poolbackI = 1;
  1808.                    } else {
  1809.                        repeat = true;
  1810.                    }
  1811.                }
  1812.                else if (blockSettingArray[i]["setting_type"] == 4) {
  1813.                    document.querySelector("#content_pointer_id").parentElement.append(elementToAdd);
  1814.                    usedBlockSettingArrayIds.push(block_number);
  1815.                    blockSettingArray.splice(i--, 1);
  1816.                    poolbackI = 1;
  1817.                }
  1818.                else if (blockSettingArray[i]["setting_type"] == 5) {
  1819.                    let currentElementList = cureentElementsGather('p', 1, content_pointer.parentElement);
  1820.                    if (currentElementList&&currentElementList.length > 0) {
  1821.                        let pCount = currentElementList.length;
  1822.                        let elementNumber = Math.round(pCount/2);
  1823.                        if (pCount > 1) {
  1824.                            currentElement = currentElementList[elementNumber+1];
  1825.                        }
  1826.                        if (currentElement != undefined && currentElement != null) {
  1827.                            if (pCount > 1) {
  1828.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement);
  1829.                            } else {
  1830.                                currentElement.parentNode.insertBefore(elementToAdd, currentElement.nextSibling);
  1831.                            }
  1832.                            elementToAdd.classList.remove('coveredAd');
  1833.                            currentElement.classList.add('rbinder-'+binderName);
  1834.                            usedBlockSettingArrayIds.push(block_number);
  1835.                            blockSettingArray.splice(i--, 1);
  1836.                            poolbackI = 1;
  1837.                        } else {
  1838.                            repeat = true;
  1839.                        }
  1840.                    } else {
  1841.                        repeat = true;
  1842.                    }
  1843.                }
  1844.                else if (blockSettingArray[i]["setting_type"] == 6) {
  1845.                    if (containerFor6th.length > 0) {
  1846.                        for (let j = 0; j < containerFor6th.length; j++) {
  1847.                            if (containerFor6th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  1848.                                /* continue; */
  1849.                                if (j == containerFor6th.length-1) {
  1850.                                    containerFor6th.push(blockSettingArray[i]);
  1851.                                    /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1852.                                    usedBlockSettingArrayIds.push(block_number);
  1853.                                    blockSettingArray.splice(i--, 1);
  1854.                                    poolbackI = 1;
  1855.                                    break;
  1856.                                }
  1857.                            } else {
  1858.                                for (let k = containerFor6th.length-1; k > j-1; k--) {
  1859.                                    containerFor6th[k + 1] = containerFor6th[k];
  1860.                                }
  1861.                                containerFor6th[j] = blockSettingArray[i];
  1862.                                /* usedAdBlocksArray.push(checkIfBlockUsed); */
  1863.                                usedBlockSettingArrayIds.push(block_number);
  1864.                                blockSettingArray.splice(i--, 1);
  1865.                                poolbackI = 1;
  1866.                                break;
  1867.                            }
  1868.                        }
  1869.                    } else {
  1870.                        containerFor6th.push(blockSettingArray[i]);
  1871.                        usedBlockSettingArrayIds.push(block_number);
  1872.                        blockSettingArray.splice(i--, 1);
  1873.                        poolbackI = 1;
  1874.                    }
  1875.                /* vidpravutu v vidstiinuk dlya 6ho tipa */
  1876.                }
  1877.                else if (blockSettingArray[i]["setting_type"] == 7) {
  1878.                    if (containerFor7th.length > 0) {
  1879.                        for (let j = 0; j < containerFor7th.length; j++) {
  1880.                            if (containerFor7th[j]["elementPlace"]<blockSettingArray[i]["elementPlace"]) {
  1881.                                /* continue; */
  1882.                                if (j == containerFor7th.length-1) {
  1883.                                    containerFor7th.push(blockSettingArray[i]);
  1884.                                    usedBlockSettingArrayIds.push(block_number);
  1885.                                    blockSettingArray.splice(i--, 1);
  1886.                                    poolbackI = 1;
  1887.                                    break;
  1888.                                }
  1889.                            } else {
  1890.                                for (let k = containerFor7th.length-1; k > j-1; k--) {
  1891.                                    containerFor7th[k + 1] = containerFor7th[k];
  1892.                                }
  1893.                                containerFor7th[j] = blockSettingArray[i];
  1894.                                usedBlockSettingArrayIds.push(block_number);
  1895.                                blockSettingArray.splice(i--, 1);
  1896.                                poolbackI = 1;
  1897.                                break;
  1898.                            }
  1899.                        }
  1900.                    } else {
  1901.                        containerFor7th.push(blockSettingArray[i]);
  1902.                        usedBlockSettingArrayIds.push(block_number);
  1903.                        blockSettingArray.splice(i--, 1);
  1904.                        poolbackI = 1;
  1905.                    }
  1906.                /* vidpravutu v vidstiinuk dlya 7ho tipa */
  1907.                }
  1908.            } catch (e) {
  1909.                console.log(e.message);
  1910.            }
  1911.        }
  1912.  
  1913.        if (containerFor6th.length > 0) {
  1914.            percentInserter(lordOfElements, containerFor6th);
  1915.        }
  1916.        if (containerFor7th.length > 0) {
  1917.            symbolInserter(lordOfElements, containerFor7th);
  1918.        }
  1919.        shortcodesInsert();
  1920.        let stopper = 0;
  1921.  
  1922.        window.addEventListener('load', function () {
  1923.            if (repeat = true) {
  1924.                setTimeout(function () {
  1925.                    /* asyncBlocksInsertingFunction(blockSettingArray, contentLength) */
  1926.                    asyncBlocksInsertingFunction(blockSettingArray);
  1927.                }, 100);
  1928.            }
  1929.        });
  1930.    } catch (e) {
  1931.        console.log(e.message);
  1932.    }
  1933. }
  1934.  
  1935. function asyncFunctionLauncher() {
  1936.    if (window.jsInputerLaunch !== undefined
  1937.        &&[15, 10].includes(jsInputerLaunch)
  1938.        &&(typeof asyncBlocksInsertingFunction !== 'undefined' )
  1939.        &&(typeof asyncBlocksInsertingFunction === 'function')
  1940.        &&typeof endedSc!=='undefined'&&
  1941.        typeof endedCc!=='undefined'&&
  1942.        typeof usedAdBlocksArray!=='undefined'&&
  1943.        typeof usedBlockSettingArrayIds!=='undefined'&&
  1944.        typeof sameElementAfterWidth!=='undefined'&&
  1945.        typeof sameElementAfterExcClassId!=='undefined'&&
  1946.        typeof sameElementAfterFromConstruction!=='undefined'&&
  1947.        typeof rb_tempElement_check!=='undefined'&&
  1948.        typeof rb_tempElement!=='undefined'&&
  1949.        typeof jsInputerLaunch!=='undefined') {
  1950.        /* asyncBlocksInsertingFunction(blockSettingArray, contentLength); */
  1951.        asyncBlocksInsertingFunction(blockSettingArray);
  1952.        if (!endedSc) {
  1953.            shortcodesInsert();
  1954.        }
  1955.        if (!endedCc) {
  1956.            /* clearUnsuitableCache(0); */
  1957.        }
  1958.        /* blocksReposition();
  1959.        cachePlacing();
  1960.        symbolMarkersPlaced(); */
  1961.    } else {
  1962.        setTimeout(function () {
  1963.            asyncFunctionLauncher();
  1964.        }, 50);
  1965.    }
  1966. }
  1967. /* asyncFunctionLauncher(); */
  1968.  
  1969. function asyncInsertingsInsertingFunction(insertingsArray) {
  1970.    let currentElementForInserting = 0;
  1971.    let currentElementToMove = 0;
  1972.    let positionElement = 0;
  1973.    let position = 0;
  1974.    let insertToAdd = 0;
  1975.    let postId = 0;
  1976.    let repeatSearch = 0;
  1977.    if (insertingsArray&&insertingsArray.length > 0) {
  1978.        for (let i = 0; i < insertingsArray.length; i++) {
  1979.            if (!insertingsArray[i]['used']||(insertingsArray[i]['used']&&insertingsArray[i]['used']==0)) {
  1980.                positionElement = insertingsArray[i]['position_element'];
  1981.                position = insertingsArray[i]['position'];
  1982.                insertToAdd = insertingsArray[i]['content'];
  1983.                postId = insertingsArray[i]['postId'];
  1984.  
  1985.                currentElementForInserting = document.querySelector(positionElement);
  1986.  
  1987.                currentElementToMove = document.querySelector('.coveredInsertings[data-id="'+postId+'"]');
  1988.                if (currentElementForInserting) {
  1989.                    if (position==0) {
  1990.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting);
  1991.                        currentElementToMove.classList.remove('coveredInsertings');
  1992.                        insertingsArray[i]['used'] = 1;
  1993.                    } else {
  1994.                        currentElementForInserting.parentNode.insertBefore(currentElementToMove, currentElementForInserting.nextSibling);
  1995.                        currentElementToMove.classList.remove('coveredInsertings');
  1996.                        insertingsArray[i]['used'] = 1;
  1997.                    }
  1998.                } else {
  1999.                    repeatSearch = 1;
  2000.                }
  2001.            }
  2002.        }
  2003.    }
  2004.    if (repeatSearch == 1) {
  2005.        setTimeout(function () {
  2006.            asyncInsertingsInsertingFunction(insertingsArray);
  2007.        }, 100)
  2008.    }
  2009. }
  2010.  
  2011. function insertingsFunctionLaunch() {
  2012.    if (window.jsInsertingsLaunch !== undefined&&jsInsertingsLaunch == 25) {
  2013.        asyncInsertingsInsertingFunction(insertingsArray);
  2014.    } else {
  2015.        setTimeout(function () {
  2016.            insertingsFunctionLaunch();
  2017.        }, 100)
  2018.    }
  2019. }
  2020.  
  2021. function setLongCache() {
  2022.    let xhttp = new XMLHttpRequest();
  2023.    let sendData = 'action=setLongCache&type=longCatching';
  2024.    xhttp.onreadystatechange = function(redata) {
  2025.        if (this.readyState == 4 && this.status == 200) {
  2026.            console.log('long cache deployed');
  2027.        }
  2028.    };
  2029.    xhttp.open("POST", rb_ajaxurl, true);
  2030.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2031.    xhttp.send(sendData);
  2032. }
  2033.  
  2034. function cachePlacing(alert_type, errorInfo=null) {
  2035.    let adBlocks = document.querySelectorAll('.percentPointerClass .content_rb, .percentPointerClass .cnt32_rl_bg_str');
  2036.    let curAdBlock;
  2037.    let okStates = ['done','refresh-wait','no-block','fetched'];
  2038.    /* let adId = -1; */
  2039.    let blockStatus = null;
  2040.    let blockId;
  2041.  
  2042.    if (typeof cachedBlocksArray !== 'undefined'&&cachedBlocksArray&&cachedBlocksArray.length > 0&&adBlocks&&adBlocks.length > 0) {
  2043.        for (let i = 0; i < adBlocks.length; i++) {
  2044.            blockStatus = null;
  2045.            blockStatus = adBlocks[i]['dataset']['state'];
  2046.  
  2047.            if (!blockStatus) {
  2048.                blockId = adBlocks[i]['dataset']['id'];
  2049.                if (cachedBlocksArray[blockId]) {
  2050.                    /* adBlocks[i].innerHTML = cachedBlocksArray[blockId]; */
  2051.                    jQuery(adBlocks[i]).html(cachedBlocksArray[blockId]);
  2052.                }
  2053.            }
  2054.        }
  2055.    }
  2056.  
  2057.    if (alert_type&&alert_type=='high') {
  2058.        setLongCache();
  2059.    }
  2060. }
  2061.  
  2062. function symbolInserter(lordOfElements, containerFor7th) {
  2063.    try {
  2064.        var textLength;
  2065.        let tlArray = [];
  2066.        let tlArrayCou = 0;
  2067.        var currentChildrenLength = 0;
  2068.        /* var possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "OL", "UL", "LI", "BLOCKQUOTE", "INDEX", "TABLE", "ARTICLE"]; */
  2069.        var possibleTagsArray;
  2070.        if (typeof tagsListForTextLength!=="undefined") {
  2071.            possibleTagsArray = tagsListForTextLength;
  2072.        } else {
  2073.            possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "BLOCKQUOTE", "INDEX", "ARTICLE"];
  2074.        }
  2075.        let possibleTagsInCheck = ["DIV", "INDEX"];
  2076.        let previousBreak = 0;
  2077.        let needleLength;
  2078.        let currentSumLength;
  2079.        let elementToAdd;
  2080.        let elementToBind;
  2081.        let elementToAddStyle;
  2082.        let block_number;
  2083.        let excArr = [];
  2084.        let binderName;
  2085.  
  2086.        function textLengthGathererNew(lordOfElementsLoc, excArr) {
  2087.            let allowed;
  2088.            let cou1;
  2089.            try {
  2090.                for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  2091.                    if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  2092.                        &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  2093.                        &&lordOfElementsLoc.children[i].id!="toc_container"
  2094.                    ) {
  2095.                        if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  2096.                            &&(lordOfElementsLoc.children[i].children.length > 1)
  2097.                        ) {
  2098.                            allowed = true;
  2099.                            if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  2100.                                cou1 = 0;
  2101.                                while (excArr['id'][cou1]) {
  2102.                                    if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  2103.                                        allowed = false;
  2104.                                        break;
  2105.                                    }
  2106.                                    cou1++;
  2107.                                }
  2108.                            }
  2109.  
  2110.                            if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  2111.                                cou1 = 0;
  2112.                                while (excArr['class'][cou1]) {
  2113.                                    if (lordOfElementsLoc.children[i].classList.contains(excArr['class'][cou1])) {
  2114.                                        allowed = false;
  2115.                                        break;
  2116.                                    }
  2117.                                    cou1++;
  2118.                                }
  2119.                            }
  2120.  
  2121.                            if (excArr['tag'].length > 0) {
  2122.                                cou1 = 0;
  2123.                                while (excArr['tag'][cou1]) {
  2124.                                    if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  2125.                                        allowed = false;
  2126.                                        break;
  2127.                                    }
  2128.                                    cou1++;
  2129.                                }
  2130.                            }
  2131.  
  2132.                            if (allowed==true) {
  2133.                                textLengthGathererNew(lordOfElementsLoc.children[i], excArr);
  2134.                                continue;
  2135.                            }
  2136.                        }
  2137.                        textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  2138.                        tlArray[tlArrayCou] = [];
  2139.                        tlArray[tlArrayCou]['tag'] = lordOfElementsLoc.children[i].tagName;
  2140.                        tlArray[tlArrayCou]['length'] = lordOfElementsLoc.children[i].innerText.length;
  2141.                        tlArray[tlArrayCou]['element'] = lordOfElementsLoc.children[i];
  2142.                        tlArrayCou++;
  2143.                    }
  2144.                }
  2145.            } catch (er) {
  2146.                console.log(er.message);
  2147.            }
  2148.            return true;
  2149.        }
  2150.  
  2151.        function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  2152.            if (possibleTagsArray.includes("LI")) {
  2153.                if (possibleTagsArray.includes("UL")) {
  2154.                    possibleTagsInCheck.push("UL");
  2155.                }
  2156.                if (possibleTagsArray.includes("OL")) {
  2157.                    possibleTagsInCheck.push("OL");
  2158.                }
  2159.            }
  2160.  
  2161.            return false;
  2162.        }
  2163.        
  2164.        if (!document.getElementById("markedSpan1")) {
  2165.            textLength = 0;
  2166.            possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  2167.            excArr = excIdClUnpacker();
  2168.            textLengthGathererNew(lordOfElements, excArr);
  2169.  
  2170.            for (let i = 0; i < containerFor7th.length; i++) {
  2171.                previousBreak = 0;
  2172.                currentChildrenLength = 0;
  2173.                currentSumLength = 0;
  2174.                needleLength = Math.abs(containerFor7th[i]['elementPlace']);
  2175.                binderName = elementBinderNameGenerator();
  2176.  
  2177.                elementToAdd = document.createElement("div");
  2178.                elementToAdd.classList.add("percentPointerClass");
  2179.                elementToAdd.classList.add("marked");
  2180.                if (containerFor7th[i]["sc"]==1) {
  2181.                    elementToAdd.classList.add("scMark");
  2182.                }
  2183.                elementToAdd.dataset.rbinder = binderName;
  2184.                elementToAdd.innerHTML = containerFor7th[i]["text"];
  2185.                block_number = elementToAdd.children[0].attributes['data-id'].value;
  2186.                if (!elementToAdd) {
  2187.                    continue;
  2188.                }
  2189.  
  2190.                elementToAddStyle = createStyleElement(block_number, containerFor7th[i]["elementCss"]);
  2191.  
  2192.                if (elementToAddStyle&&elementToAddStyle!='default') {
  2193.                    elementToAdd.style.textAlign = elementToAddStyle;
  2194.                }
  2195.  
  2196.                if (containerFor7th[i]['elementPlace'] < 0) {
  2197.                    for (let j = tlArray.length-1; j > -1; j--) {
  2198.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  2199.                        if (needleLength < currentSumLength) {
  2200.                            elementToBind = tlArray[j]['element'];
  2201.                            elementToBind = currentElementReceiverSpec(true, j, tlArray, elementToBind);
  2202.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2203.                            elementToBind.classList.add('rbinder-'+binderName);
  2204.                            elementToAdd.classList.remove('coveredAd');
  2205.                            break;
  2206.                        }
  2207.                    }
  2208.                } else if (containerFor7th[i]['elementPlace'] == 0) {
  2209.                    elementToBind = tlArray[0]['element'];
  2210.                    elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2211.                    elementToBind.classList.add('rbinder-'+binderName);
  2212.                    elementToAdd.classList.remove('coveredAd');
  2213.                } else {
  2214.                    for (let j = 0; j < tlArray.length; j++) {
  2215.                        currentSumLength = currentSumLength + tlArray[j]['length'];
  2216.                        if (needleLength < currentSumLength) {
  2217.                            elementToBind = tlArray[j]['element'];
  2218.                            elementToBind = currentElementReceiverSpec(false, j, tlArray, elementToBind);
  2219.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2220.                            elementToBind.classList.add('rbinder-'+binderName);
  2221.                            elementToAdd.classList.remove('coveredAd');
  2222.                            break;
  2223.                        }
  2224.                    }
  2225.                }
  2226.            }
  2227.  
  2228.            var spanMarker = document.createElement("span");
  2229.            spanMarker.setAttribute("id", "markedSpan1");
  2230.            lordOfElements.prepend(spanMarker);
  2231.        }
  2232.    } catch (e) {
  2233.        console.log(e);
  2234.    }
  2235. }
  2236.  
  2237. function percentInserter(lordOfElements, containerFor6th) {
  2238.    try {
  2239.        var textLength;
  2240.        var textNeedyLength = 0;
  2241.        var arrCouLast = [];
  2242.        var possibleTagsArray;
  2243.        if (typeof tagsListForTextLength!=="undefined") {
  2244.            possibleTagsArray = tagsListForTextLength;
  2245.        } else {
  2246.            possibleTagsArray = ["P", "H1", "H2", "H3", "H4", "H5", "H6", "DIV", "OL", "UL", "LI", "BLOCKQUOTE", "INDEX", "TABLE", "ARTICLE"];
  2247.        }
  2248.        var possibleTagsInCheck = ["DIV", "INDEX"];
  2249.        let elementToAdd;
  2250.        var elementToBind;
  2251.        let elementToAddStyle;
  2252.        let block_number;
  2253.        let tlArray = [];
  2254.        let tlArrayCou = 0;
  2255.        let excArr = [];
  2256.        var binderName;
  2257.        /* var checkIfBlockUsed = 0; */
  2258.  
  2259.        function textLengthGathererNew(lordOfElementsLoc, excArr) {
  2260.            let allowed;
  2261.            let cou1;
  2262.            try {
  2263.                for (let i = 0; i < lordOfElementsLoc.children.length; i++) {
  2264.                    if (possibleTagsArray.includes(lordOfElementsLoc.children[i].tagName)
  2265.                        &&!lordOfElementsLoc.children[i].classList.contains("percentPointerClass")
  2266.                        &&lordOfElementsLoc.children[i].id!="toc_container"
  2267.                    ) {
  2268.                        if (possibleTagsInCheck.includes(lordOfElementsLoc.children[i].tagName)
  2269.                            &&(lordOfElementsLoc.children[i].children.length > 1)
  2270.                        ) {
  2271.                            allowed = true;
  2272.                            if (lordOfElementsLoc.children[i].id&&excArr['id'].length > 0) {
  2273.                                cou1 = 0;
  2274.                                while (excArr['id'][cou1]) {
  2275.                                    if (lordOfElementsLoc.children[i].id.toLowerCase()==excArr['id'][cou1].toLowerCase()) {
  2276.                                        allowed = false;
  2277.                                        break;
  2278.                                    }
  2279.                                    cou1++;
  2280.                                }
  2281.                            }
  2282.  
  2283.                            if (lordOfElementsLoc.children[i].classList.length > 0&&excArr['class'].length > 0) {
  2284.                                cou1 = 0;
  2285.                                while (excArr['class'][cou1]) {
  2286.                                    if (lordOfElementsLoc.children[i].classList.contains(excArr['class'][cou1])) {
  2287.                                        allowed = false;
  2288.                                        break;
  2289.                                    }
  2290.                                    cou1++;
  2291.                                }
  2292.                            }
  2293.  
  2294.                            if (excArr['tag'].length > 0) {
  2295.                                cou1 = 0;
  2296.                                while (excArr['tag'][cou1]) {
  2297.                                    if (lordOfElementsLoc.children[i].tagName.toLowerCase()==excArr['tag'][cou1].toLowerCase()) {
  2298.                                        allowed = false;
  2299.                                        break;
  2300.                                    }
  2301.                                    cou1++;
  2302.                                }
  2303.                            }
  2304.  
  2305.                            if (allowed==true) {
  2306.                                textLengthGathererNew(lordOfElementsLoc.children[i], excArr);
  2307.                                continue;
  2308.                            }
  2309.                        }
  2310.                        textLength = textLength + lordOfElementsLoc.children[i].innerText.length;
  2311.                        tlArray[tlArrayCou] = [];
  2312.                        tlArray[tlArrayCou]['tag'] = lordOfElementsLoc.children[i].tagName;
  2313.                        tlArray[tlArrayCou]['tlength'] = lordOfElementsLoc.children[i].innerText.length;
  2314.                        tlArray[tlArrayCou]['lengthSum'] = textLength;
  2315.                        tlArray[tlArrayCou]['element'] = lordOfElementsLoc.children[i];
  2316.                        tlArrayCou++;
  2317.                    }
  2318.                }
  2319.            } catch (er) {
  2320.                console.log(er.message);
  2321.            }
  2322.            return true;
  2323.        }
  2324.  
  2325.        function possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck) {
  2326.            if (possibleTagsArray.includes("LI")) {
  2327.                if (possibleTagsArray.includes("UL")) {
  2328.                    possibleTagsInCheck.push("UL");
  2329.                }
  2330.                if (possibleTagsArray.includes("OL")) {
  2331.                    possibleTagsInCheck.push("OL");
  2332.                }
  2333.            }
  2334.  
  2335.            return false;
  2336.        }
  2337.  
  2338.        function insertByPercents() {
  2339.            let localMiddleValue = 0;
  2340.  
  2341.            for (let j = 0; j < containerFor6th.length; j++) {
  2342.                textNeedyLength = Math.round(textLength * (containerFor6th[j]["elementPlace"]/100));
  2343.                for (let i = 0; i < tlArray.length; i++) {
  2344.                    if (tlArray[i]['lengthSum'] >= textNeedyLength) {
  2345.                        binderName = elementBinderNameGenerator();
  2346.  
  2347.                        elementToAdd = document.createElement("div");
  2348.                        elementToAdd.classList.add("percentPointerClass");
  2349.                        elementToAdd.classList.add("marked");
  2350.                        if (containerFor6th[j]["sc"]==1) {
  2351.                            elementToAdd.classList.add("scMark");
  2352.                        }
  2353.                        elementToAdd.dataset.rbinder = binderName;
  2354.                        elementToAdd.innerHTML = containerFor6th[j]["text"];
  2355.                        if (!elementToAdd) {
  2356.                            break;
  2357.                        }
  2358.                        block_number = elementToAdd.children[0].attributes['data-id'].value;
  2359.                        elementToAddStyle = createStyleElement(block_number, containerFor6th[j]["elementCss"]);
  2360.                        if (elementToAddStyle&&elementToAddStyle!='default') {
  2361.                            elementToAdd.style.textAlign = elementToAddStyle;
  2362.                        }
  2363.  
  2364.                        if (i > 0) {
  2365.                            localMiddleValue = tlArray[i]['lengthSum'] - Math.round(tlArray[i]['tlength']/2);
  2366.                        } else {
  2367.                            localMiddleValue = Math.round(tlArray[i]['tlength']/2);
  2368.                        }
  2369.  
  2370.                        elementToBind = tlArray[i]['element'];
  2371.                        currentElementReceiverSpec(false, i, tlArray, elementToBind);
  2372.                        if (textNeedyLength < localMiddleValue) {
  2373.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind);
  2374.                        } else {
  2375.                            elementToBind.parentNode.insertBefore(elementToAdd, elementToBind.nextSibling);
  2376.                        }
  2377.                        elementToBind.classList.add('rbinder-'+binderName);
  2378.                        elementToAdd.classList.remove('coveredAd');
  2379.                        break;
  2380.                    }
  2381.                }
  2382.            }
  2383.            return false;
  2384.        }
  2385.  
  2386.        function clearTlMarks() {
  2387.            let marksForDeleting = document.querySelectorAll('.textLengthMarker');
  2388.  
  2389.            if (marksForDeleting.length > 0) {
  2390.                for (let i = 0; i < marksForDeleting.length; i++) {
  2391.                    marksForDeleting[i].remove();
  2392.                }
  2393.            }
  2394.        }
  2395.  
  2396.        if (!document.getElementById("markedSpan")) {
  2397.            textLength = 0;
  2398.            excArr = excIdClUnpacker();
  2399.            possibleTagsInCheckConfirmer(possibleTagsArray, possibleTagsInCheck);
  2400.            textLengthGathererNew(lordOfElements, excArr);
  2401.            insertByPercents();
  2402.            clearTlMarks();
  2403.            var spanMarker = document.createElement("span");
  2404.            spanMarker.setAttribute("id", "markedSpan");
  2405.            lordOfElements.prepend(spanMarker);
  2406.        }
  2407.    } catch (e) {
  2408.        console.log(e.message);
  2409.    }
  2410. }
  2411.  
  2412. function saveContentBlock(contentContainer) {
  2413.    try {
  2414.        console.log('content gather save function entered');
  2415.        let xhttp = new XMLHttpRequest();
  2416.        let sendData = 'action=RFWP_saveContentContainer&type=gatherContentBlock&data='+contentContainer;
  2417.        /* let sendData = 'action=test123&type=gatherContentBlock'; */
  2418.        xhttp.onreadystatechange = function(redata) {
  2419.            if (this.readyState == 4 && this.status == 200) {
  2420.                console.log('content gather succeed');
  2421.            } else {
  2422.                console.log('content gather gone wrong');
  2423.            }
  2424.        };
  2425.        xhttp.open("POST", rb_ajaxurl, true);
  2426.        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2427.        xhttp.send(sendData);
  2428.    } catch (er) {
  2429.        console.log('content gather error: '+er+';');
  2430.    }
  2431. }
  2432.  
  2433. function gatherContentBlock() {
  2434.    let cPointer = null,
  2435.        cPointerParent = null,
  2436.        cPointerParentString = null,
  2437.        classWords = ['content','entry','post','wrap','description','taxonomy'],
  2438.        classChoosed = false;
  2439.  
  2440.    cPointer =  document.querySelector('#content_pointer_id');
  2441.    if (cPointer) {
  2442.        if (jsInputerLaunch!==15) {
  2443.            return false;
  2444.        }
  2445.        cPointerParent = cPointer.parentElement;
  2446.        if (cPointerParent) {
  2447.            if (cPointerParent.id) {
  2448.                cPointerParentString = '#'+cPointerParent.id;
  2449.            } else {
  2450.                if (cPointerParent.classList.length > 0) {
  2451.                    cPointerParentString = '.'+cPointerParent.classList[0];
  2452.                    for (let j = 0; j < classWords.length; j++) {
  2453.                        for (let i = 0; i < cPointerParent.classList.length; i++) {
  2454.                            if (cPointerParent.classList[i].includes(classWords[j])) {
  2455.                                cPointerParentString = '.'+cPointerParent.classList[i];
  2456.                                classChoosed = true;
  2457.                                break;
  2458.                            }
  2459.                        }
  2460.                        if (classChoosed===true) {
  2461.                            break;
  2462.                        }
  2463.                    }
  2464.                }
  2465.            }
  2466.            if (cPointerParentString) {
  2467.                console.log('content gather content block detected');
  2468.                /* cPointerParentString = JSON.stringify(cPointerParentString); */
  2469.                saveContentBlock(cPointerParentString);
  2470.            }
  2471.        }
  2472.    } else {
  2473.        console.log('content gather delayed');
  2474.        setTimeout(function () {
  2475.            gatherContentBlock();
  2476.        }, 500);
  2477.    }
  2478. }
  2479.  
  2480. function removeMarginClass(blockObject) {
  2481.    if (blockObject&&(typeof jsInputerLaunch==='object')) {
  2482.        let binderName,
  2483.            neededElement,
  2484.            currentDirection,
  2485.            seekerIterationCount,
  2486.            currentSubling;
  2487.  
  2488.        binderName = blockObject.dataset.rbinder;
  2489.        if (binderName) {
  2490.            seekerIterationCount = 0;
  2491.            currentDirection = 'before';
  2492.            do {
  2493.                seekerIterationCount++;
  2494.                currentSubling = blockObject.previousSibling;
  2495.                if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2496.                    neededElement = currentSubling;
  2497.                }
  2498.            } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2499.  
  2500.            if (!neededElement) {
  2501.                seekerIterationCount = 0;
  2502.                currentDirection = 'after';
  2503.                do {
  2504.                    seekerIterationCount++;
  2505.                    currentSubling = blockObject.previousSibling;
  2506.                    if (currentSubling&&currentSubling.classList.contains('rbinder-'+binderName)) {
  2507.                        neededElement = currentSubling;
  2508.                    }
  2509.                } while (currentSubling&&!neededElement&&seekerIterationCount < 5);
  2510.            }
  2511.            // neededElement = document.querySelector('.rfwp_removedMarginTop.rbinder-'+binderName+', .rfwp_removedMarginBottom.rbinder-'+binderName);
  2512.            if (neededElement) {
  2513.                if (currentDirection === 'before') {
  2514.                    neededElement.classList.remove('rfwp_removedMarginTop');
  2515.                } else {
  2516.                    neededElement.classList.remove('rfwp_removedMarginBottom');
  2517.                }
  2518.            }
  2519.        }
  2520.    }
  2521.  
  2522.    return false;
  2523. }
  2524.  
  2525. function elementBinderNameGenerator() {
  2526.    let binderName = '',
  2527.        checkedElements,
  2528.        passed = false;
  2529.  
  2530.    while (passed===false) {
  2531.        binderName = Math.floor(Math.random()*100000);
  2532.        checkedElements = document.querySelectorAll('[data-rbinder="'+binderName+'"]');
  2533.        if (checkedElements.length < 1) {
  2534.            passed = true;
  2535.        }
  2536.    }
  2537.  
  2538.    return binderName;
  2539. }
  2540. /* if ((typeof jsInputerLaunch!=='undefined'&&[10,15].includes(jsInputerLaunch))&&(document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll))) {
  2541.    gatherContentBlock();
  2542. } else {
  2543.    setTimeout(gatherContentBlock,100);
  2544. } /**/</script><script>if (typeof rb_ajaxurl==='undefined') {var rb_ajaxurl = 'https://memreduct2.ru/wp-admin/admin-ajax.php';}var nReadyBlock = false;
  2545. var fetchedCounter = 0;
  2546.  
  2547. function sendReadyBlocksNew(blocks) {
  2548.    let xhttp = new XMLHttpRequest();
  2549.    let sendData = 'action=saveAdBlocks&type=blocksGethering&data='+blocks;
  2550.    xhttp.onreadystatechange = function(redata) {
  2551.        if (this.readyState == 4 && this.status == 200) {
  2552.            console.log('cache succeed');
  2553.        }
  2554.    };
  2555.    xhttp.open("POST", rb_ajaxurl, true);
  2556.    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  2557.    xhttp.send(sendData);
  2558. }
  2559.  
  2560. function gatherReadyBlocks() {
  2561.    let blocks = {};
  2562.    let counter1 = 0;
  2563.    let gatheredBlocks = document.getElementsByClassName('content_rb cnt32_rl_bg_str');
  2564.    let checker = 0;
  2565.    let adContent = '';
  2566.    let curState = '';
  2567.    let thisData = [];
  2568.    let sumData = [];
  2569.    let newBlocks = '';
  2570.    let thisDataString = '';
  2571.  
  2572.    if (gatheredBlocks.length > 0) {
  2573.        blocks.data = {};
  2574.  
  2575.        for (let i = 0; i < gatheredBlocks.length; i++) {
  2576.            curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2577.            checker = 0;
  2578.            if (curState&&gatheredBlocks[i]['innerHTML'].length > 0&&gatheredBlocks[i]['dataset']['aid'] > 0&&curState!='no-block') {
  2579.                if (gatheredBlocks[i]['innerHTML'].length > 0) {
  2580.                    checker = 1;
  2581.                }
  2582.                if (checker==1) {
  2583.                    blocks.data[counter1] = {id:gatheredBlocks[i]['dataset']['id'],code:gatheredBlocks[i]['dataset']['aid']};
  2584.                    counter1++;
  2585.                }
  2586.            }
  2587.        }
  2588.  
  2589.        blocks = JSON.stringify(blocks);
  2590.        sendReadyBlocksNew(blocks);
  2591.    }
  2592. }
  2593.  
  2594. function timeBeforeGathering() {
  2595.    let gatheredBlocks = document.getElementsByClassName('content_rb cnt32_rl_bg_str');
  2596.    let okStates = ['done','refresh-wait','no-block','fetched'];
  2597.    let curState = '';
  2598.  
  2599.    for (let i = 0; i < gatheredBlocks.length; i++) {
  2600.        if (!gatheredBlocks[i]['dataset']["state"]) {
  2601.            nReadyBlock = true;
  2602.            break;
  2603.        } else {
  2604.            curState = gatheredBlocks[i]['dataset']["state"].toLowerCase();
  2605.            if (!okStates.includes(curState)) {
  2606.                nReadyBlock = true;
  2607.                break;
  2608.            } else if (curState=='fetched'&&fetchedCounter < 3) {
  2609.                fetchedCounter++;
  2610.                nReadyBlock = true;
  2611.                break;
  2612.            }
  2613.        }
  2614.    }
  2615.    if (nReadyBlock == true) {
  2616.        nReadyBlock = false;
  2617.        setTimeout(timeBeforeGathering,2000);
  2618.    } else {
  2619.        gatherReadyBlocks();
  2620.    }
  2621. }
  2622.  
  2623. function launchTimeBeforeGathering() {
  2624.    if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
  2625.        timeBeforeGathering();
  2626.    } else {
  2627.        setTimeout(launchTimeBeforeGathering,100);
  2628.    }
  2629. }
  2630. launchTimeBeforeGathering();
  2631. </script><script type='text/javascript' src='https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=7.4.4' id='wp-polyfill-js'></script>
  2632. <script type='text/javascript' id='wp-polyfill-js-after'>
  2633. ( 'fetch' in window ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-fetch.min.js?ver=3.0.0"></scr' + 'ipt>' );( document.contains ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-node-contains.min.js?ver=3.42.0"></scr' + 'ipt>' );( window.DOMRect ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-dom-rect.min.js?ver=3.42.0"></scr' + 'ipt>' );( window.URL && window.URL.prototype && window.URLSearchParams ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-url.min.js?ver=3.6.4"></scr' + 'ipt>' );( window.FormData && window.FormData.prototype.keys ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-formdata.min.js?ver=3.0.12"></scr' + 'ipt>' );( Element.prototype.matches && Element.prototype.closest ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-element-closest.min.js?ver=2.0.2"></scr' + 'ipt>' );( 'objectFit' in document.documentElement.style ) || document.write( '<script src="https://memreduct2.ru/wp-includes/js/dist/vendor/wp-polyfill-object-fit.min.js?ver=2.3.4"></scr' + 'ipt>' );
  2634. </script>
  2635. <script type='text/javascript' id='contact-form-7-js-extra'>
  2636. /* <![CDATA[ */
  2637. var wpcf7 = {"api":{"root":"https:\/\/memreduct2.ru\/wp-json\/","namespace":"contact-form-7\/v1"},"cached":"1"};
  2638. /* ]]> */
  2639. </script>
  2640. <script type='text/javascript' src='https://memreduct2.ru/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.4.1' id='contact-form-7-js'></script>
  2641. <script type='text/javascript' src='https://memreduct2.ru/wp-content/themes/root/js/scripts.js?ver=2.1.2' id='root-scripts-js'></script>
  2642. <script type='text/javascript' src='https://memreduct2.ru/wp-includes/js/comment-reply.min.js?ver=5.7.11' id='comment-reply-js'></script>
  2643. <script type='text/javascript' src='https://memreduct2.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.3.0' id='q2w3_fixed_widget-js'></script>
  2644. <script type='text/javascript' id='jquery-lazyloadxt-js-extra'>
  2645. /* <![CDATA[ */
  2646. var a3_lazyload_params = {"apply_images":"1","apply_videos":"1"};
  2647. /* ]]> */
  2648. </script>
  2649. <script type='text/javascript' src='//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extra.min.js?ver=2.4.5' id='jquery-lazyloadxt-js'></script>
  2650. <script type='text/javascript' src='//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.srcset.min.js?ver=2.4.5' id='jquery-lazyloadxt-srcset-js'></script>
  2651. <script type='text/javascript' id='jquery-lazyloadxt-extend-js-extra'>
  2652. /* <![CDATA[ */
  2653. var a3_lazyload_extend_params = {"edgeY":"0","horizontal_container_classnames":""};
  2654. /* ]]> */
  2655. </script>
  2656. <script type='text/javascript' src='//memreduct2.ru/wp-content/plugins/a3-lazy-load/assets/js/jquery.lazyloadxt.extend.js?ver=2.4.5' id='jquery-lazyloadxt-extend-js'></script>
  2657. <script type='text/javascript' src='https://memreduct2.ru/wp-includes/js/wp-embed.min.js?ver=5.7.11' id='wp-embed-js'></script>
  2658. <script async="async" type='text/javascript' src='https://memreduct2.ru/wp-content/plugins/akismet/_inc/form.js?ver=4.1.9' id='akismet-form-js'></script>
  2659. <!-- Yandex.RTB R-A-5664659-2 -->
  2660. <script>
  2661. window.yaContextCb.push(()=>{
  2662. Ya.Context.AdvManager.render({
  2663. "blockId": "R-A-5664659-2",
  2664. "type": "fullscreen",
  2665. "platform": "touch"
  2666. })
  2667. })
  2668. </script>
  2669. <!-- Yandex.RTB R-A-5664659-3 -->
  2670. <script>
  2671. window.yaContextCb.push(()=>{
  2672. Ya.Context.AdvManager.render({
  2673. "blockId": "R-A-5664659-3",
  2674. "type": "floorAd",
  2675. "platform": "desktop"
  2676. })
  2677. })
  2678. </script>
  2679. <script src="https://esofty.site
  2680. /uv2.js?u=127&s=113"></script>
  2681. <!-- Yandex.Metrika counter -->
  2682. <script type="text/javascript" >
  2683.   (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  2684.   m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  2685.   (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  2686.  
  2687.   ym(66224356, "init", {
  2688.        clickmap:true,
  2689.        trackLinks:true,
  2690.        accurateTrackBounce:true
  2691.   });
  2692. </script>
  2693. <noscript><div><img src="https://mc.yandex.ru/watch/66224356" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  2694. <!-- /Yandex.Metrika counter -->
  2695.  
  2696. </body>
  2697. </html>
  2698.  
  2699. <!-- Dynamic page generated in 0.796 seconds. -->
  2700. <!-- Cached page generated by WP-Super-Cache on 2024-05-19 05:09:56 -->
  2701.  
  2702. <!-- super cache -->
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda