feat: Add 8 files
This commit is contained in:
153
source/src/autogen/_agent-local.cpp
Normal file
153
source/src/autogen/_agent-local.cpp
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
#include <fstream>
|
||||||
|
#include <filesystem>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
|
||||||
|
DO NOT EDIT THIS FILE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "_agent-local.hpp"
|
||||||
|
namespace recreate_agent_local {
|
||||||
|
|
||||||
|
|
||||||
|
// Tiny dependency-free FNV-1a 64-bit hash
|
||||||
|
static uint64_t fnv1a_64(const void* data, size_t len) {
|
||||||
|
const uint8_t* p = static_cast<const uint8_t*>(data);
|
||||||
|
uint64_t h = 0xcbf29ce484222325ULL;
|
||||||
|
for (size_t i = 0; i < len; ++i)
|
||||||
|
h = (h ^ p[i]) * 0x100000001b3ULL;
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Base64 decoding function - no dependencies
|
||||||
|
static void base64_decode(const char* encoded_data, size_t encoded_len, unsigned char* output, size_t* output_len) {
|
||||||
|
const char* base64_chars =
|
||||||
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||||
|
size_t out_pos = 0;
|
||||||
|
int val = 0, valb = -8;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < encoded_len; i++) {
|
||||||
|
char c = encoded_data[i];
|
||||||
|
if (c == '=') break;
|
||||||
|
|
||||||
|
// Find position in base64_chars
|
||||||
|
const char* pos = strchr(base64_chars, c);
|
||||||
|
if (pos == nullptr) continue; // Skip invalid characters
|
||||||
|
|
||||||
|
val = (val << 6) + static_cast<int>(pos - base64_chars);
|
||||||
|
valb += 6;
|
||||||
|
if (valb >= 0) {
|
||||||
|
output[out_pos++] = static_cast<unsigned char>((val >> valb) & 0xFF);
|
||||||
|
valb -= 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*output_len = out_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility function to recreate a file with proper permissions
|
||||||
|
static bool _recreate_file_(const std::filesystem::path& outpath, uint64_t file_hash, std::filesystem::perms file_perms, const unsigned char* filedata, size_t filedata_len) {
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
bool needs_write = false;
|
||||||
|
|
||||||
|
// Check if file exists and has correct hash
|
||||||
|
if (fs::exists(outpath)) {
|
||||||
|
// Check content hash
|
||||||
|
std::ifstream in(outpath, std::ios::binary);
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << in.rdbuf();
|
||||||
|
std::string data = oss.str();
|
||||||
|
uint64_t existing_hash = fnv1a_64(data.data(), data.size());
|
||||||
|
needs_write = existing_hash != file_hash;
|
||||||
|
} else {
|
||||||
|
needs_write = true; // File doesn't exist, need to create it
|
||||||
|
}
|
||||||
|
|
||||||
|
bool needs_permission_update = true;
|
||||||
|
if (!needs_write) { // we always update permissions if the file is written or changed. Othewise we check.
|
||||||
|
fs::perms current_perms = fs::status(outpath).permissions();
|
||||||
|
needs_permission_update = current_perms != file_perms;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needs_write) {
|
||||||
|
bool existed = fs::exists(outpath);
|
||||||
|
|
||||||
|
fs::create_directories(outpath.parent_path());
|
||||||
|
std::ofstream out(outpath, std::ios::binary);
|
||||||
|
out.write(reinterpret_cast<const char*>(filedata), filedata_len);
|
||||||
|
out.close();
|
||||||
|
// Set the file permissions
|
||||||
|
fs::permissions(outpath, file_perms);
|
||||||
|
|
||||||
|
if (!existed) {
|
||||||
|
std::cout << "[dehydrate] " << outpath.filename() << ": created\n";
|
||||||
|
} else {
|
||||||
|
std::cout << "[dehydrate] " << outpath.filename() << ": updated (hash changed)\n";
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needs_permission_update) {
|
||||||
|
// Update only permissions
|
||||||
|
fs::permissions(outpath, file_perms);
|
||||||
|
std::cout << "[dehydrate] " << outpath.filename() << ": updated (permissions changed)\n";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool recreate_tree(std::string destination_folder) {
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
bool any_written = false;
|
||||||
|
{
|
||||||
|
// File: agent-install.sh
|
||||||
|
fs::path outpath = fs::path(destination_folder) / "agent-install.sh";
|
||||||
|
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgaW5zdGFsbCB0aGUgZHJvcHNoZWxsIGhvc3QgYWdlbnQgb24gdGhpcyBj"\
|
||||||
|
"b21wdXRlci4KIyAobm90IGZvciByZW1vdGUgc2VydmVycykKClNDUklQVF9ESVI9JChkaXJuYW1l"\
|
||||||
|
"ICIkMCIpCgplY2hvICJJbnN0YWxsaW5nIGRyb3BzaGVsbCBob3N0IGFnZW50IG9uIHRoaXMgY29t"\
|
||||||
|
"cHV0ZXIuLi4iCgoKIyBQcmludHMgYW4gZXJyb3IgbWVzc2FnZSBpbiByZWQgYW5kIGV4aXRzIHdp"\
|
||||||
|
"dGggc3RhdHVzIGNvZGUgMS4KX2RpZSgpIHsKICAgIGVjaG8gLWUgIkVycm9yOiAkMSIKICAgIGV4"\
|
||||||
|
"aXQgMQp9CgoKIyBDaGVja3MgaWYgbGlzdGVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgc2V0"\
|
||||||
|
"OyBjYWxscyBfZGllKCkgaWYgYW55IGFyZSBtaXNzaW5nLgpfY2hlY2tfcmVxdWlyZWRfZW52X3Zh"\
|
||||||
|
"cnMoKSB7CiAgICBsb2NhbCByZXF1aXJlZF92YXJzPSgiJEAiKQogICAgZm9yIHZhciBpbiAiJHty"\
|
||||||
|
"ZXF1aXJlZF92YXJzW0BdfSI7IGRvCiAgICAgICAgaWYgWyAteiAiJHshdmFyfSIgXTsgdGhlbgog"\
|
||||||
|
"ICAgICAgICAgICBfZGllICJSZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAkdmFyIGlzIG5v"\
|
||||||
|
"dCBzZXQiCiAgICAgICAgZmkKICAgIGRvbmUKfQoKCmZ1bmN0aW9uIGluc3RhbGxfYmI2NCgpIHsg"\
|
||||||
|
"ICAgCiAgICAjIGNoZWNrIGN1cmwgaW5zdGFsbGVkCiAgICBpZiAhIGNvbW1hbmQgLXYgY3VybCAm"\
|
||||||
|
"PiAvZGV2L251bGw7IHRoZW4KICAgICAgICBfZGllICJDdXJsIGlzIG5vdCBpbnN0YWxsZWQuIEN1"\
|
||||||
|
"cmwgaXMgcmVxdWlyZWQgZm9yIGFnZW50IGluc3RhbGxhdGlvbi4iCiAgICBmaQoKICAgIEJCNjRf"\
|
||||||
|
"cGF0aD0iJHtBR0VOVF9MT0NBTF9QQVRIfS9iYjY0IgogICAgQVJDSD0kKHVuYW1lIC1tKQogICAg"\
|
||||||
|
"aWYgISBjdXJsICJodHRwczovL2dldGJpbi54eXovYmI2NDpsYXRlc3QtJHtBUkNIfSIgPiAiJHtC"\
|
||||||
|
"QjY0X3BhdGh9IjsgdGhlbgogICAgICAgIF9kaWUgIkZhaWxlZCB0byBpbnN0YWxsIGJiNjQuIEN1"\
|
||||||
|
"cmwgcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBjb2RlLiIKICAgIGZpCiAgICBjaG93biAiJChpZCAt"\
|
||||||
|
"dSAiJFVTRVIiKTokKGlkIC1nICIkVVNFUiIpIiAiJHtCQjY0X3BhdGh9IgogICAgY2htb2QgK3gg"\
|
||||||
|
"IiR7QkI2NF9wYXRofSIKCiAgICAjIHRlc3QgaWYgYmI2NCBpcyBpbnN0YWxsZWQKICAgIGlmICEg"\
|
||||||
|
"VkVSPSQoIiR7QkI2NF9wYXRofSIgdmVyc2lvbik7IHRoZW4KICAgICAgICBfZGllICJiYjY0IGRp"\
|
||||||
|
"ZCBub3QgaW5zdGFsbCBjb3JyZWN0bHkuIgogICAgZmkKCiAgICBlY2hvICJiYjY0IHYkVkVSIGlu"\
|
||||||
|
"c3RhbGxlZC4iCiAgICByZXR1cm4gMDsKfQoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpzZXQgLWEKQUdF"\
|
||||||
|
"TlRfTE9DQUxfUEFUSD0iJFNDUklQVF9ESVIiCnNldCArYQoKX2NoZWNrX3JlcXVpcmVkX2Vudl92"\
|
||||||
|
"YXJzICJBR0VOVF9MT0NBTF9QQVRIIgplY2hvICJJbnN0YWxsaW5nIGhvc3QgYWdlbnQgaW50byAk"\
|
||||||
|
"QUdFTlRfTE9DQUxfUEFUSCIKCmluc3RhbGxfYmI2NAoK";
|
||||||
|
|
||||||
|
// Decode Base64 data
|
||||||
|
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
|
||||||
|
unsigned char* decoded_data = new unsigned char[decoded_size];
|
||||||
|
size_t actual_size;
|
||||||
|
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
|
||||||
|
|
||||||
|
bool file_written = _recreate_file_(outpath, 7211800578327693679ULL, std::filesystem::perms(493), decoded_data, actual_size);
|
||||||
|
delete[] decoded_data;
|
||||||
|
any_written = any_written || file_written;
|
||||||
|
}
|
||||||
|
return any_written;
|
||||||
|
}
|
||||||
|
}
|
15
source/src/autogen/_agent-local.hpp
Normal file
15
source/src/autogen/_agent-local.hpp
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
|
||||||
|
DO NOT EDIT THIS FILE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
namespace recreate_agent_local {
|
||||||
|
bool recreate_tree(std::string destination_folder);
|
||||||
|
}
|
510
source/src/autogen/_agent-remote.cpp
Normal file
510
source/src/autogen/_agent-remote.cpp
Normal file
@@ -0,0 +1,510 @@
|
|||||||
|
#include <fstream>
|
||||||
|
#include <filesystem>
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
|
||||||
|
DO NOT EDIT THIS FILE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "_agent-remote.hpp"
|
||||||
|
namespace recreate_agent_remote {
|
||||||
|
|
||||||
|
|
||||||
|
// Tiny dependency-free FNV-1a 64-bit hash
|
||||||
|
static uint64_t fnv1a_64(const void* data, size_t len) {
|
||||||
|
const uint8_t* p = static_cast<const uint8_t*>(data);
|
||||||
|
uint64_t h = 0xcbf29ce484222325ULL;
|
||||||
|
for (size_t i = 0; i < len; ++i)
|
||||||
|
h = (h ^ p[i]) * 0x100000001b3ULL;
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Base64 decoding function - no dependencies
|
||||||
|
static void base64_decode(const char* encoded_data, size_t encoded_len, unsigned char* output, size_t* output_len) {
|
||||||
|
const char* base64_chars =
|
||||||
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||||
|
size_t out_pos = 0;
|
||||||
|
int val = 0, valb = -8;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < encoded_len; i++) {
|
||||||
|
char c = encoded_data[i];
|
||||||
|
if (c == '=') break;
|
||||||
|
|
||||||
|
// Find position in base64_chars
|
||||||
|
const char* pos = strchr(base64_chars, c);
|
||||||
|
if (pos == nullptr) continue; // Skip invalid characters
|
||||||
|
|
||||||
|
val = (val << 6) + static_cast<int>(pos - base64_chars);
|
||||||
|
valb += 6;
|
||||||
|
if (valb >= 0) {
|
||||||
|
output[out_pos++] = static_cast<unsigned char>((val >> valb) & 0xFF);
|
||||||
|
valb -= 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*output_len = out_pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Utility function to recreate a file with proper permissions
|
||||||
|
static bool _recreate_file_(const std::filesystem::path& outpath, uint64_t file_hash, std::filesystem::perms file_perms, const unsigned char* filedata, size_t filedata_len) {
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
bool needs_write = false;
|
||||||
|
|
||||||
|
// Check if file exists and has correct hash
|
||||||
|
if (fs::exists(outpath)) {
|
||||||
|
// Check content hash
|
||||||
|
std::ifstream in(outpath, std::ios::binary);
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << in.rdbuf();
|
||||||
|
std::string data = oss.str();
|
||||||
|
uint64_t existing_hash = fnv1a_64(data.data(), data.size());
|
||||||
|
needs_write = existing_hash != file_hash;
|
||||||
|
} else {
|
||||||
|
needs_write = true; // File doesn't exist, need to create it
|
||||||
|
}
|
||||||
|
|
||||||
|
bool needs_permission_update = true;
|
||||||
|
if (!needs_write) { // we always update permissions if the file is written or changed. Othewise we check.
|
||||||
|
fs::perms current_perms = fs::status(outpath).permissions();
|
||||||
|
needs_permission_update = current_perms != file_perms;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needs_write) {
|
||||||
|
bool existed = fs::exists(outpath);
|
||||||
|
|
||||||
|
fs::create_directories(outpath.parent_path());
|
||||||
|
std::ofstream out(outpath, std::ios::binary);
|
||||||
|
out.write(reinterpret_cast<const char*>(filedata), filedata_len);
|
||||||
|
out.close();
|
||||||
|
// Set the file permissions
|
||||||
|
fs::permissions(outpath, file_perms);
|
||||||
|
|
||||||
|
if (!existed) {
|
||||||
|
std::cout << "[dehydrate] " << outpath.filename() << ": created\n";
|
||||||
|
} else {
|
||||||
|
std::cout << "[dehydrate] " << outpath.filename() << ": updated (hash changed)\n";
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needs_permission_update) {
|
||||||
|
// Update only permissions
|
||||||
|
fs::permissions(outpath, file_perms);
|
||||||
|
std::cout << "[dehydrate] " << outpath.filename() << ": updated (permissions changed)\n";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool recreate_tree(std::string destination_folder) {
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
bool any_written = false;
|
||||||
|
{
|
||||||
|
// File: datacommands.sh
|
||||||
|
fs::path outpath = fs::path(destination_folder) / "datacommands.sh";
|
||||||
|
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgVGhpcyBzY3JpcHQgY29udGFpbnMgdGhlIGNvbW1vbiBjb2RlIGZvciB0"\
|
||||||
|
"aGUgYXV0b2NvbW1hbmRzLgoKTVlJRD0kKGlkIC11KQpNWUdSUD0kKGlkIC1nKQoKX2F1dG9jb21t"\
|
||||||
|
"YW5kcnVuX3ZvbHVtZSgpIHsKICAgIGxvY2FsIGNvbW1hbmQ9IiQxIgogICAgbG9jYWwgdm9sdW1l"\
|
||||||
|
"X25hbWU9IiQyIgogICAgbG9jYWwgYmFja3VwX2ZvbGRlcj0iJDMiCgogICAgY2FzZSAiJGNvbW1h"\
|
||||||
|
"bmQiIGluCiAgICAgICAgY3JlYXRlKQogICAgICAgICAgICBpZiBkb2NrZXIgdm9sdW1lIGxzIHwg"\
|
||||||
|
"Z3JlcCAtcSAiJHt2b2x1bWVfbmFtZX0iOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICJWb2x1"\
|
||||||
|
"bWUgJHt2b2x1bWVfbmFtZX0gYWxyZWFkeSBleGlzdHMgLSBsZWF2aW5nIHVuY2hhbmdlZCIKICAg"\
|
||||||
|
"ICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICBmaQogICAgICAgICAgICBlY2hvICJDcmVh"\
|
||||||
|
"dGluZyB2b2x1bWUgJHt2b2x1bWVfbmFtZX0iCiAgICAgICAgICAgIGRvY2tlciB2b2x1bWUgY3Jl"\
|
||||||
|
"YXRlICIke3ZvbHVtZV9uYW1lfSIKICAgICAgICAgICAgOzsKICAgICAgICBkZXN0cm95KQogICAg"\
|
||||||
|
"ICAgICAgICBlY2hvICJEZXN0cm95aW5nIHZvbHVtZSAke3ZvbHVtZV9uYW1lfSIKICAgICAgICAg"\
|
||||||
|
"ICAgZG9ja2VyIHZvbHVtZSBybSAiJHt2b2x1bWVfbmFtZX0iCiAgICAgICAgICAgIDs7CiAgICAg"\
|
||||||
|
"ICAgYmFja3VwKQogICAgICAgICAgICBlY2hvICJCYWNraW5nIHVwIHZvbHVtZSAke3ZvbHVtZV9u"\
|
||||||
|
"YW1lfSIKICAgICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke3ZvbHVtZV9uYW1lfSI6L3Zv"\
|
||||||
|
"bHVtZSAtdiAiJHtiYWNrdXBfZm9sZGVyfSI6L2JhY2t1cCBkZWJpYW4gYmFzaCAtYyAidGFyIC1j"\
|
||||||
|
"enZmIC9iYWNrdXAvYmFja3VwLnRneiAtQyAvdm9sdW1lIC4gJiYgY2hvd24gLVIgJE1ZSUQ6JE1Z"\
|
||||||
|
"R1JQIC9iYWNrdXAiCiAgICAgICAgICAgIDs7CiAgICAgICAgcmVzdG9yZSkKICAgICAgICAgICAg"\
|
||||||
|
"ZWNobyAiUmVzdG9yaW5nIHZvbHVtZSAke3ZvbHVtZV9uYW1lfSIKICAgICAgICAgICAgZG9ja2Vy"\
|
||||||
|
"IHZvbHVtZSBybSAiJHt2b2x1bWVfbmFtZX0iCiAgICAgICAgICAgIGRvY2tlciB2b2x1bWUgY3Jl"\
|
||||||
|
"YXRlICIke3ZvbHVtZV9uYW1lfSIKICAgICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke3Zv"\
|
||||||
|
"bHVtZV9uYW1lfSI6L3ZvbHVtZSAtdiAiJHtiYWNrdXBfZm9sZGVyfSI6L2JhY2t1cCBkZWJpYW4g"\
|
||||||
|
"YmFzaCAtYyAidGFyIC14enZmIC9iYWNrdXAvYmFja3VwLnRneiAtQyAvdm9sdW1lIC0tc3RyaXAt"\
|
||||||
|
"Y29tcG9uZW50cz0xIgogICAgICAgICAgICA7OwogICAgZXNhYwp9ICAgCgpfYXV0b2NvbW1hbmRy"\
|
||||||
|
"dW5fcGF0aCgpIHsKICAgIGxvY2FsIGNvbW1hbmQ9IiQxIgogICAgbG9jYWwgcGF0aD0iJDIiCiAg"\
|
||||||
|
"ICBsb2NhbCBiYWNrdXBfZm9sZGVyPSIkMyIKCiAgICBjYXNlICIkY29tbWFuZCIgaW4KICAgICAg"\
|
||||||
|
"ICBjcmVhdGUpCiAgICAgICAgICAgIGlmIFsgLWQgIiR7cGF0aH0iIF07IHRoZW4KICAgICAgICAg"\
|
||||||
|
"ICAgICAgIGVjaG8gIlBhdGggJHtwYXRofSBhbHJlYWR5IGV4aXN0cyAtIHVuY2hhbmdlZCIKICAg"\
|
||||||
|
"ICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICBmaQogICAgICAgICAgICBlY2hvICJDcmVh"\
|
||||||
|
"dGluZyBwYXRoICR7cGF0aH0iCiAgICAgICAgICAgIG1rZGlyIC1wICIke3BhdGh9IgogICAgICAg"\
|
||||||
|
"ICAgICA7OwogICAgICAgIGRlc3Ryb3kpCiAgICAgICAgICAgIGVjaG8gIkRlc3Ryb3lpbmcgcGF0"\
|
||||||
|
"aCAke3BhdGh9IgogICAgICAgICAgICBsb2NhbCBwYXRoX3BhcmVudDsKICAgICAgICAgICAgcGF0"\
|
||||||
|
"aF9wYXJlbnQ9JChkaXJuYW1lICIke3BhdGh9IikKICAgICAgICAgICAgbG9jYWwgcGF0aF9jaGls"\
|
||||||
|
"ZDsKICAgICAgICAgICAgcGF0aF9jaGlsZD0kKGJhc2VuYW1lICIke3BhdGh9IikKICAgICAgICAg"\
|
||||||
|
"ICAgaWYgWyAtZCAiJHtwYXRoX3BhcmVudH0vJHtwYXRoX2NoaWxkfSIgXTsgdGhlbgogICAgICAg"\
|
||||||
|
"ICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke3BhdGhfcGFyZW50fSI6L3ZvbHVtZSBkZWJp"\
|
||||||
|
"YW4gYmFzaCAtYyAicm0gLXJmdiAvdm9sdW1lLyR7cGF0aF9jaGlsZH0iIHx8IGVjaG8gIkZhaWxl"\
|
||||||
|
"ZCB0byBkZXN0cm95IHBhdGggJHtwYXRofSIKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg"\
|
||||||
|
"ICAgZWNobyAiUGF0aCAke3BhdGh9IGRvZXMgbm90IGV4aXN0IC0gbm90aGluZyB0byBkZXN0cm95"\
|
||||||
|
"IgogICAgICAgICAgICBmaQogICAgICAgICAgICA7OwogICAgICAgIGJhY2t1cCkKICAgICAgICAg"\
|
||||||
|
"ICAgZWNobyAiQmFja2luZyB1cCBwYXRoICR7cGF0aH0iCiAgICAgICAgICAgIGlmIFsgLWQgIiR7"\
|
||||||
|
"cGF0aH0iIF07IHRoZW4KICAgICAgICAgICAgICAgIGRvY2tlciBydW4gLS1ybSAtdiAiJHtwYXRo"\
|
||||||
|
"fSI6L3BhdGggLXYgIiR7YmFja3VwX2ZvbGRlcn0iOi9iYWNrdXAgZGViaWFuIGJhc2ggLWMgInRh"\
|
||||||
|
"ciAtY3p2ZiAvYmFja3VwL2JhY2t1cC50Z3ogLUMgL3BhdGggLiAmJiBjaG93biAtUiAkTVlJRDok"\
|
||||||
|
"TVlHUlAgL2JhY2t1cCIKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgZWNobyAiUGF0"\
|
||||||
|
"aCAke3BhdGh9IGRvZXMgbm90IGV4aXN0IC0gbm90aGluZyB0byBiYWNrdXAiCiAgICAgICAgICAg"\
|
||||||
|
"IGZpCiAgICAgICAgICAgIDs7CiAgICAgICAgcmVzdG9yZSkKICAgICAgICAgICAgaWYgWyAhIC1m"\
|
||||||
|
"ICIke2JhY2t1cF9mb2xkZXJ9L2JhY2t1cC50Z3oiIF07IHRoZW4KICAgICAgICAgICAgICAgIGVj"\
|
||||||
|
"aG8gIkJhY2t1cCBmaWxlICR7YmFja3VwX2ZvbGRlcn0vYmFja3VwLnRneiBkb2VzIG5vdCBleGlz"\
|
||||||
|
"dCAtIG5vdGhpbmcgdG8gcmVzdG9yZSIKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg"\
|
||||||
|
"ZWNobyAiQ2xlYXJpbmcgZXhpc3RpbmcgZGF0YSBpbiBwYXRoICR7cGF0aH0iCiAgICAgICAgICAg"\
|
||||||
|
"ICAgICBkb2NrZXIgcnVuIC0tcm0gLXYgIiR7cGF0aH0iOi9wYXRoIGRlYmlhbiBiYXNoIC1jICJy"\
|
||||||
|
"bSAtcmZ2IC9wYXRoL3sqLC4qfSIKICAgICAgICAgICAgICAgIGVjaG8gIlJlc3RvcmluZyBwYXRo"\
|
||||||
|
"ICR7cGF0aH0gZnJvbSBiYWNrdXAgZmlsZSAke2JhY2t1cF9mb2xkZXJ9L2JhY2t1cC50Z3oiCiAg"\
|
||||||
|
"ICAgICAgICAgICAgICB0YXIgLXh6dmYgIiR7YmFja3VwX2ZvbGRlcn0vYmFja3VwLnRneiIgLUMg"\
|
||||||
|
"IiR7cGF0aH0iIC0tc3RyaXAtY29tcG9uZW50cz0xCiAgICAgICAgICAgIGZpCiAgICAgICAgICAg"\
|
||||||
|
"IDs7CiAgICBlc2FjCn0KCl9hdXRvY29tbWFuZHJ1bl9maWxlKCkgewogICAgbG9jYWwgY29tbWFu"\
|
||||||
|
"ZD0iJDEiCiAgICBsb2NhbCBmaWxlcGF0aD0iJDIiCiAgICBsb2NhbCBiYWNrdXBfZm9sZGVyPSIk"\
|
||||||
|
"MyIKCiAgICBjYXNlICIkY29tbWFuZCIgaW4KICAgICAgICBjcmVhdGUpCiAgICAgICAgICAgIGxv"\
|
||||||
|
"Y2FsIGZpbGVfcGFyZW50OwogICAgICAgICAgICBmaWxlX3BhcmVudD0kKGRpcm5hbWUgIiR7Zmls"\
|
||||||
|
"ZXBhdGh9IikKICAgICAgICAgICAgbG9jYWwgZmlsZV9uYW1lOwogICAgICAgICAgICBmaWxlX25h"\
|
||||||
|
"bWU9JChiYXNlbmFtZSAiJHtmaWxlcGF0aH0iKQogICAgICAgICAgICBpZiBbICEgLWQgIiR7Zmls"\
|
||||||
|
"ZV9wYXJlbnR9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICBlY2hvICJQYXJlbnQgZGlyZWN0b3J5"\
|
||||||
|
"ICR7ZmlsZV9wYXJlbnR9IG9mICR7ZmlsZV9uYW1lfSBkb2VzIG5vdCBleGlzdCAtIGNyZWF0aW5n"\
|
||||||
|
"IgogICAgICAgICAgICAgICAgbWtkaXIgLXAgIiR7ZmlsZV9wYXJlbnR9IgogICAgICAgICAgICBm"\
|
||||||
|
"aQogICAgICAgICAgICA7OwogICAgICAgIGRlc3Ryb3kpCiAgICAgICAgICAgIHJtIC1mICIke2Zp"\
|
||||||
|
"bGVwYXRofSIKICAgICAgICAgICAgOzsKICAgICAgICBiYWNrdXApCiAgICAgICAgICAgIGVjaG8g"\
|
||||||
|
"IkJhY2tpbmcgdXAgZmlsZSAke2ZpbGVwYXRofSIKICAgICAgICAgICAgbG9jYWwgZmlsZV9wYXJl"\
|
||||||
|
"bnQ7CiAgICAgICAgICAgIGZpbGVfcGFyZW50PSQoZGlybmFtZSAiJHtmaWxlcGF0aH0iKQogICAg"\
|
||||||
|
"ICAgICAgICBsb2NhbCBmaWxlX25hbWU7CiAgICAgICAgICAgIGZpbGVfbmFtZT0kKGJhc2VuYW1l"\
|
||||||
|
"ICIke2ZpbGVwYXRofSIpCiAgICAgICAgICAgIGlmIFsgLWYgIiR7ZmlsZV9wYXJlbnR9LyR7Zmls"\
|
||||||
|
"ZV9uYW1lfSIgXTsgdGhlbgogICAgICAgICAgICAgICAgZG9ja2VyIHJ1biAtLXJtIC12ICIke2Zp"\
|
||||||
|
"bGVfcGFyZW50fSI6L3ZvbHVtZSAtdiAiJHtiYWNrdXBfZm9sZGVyfSI6L2JhY2t1cCBkZWJpYW4g"\
|
||||||
|
"YmFzaCAtYyAiY3AgL3ZvbHVtZS8ke2ZpbGVfbmFtZX0gL2JhY2t1cC8ke2ZpbGVfbmFtZX0gJiYg"\
|
||||||
|
"Y2hvd24gLVIgJE1ZSUQ6JE1ZR1JQIC9iYWNrdXAiCiAgICAgICAgICAgIGVsc2UKICAgICAgICAg"\
|
||||||
|
"ICAgICAgIGVjaG8gIkZpbGUgJHtmaWxlcGF0aH0gZG9lcyBub3QgZXhpc3QgLSBub3RoaW5nIHRv"\
|
||||||
|
"IGJhY2t1cCIKICAgICAgICAgICAgZmkKICAgICAgICAgICAgOzsKICAgICAgICByZXN0b3JlKQog"\
|
||||||
|
"ICAgICAgICAgICBlY2hvICJSZXN0b3JpbmcgZmlsZSAke2ZpbGVwYXRofSIKICAgICAgICAgICAg"\
|
||||||
|
"bG9jYWwgZmlsZV9uYW1lOwogICAgICAgICAgICBmaWxlX25hbWU9JChiYXNlbmFtZSAiJHtmaWxl"\
|
||||||
|
"cGF0aH0iKQogICAgICAgICAgICBybSAtZiAiJHtmaWxlcGF0aH0iIHx8IHJldHVybl9kaWUgIlVu"\
|
||||||
|
"YWJsZSB0byByZW1vdmUgZXhpc3RpbmcgZmlsZSAke2ZpbGVwYXRofSwgcmVzdG9yZSBmYWlsZWQu"\
|
||||||
|
"IgogICAgICAgICAgICBjcCAiJHtiYWNrdXBfZm9sZGVyfS8ke2ZpbGVfbmFtZX0iICIke2ZpbGVw"\
|
||||||
|
"YXRofSIgfHwgcmV0dXJuX2RpZSAiVW5hYmxlIHRvIGNvcHkgZmlsZSAke2JhY2t1cF9mb2xkZXJ9"\
|
||||||
|
"LyR7ZmlsZV9uYW1lfSB0byAke2ZpbGVwYXRofSwgcmVzdG9yZSBmYWlsZWQuIgogICAgICAgICAg"\
|
||||||
|
"ICA7OwogICAgZXNhYwp9CgpfYXV0b2NvbW1hbmRwYXJzZSgpIHsKICAgICMgZmlyc3QgYXJndW1l"\
|
||||||
|
"bnQgaXMgdGhlIGNvbW1hbmQKICAgICMgaWYgdGhlIGNvbW1hbmQgaXMgYmFja3VwIG9yIHJlc3Rv"\
|
||||||
|
"cmUsIHRoZW4gdGhlIGxhc3QgdHdvIGFyZ3VtZW50cyBhcmUgdGhlIGJhY2t1cCBmaWxlIGFuZCB0"\
|
||||||
|
"aGUgdGVtcG9yYXJ5IHBhdGgKICAgICMgYWxsIG90aGVyIGFyZ3VtZW50cyBhcmUgb2YgZm9ybToK"\
|
||||||
|
"ICAgICMga2V5PXZhbHVlCiAgICAjIHdoZXJlIGtleSBjYW4gYmUgb25lIG9mIHZvbHVtZSwgcGF0"\
|
||||||
|
"aCBvciBmaWxlLgogICAgIyB2YWx1ZSBpcyB0aGUgcGF0aCBvciB2b2x1bWUgbmFtZS4KCiAgICAj"\
|
||||||
|
"IHdlIGl0ZXJhdGUgb3ZlciB0aGUga2V5PXZhbHVlIGFyZ3VtZW50cywgYW5kIGZvciBlYWNoIHdl"\
|
||||||
|
"IGNhbGw6CiAgICAjICAgIGF1dG9ydW4gPGNvbW1hbmQ+IDxiYWNrdXBmaWxlPiA8a2V5PiA8dmFs"\
|
||||||
|
"dWU+CgogICAgbG9jYWwgY29tbWFuZD0iJDEiCiAgICBzaGlmdAoKICAgIGxvY2FsIGJhY2t1cF90"\
|
||||||
|
"ZW1wX3BhdGg9IiQxIgogICAgc2hpZnQKCiAgICBlY2hvICJhdXRvY29tbWFuZHBhcnNlOiBjb21t"\
|
||||||
|
"YW5kPSRjb21tYW5kIGJhY2t1cF90ZW1wX3BhdGg9JGJhY2t1cF90ZW1wX3BhdGgiCgogICAgIyBF"\
|
||||||
|
"eHRyYWN0IHRoZSBiYWNrdXAgZmlsZSBhbmQgdGVtcCBwYXRoIChsYXN0IHR3byBhcmd1bWVudHMp"\
|
||||||
|
"CiAgICBsb2NhbCBhcmdzPSgiJEAiKQogICAgbG9jYWwgYXJnX2NvdW50PSR7I2FyZ3NbQF19CiAg"\
|
||||||
|
"ICAKICAgICMgUHJvY2VzcyBhbGwga2V5PXZhbHVlIHBhaXJzCiAgICBmb3IgKChpPTA7IGk8JGFy"\
|
||||||
|
"Z19jb3VudDsgaSsrKSk7IGRvCiAgICAgICAgbG9jYWwgcGFpcj0iJHthcmdzWyRpXX0iCiAgICAg"\
|
||||||
|
"ICAgCiAgICAgICAgIyBTa2lwIGlmIG5vdCBpbiBrZXk9dmFsdWUgZm9ybWF0CiAgICAgICAgaWYg"\
|
||||||
|
"W1sgIiRwYWlyIiAhPSAqIj0iKiBdXTsgdGhlbgogICAgICAgICAgICBjb250aW51ZQogICAgICAg"\
|
||||||
|
"IGZpCiAgICAgICAgCiAgICAgICAgbG9jYWwga2V5PSIke3BhaXIlJT0qfSIKICAgICAgICBsb2Nh"\
|
||||||
|
"bCB2YWx1ZT0iJHtwYWlyIyo9fSIKCiAgICAgICAgIyBjcmVhdGUgYmFja3VwIGZvbGRlciB1bmlx"\
|
||||||
|
"dWUgdG8ga2V5L3ZhbHVlLgogICAgICAgIGxvY2FsIGJmb2xkZXI7CiAgICAgICAgYmZvbGRlcj0k"\
|
||||||
|
"KGVjaG8gIiR7a2V5fV8ke3ZhbHVlfSIgfCB0ciAtY2QgJ1s6YWxudW06XV8tJykKICAgICAgICBs"\
|
||||||
|
"b2NhbCB0YXJnZXRwYXRoPSIke2JhY2t1cF90ZW1wX3BhdGh9LyR7YmZvbGRlcn0iCiAgICAgICAg"\
|
||||||
|
"bWtkaXIgLXAgIiR7dGFyZ2V0cGF0aH0iCgogICAgICAgICMgS2V5IG11c3QgYmUgb25lIG9mIHZv"\
|
||||||
|
"bHVtZSwgcGF0aCBvciBmaWxlCiAgICAgICAgY2FzZSAiJGtleSIgaW4KICAgICAgICAgICAgdm9s"\
|
||||||
|
"dW1lKQogICAgICAgICAgICAgICAgX2F1dG9jb21tYW5kcnVuX3ZvbHVtZSAiJGNvbW1hbmQiICIk"\
|
||||||
|
"dmFsdWUiICIkdGFyZ2V0cGF0aCIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIHBhdGgp"\
|
||||||
|
"CiAgICAgICAgICAgICAgICBfYXV0b2NvbW1hbmRydW5fcGF0aCAiJGNvbW1hbmQiICIkdmFsdWUi"\
|
||||||
|
"ICIkdGFyZ2V0cGF0aCIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgIGZpbGUpCiAgICAg"\
|
||||||
|
"ICAgICAgICAgICBfYXV0b2NvbW1hbmRydW5fZmlsZSAiJGNvbW1hbmQiICIkdmFsdWUiICIkdGFy"\
|
||||||
|
"Z2V0cGF0aCIKICAgICAgICAgICAgICAgIDs7CiAgICAgICAgICAgICopCiAgICAgICAgICAgICAg"\
|
||||||
|
"ICBfZGllICJVbmtub3duIGtleSAka2V5IHBhc3NlZCB0byBhdXRvJHtjb21tYW5kfS4gV2Ugb25s"\
|
||||||
|
"eSBzdXBwb3J0IHZvbHVtZSwgcGF0aCBhbmQgZmlsZS4iCiAgICAgICAgICAgICAgICA7OwogICAg"\
|
||||||
|
"ICAgIGVzYWMKICAgIGRvbmUKfQoKCmRhdGFjcmVhdGUoKSB7CiAgICBfYXV0b2NvbW1hbmRwYXJz"\
|
||||||
|
"ZSBjcmVhdGUgbm9uZSAiJEAiCn0KCgpkYXRhZGVzdHJveSgpIHsKICAgIF9hdXRvY29tbWFuZHBh"\
|
||||||
|
"cnNlIGRlc3Ryb3kgbm9uZSAiJEAiCn0KCmRhdGFiYWNrdXAoKSB7CiAgICBfY2hlY2tfcmVxdWly"\
|
||||||
|
"ZWRfZW52X3ZhcnMgIkJBQ0tVUF9GSUxFIiAiVEVNUF9ESVIiCiAgICBCQUNLVVBfVEVNUF9QQVRI"\
|
||||||
|
"PSIkVEVNUF9ESVIvYmFja3VwIgoKCiAgICBta2RpciAtcCAiJEJBQ0tVUF9URU1QX1BBVEgiCiAg"\
|
||||||
|
"ICBlY2hvICJfYXV0b2NvbW1hbmRwYXJzZSBbYmFja3VwXSBbJEJBQ0tVUF9URU1QX1BBVEhdIiAi"\
|
||||||
|
"JEAiCiAgICBfYXV0b2NvbW1hbmRwYXJzZSBiYWNrdXAgIiRCQUNLVVBfVEVNUF9QQVRIIiAiJEAi"\
|
||||||
|
"CgogICAgdGFyIHpjdmYgIiRCQUNLVVBfRklMRSIgLUMgIiRCQUNLVVBfVEVNUF9QQVRIIiAuCn0K"\
|
||||||
|
"CmRhdGFyZXN0b3JlKCkgewogICAgX2NoZWNrX3JlcXVpcmVkX2Vudl92YXJzICJCQUNLVVBfRklM"\
|
||||||
|
"RSIgIlRFTVBfRElSIgogICAgQkFDS1VQX1RFTVBfUEFUSD0iJFRFTVBfRElSL3Jlc3RvcmUiCgog"\
|
||||||
|
"ICAgZWNobyAiX2F1dG9jb21tYW5kcGFyc2UgW3Jlc3RvcmVdIFskQkFDS1VQX1RFTVBfUEFUSF0i"\
|
||||||
|
"ICIkQCIKCiAgICBta2RpciAtcCAiJEJBQ0tVUF9URU1QX1BBVEgiCiAgICB0YXIgenh2ZiAiJEJB"\
|
||||||
|
"Q0tVUF9GSUxFIiAtQyAiJEJBQ0tVUF9URU1QX1BBVEgiIC0tc3RyaXAtY29tcG9uZW50cz0xCgog"\
|
||||||
|
"ICAgX2F1dG9jb21tYW5kcGFyc2UgcmVzdG9yZSAiJEJBQ0tVUF9URU1QX1BBVEgiICIkQCIKfQo=";
|
||||||
|
|
||||||
|
// Decode Base64 data
|
||||||
|
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
|
||||||
|
unsigned char* decoded_data = new unsigned char[decoded_size];
|
||||||
|
size_t actual_size;
|
||||||
|
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
|
||||||
|
|
||||||
|
bool file_written = _recreate_file_(outpath, 11153801105139786982ULL, std::filesystem::perms(493), decoded_data, actual_size);
|
||||||
|
delete[] decoded_data;
|
||||||
|
any_written = any_written || file_written;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// File: agent-install.sh
|
||||||
|
fs::path outpath = fs::path(destination_folder) / "agent-install.sh";
|
||||||
|
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgVGhpcyBzY3JpcHQgaXMgdXNlZCB0byBpbnN0YWxsIHRoZSBkcm9wc2hl"\
|
||||||
|
"bGwgYWdlbnQgb24gYSByZW1vdGUgc2VydmVyLgoKU0NSSVBUX0RJUj0kKGRpcm5hbWUgIiQwIikK"\
|
||||||
|
"CnNldCAtYQoKQUdFTlRfUEFUSD0iJFNDUklQVF9ESVIiCgpzZXQgK2EKCgppZiBbIC1mICIkU0NS"\
|
||||||
|
"SVBUX0RJUi9jb21tb24uc2giIF07IHRoZW4KICAgIHNvdXJjZSAiJFNDUklQVF9ESVIvY29tbW9u"\
|
||||||
|
"LnNoIgplbHNlCiAgICBlY2hvICJFcnJvcjogY29tbW9uLnNoIG5vdCBmb3VuZCBpbiAkU0NSSVBU"\
|
||||||
|
"X0RJUiIKICAgIGV4aXQgMQpmaQoKX2NoZWNrX3JlcXVpcmVkX2Vudl92YXJzICJBR0VOVF9QQVRI"\
|
||||||
|
"IgoKZnVuY3Rpb24gaW5zdGFsbF9iYjY0KCkgeyAgICAKICAgIEJCNjRfcGF0aD0iJHtBR0VOVF9Q"\
|
||||||
|
"QVRIfS9iYjY0IgogICAgQVJDSD0kKHVuYW1lIC1tKQogICAgaWYgISBjdXJsIC1zICJodHRwczov"\
|
||||||
|
"L2dldGJpbi54eXovYmI2NDpsYXRlc3QtJHtBUkNIfSIgPiAiJHtCQjY0X3BhdGh9IjsgdGhlbgog"\
|
||||||
|
"ICAgICAgIF9kaWUgIkZhaWxlZCB0byBpbnN0YWxsIGJiNjQuIEN1cmwgcmV0dXJuZWQgbm9uLXpl"\
|
||||||
|
"cm8gZXhpdCBjb2RlLiIKICAgIGZpCiAgICBjaG93biAiJChpZCAtdSAiJFVTRVIiKTokKGlkIC1n"\
|
||||||
|
"ICIkVVNFUiIpIiAiJHtCQjY0X3BhdGh9IgogICAgY2htb2QgK3ggIiR7QkI2NF9wYXRofSIKCiAg"\
|
||||||
|
"ICAjIHRlc3QgaWYgYmI2NCBpcyBpbnN0YWxsZWQKICAgIGlmIFZFUj0kKCIke0JCNjRfcGF0aH0i"\
|
||||||
|
"IHZlcnNpb24pOyB0aGVuCiAgICAgICAgZWNobyAiYmI2NCB2JFZFUiBpbnN0YWxsZWQuIgogICAg"\
|
||||||
|
"ZWxzZQogICAgICAgIF9kaWUgImJiNjQgZGlkIG5vdCBpbnN0YWxsIGNvcnJlY3RseS4iCiAgICBm"\
|
||||||
|
"aQoKICAgIHJldHVybiAwOwp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBDaGVjayBwcmUtcmVxdWlz"\
|
||||||
|
"aXRlcwoKIyBDaGVjayBpZiBjdXJsIGlzIGluc3RhbGxlZAppZiAhIGNvbW1hbmQgLXYgY3VybCAm"\
|
||||||
|
"PiAvZGV2L251bGw7IHRoZW4KICAgIF9kaWUgIkN1cmwgaXMgbm90IGluc3RhbGxlZC4gQ3VybCBp"\
|
||||||
|
"cyByZXF1aXJlZCBmb3IgYWdlbnQgaW5zdGFsbGF0aW9uLiIKZmkKCiMgY2hlY2sgZG9ja2VyIGlu"\
|
||||||
|
"c3RhbGxhdGlvbgppZiAhIGNvbW1hbmQgLXYgZG9ja2VyICY+IC9kZXYvbnVsbDsgdGhlbgogICAg"\
|
||||||
|
"ZWNobyAiRG9ja2VyIGlzIG5vdCBpbnN0YWxsZWQuIERvY2tlciBpcyByZXF1aXJlZCBmb3IgYWdl"\
|
||||||
|
"bnQgaW5zdGFsbGF0aW9uLiIKICAgIGV4aXQgMQpmaQoKIyBjaGVjayByc3luYyBpbnN0YWxsYXRp"\
|
||||||
|
"b24KaWYgISBjb21tYW5kIC12IHJzeW5jICY+IC9kZXYvbnVsbDsgdGhlbgogICAgZWNobyAiUnN5"\
|
||||||
|
"bmMgaXMgbm90IGluc3RhbGxlZC4gUnN5bmMgaXMgcmVxdWlyZWQgZm9yIGFnZW50IGluc3RhbGxh"\
|
||||||
|
"dGlvbi4iCiAgICBleGl0IDEKZmkKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZWNobyAiSW5zdGFsbGlu"\
|
||||||
|
"ZyBkcm9wc2hlbGwgYWdlbnQuLi4iCgppbnN0YWxsX2JiNjQKCiMtLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoj"\
|
||||||
|
"IGNvbmZpcm0gd2UncmUgaW4gYSBnb29kIHN0YXRlLgoKcmVxdWlyZWRfZmlsZXM9KAogICAgIiRB"\
|
||||||
|
"R0VOVF9QQVRIL2JiNjQiCiAgICAiJEFHRU5UX1BBVEgvX2FsbHNlcnZpY2Vzc3RhdHVzLnNoIgog"\
|
||||||
|
"ICAgIiRBR0VOVF9QQVRIL2NvbW1vbi5zaCIKICAgICIkQUdFTlRfUEFUSC9kYXRhY29tbWFuZHMu"\
|
||||||
|
"c2giCikKCiMgY2hlY2sgaWYgYWxsIGZpbGVzIGV4aXN0CmZvciBmaWxlIGluICIke3JlcXVpcmVk"\
|
||||||
|
"X2ZpbGVzW0BdfSI7IGRvCiAgICBpZiBbICEgLWYgIiRmaWxlIiBdOyB0aGVuCiAgICAgICAgX2Rp"\
|
||||||
|
"ZSAiJGZpbGUgZG9lcyBub3QgZXhpc3QuIFBsZWFzZSBjaGVjayB0aGUgaW5zdGFsbGF0aW9uLiIK"\
|
||||||
|
"ICAgIGZpCmRvbmUKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgplY2hvICJDb21wbGV0ZWQgZHJvcHNoZWxs"\
|
||||||
|
"IGFnZW50IGluc3RhbGxhdGlvbi4iCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZXhpdCAwCg==";
|
||||||
|
|
||||||
|
// Decode Base64 data
|
||||||
|
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
|
||||||
|
unsigned char* decoded_data = new unsigned char[decoded_size];
|
||||||
|
size_t actual_size;
|
||||||
|
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
|
||||||
|
|
||||||
|
bool file_written = _recreate_file_(outpath, 15303959887899096456ULL, std::filesystem::perms(493), decoded_data, actual_size);
|
||||||
|
delete[] decoded_data;
|
||||||
|
any_written = any_written || file_written;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// File: _allservicesstatus.sh
|
||||||
|
fs::path outpath = fs::path(destination_folder) / "_allservicesstatus.sh";
|
||||||
|
static const char filedata_base64[] = "IyEvYmluL2Jhc2gKCiMgVGhpcyBzY3JpcHQgY2hlY2tzIEFMTCBzZXJ2aWNlcyBvbiB0aGUgc2Vy"\
|
||||||
|
"dmVyIGFuZCByZXR1cm5zIGEgc3RhdHVzIGZvciBlYWNoLgoKIyBSZXR1cm4gZm9ybWF0IGlzIHNp"\
|
||||||
|
"bXBsZSBFTlYgd2l0aCB0aGUgZm9sbG93aW5nIGZvcm1hdDoKIyBTRVJWSUNFX05BTUVfSEVBTFRI"\
|
||||||
|
"PWhlYWx0aHl8dW5oZWFsdGh5fHVua25vd24KIyBTRVJWSUNFX05BTUVfUE9SVFM9cG9ydDEscG9y"\
|
||||||
|
"dDIscG9ydDMKCiMgR2V0IGFsbCBzZXJ2aWNlcyBvbiB0aGUgc2VydmVyClNDUklQVF9ESVI9IiQo"\
|
||||||
|
"ZGlybmFtZSAiJDAiKSIKCiAgICAjIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tCiAgICAjIC8vIHJlbW90ZSBwYXRocwogICAgIyAvLyBEUk9QU0hFTExfRElSCiAgICAj"\
|
||||||
|
"IC8vICAgfC0tIGJhY2t1cHMKICAgICMgLy8gICB8LS0gdGVtcF9maWxlcwogICAgIyAvLyAgIHwt"\
|
||||||
|
"LSBhZ2VudAogICAgIyAvLyAgIHwgICB8LS0gYmI2NAogICAgIyAvLyAgIHwgICB8LS0gKG90aGVy"\
|
||||||
|
"IGFnZW50IGZpbGVzLCBpbmNsdWRpbmcgX2FsbHNlcnZpY2Vzc3RhdHVzLnNoKQogICAgIyAvLyAg"\
|
||||||
|
"IHwtLSBzZXJ2aWNlcwogICAgIyAvLyAgICAgICB8LS0gc2VydmljZSBuYW1lCiAgICAjIC8vICAg"\
|
||||||
|
"ICAgICAgICB8LS0gY29uZmlnCiAgICAjIC8vICAgICAgICAgICAgICAgfC0tIHNlcnZpY2UuZW52"\
|
||||||
|
"IChhY3R1YWwgc2VydmljZSBjb25maWcpCiAgICAjIC8vICAgICAgICAgICAgICAgfC0tIC50ZW1w"\
|
||||||
|
"bGF0ZV9pbmZvLmVudgogICAgIyAvLyAgICAgICAgICAgfC0tIHRlbXBsYXRlCiAgICAjIC8vICAg"\
|
||||||
|
"ICAgICAgICAgICAgfC0tIChzY3JpcHQgZmlsZXMpCiAgICAjIC8vICAgICAgICAgICAgICAgfC0t"\
|
||||||
|
"IGNvbmZpZwogICAgIyAvLyAgICAgICAgICAgICAgICAgICB8LS0gc2VydmljZS5lbnYgKGRlZmF1"\
|
||||||
|
"bHQgc2VydmljZSBjb25maWcpCiAgICAjIC8vICAgICAgICAgICAgICAgICAgIHwtLSAudGVtcGxh"\
|
||||||
|
"dGVfaW5mby5lbnYKICAgICMgLy8gICAgICAgICAgICAgICAgICAgfC0tIChvdGhlciBjb25maWcg"\
|
||||||
|
"ZmlsZXMgZm9yIHNwZWNpZmljIHNlcnZlciZzZXJ2aWNlKQoKIyBHZXQgYWxsIHNlcnZpY2VzIG9u"\
|
||||||
|
"IHRoZSBzZXJ2ZXIKU0VSVklDRVNfUEFUSD0kKHJlYWxwYXRoICIke1NDUklQVF9ESVJ9Ly4uL3Nl"\
|
||||||
|
"cnZpY2VzLyIpCgpDVVJSRU5UX09VVFBVVD0iIgpDVVJSRU5UX0VYSVRfQ09ERT0wCgpsb2FkX2Rv"\
|
||||||
|
"dGVudigpewogICAgbG9jYWwgZmlsZV9wYXRoPSQxCiAgICBpZiBbIC1mICIke2ZpbGVfcGF0aH0i"\
|
||||||
|
"IF07IHRoZW4KICAgICMgc2hlbGxjaGVjayBzb3VyY2U9L2Rldi9udWxsCiAgICAgICAgc291cmNl"\
|
||||||
|
"ICIke2ZpbGVfcGF0aH0iCiAgICBmaQp9CgpfY2hlY2tfcmVxdWlyZWRfZW52X3ZhcnNfYWxsc2Vy"\
|
||||||
|
"dmljZXNzdGF0dXMoKSB7CiAgICBsb2NhbCByZXF1aXJlZF92YXJzPSgiJEAiKQogICAgZm9yIHZh"\
|
||||||
|
"ciBpbiAiJHtyZXF1aXJlZF92YXJzW0BdfSI7IGRvCiAgICAgICAgaWYgWyAteiAiJHshdmFyfSIg"\
|
||||||
|
"XTsgdGhlbgogICAgICAgICAgICBfZGllICJSZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAk"\
|
||||||
|
"dmFyIGlzIG5vdCBzZXQiCiAgICAgICAgZmkKICAgIGRvbmUKfQoKZnVuY3Rpb24gcnVuX2NvbW1h"\
|
||||||
|
"bmQoKSB7CiAgICBsb2NhbCBzZXJ2aWNlX3BhdGg9JDEKICAgIGxvY2FsIGNvbW1hbmQ9JDIKICAg"\
|
||||||
|
"IGxvY2FsIGNhcHR1cmVfb3V0cHV0PSR7MzotZmFsc2V9ICAjIGRlZmF1bHQgdG8gZmFsc2UgaWYg"\
|
||||||
|
"bm90IHNwZWNpZmllZAoKICAgICMgY2hlY2sgaWYgdGhlIGNvbW1hbmQgaXMgYSBmaWxlCiAgICBp"\
|
||||||
|
"ZiBbICEgLWYgIiR7c2VydmljZV9wYXRofS90ZW1wbGF0ZS8ke2NvbW1hbmR9LnNoIiBdOyB0aGVu"\
|
||||||
|
"CiAgICAgICAgcmV0dXJuOwogICAgZmkKCiAgICAjIHJ1biB0aGUgY29tbWFuZCBpbiBhIHN1YnNo"\
|
||||||
|
"ZWxsIHRvIHByZXZlbnQgZW52aXJvbm1lbnQgY2hhbmdlcwogICAgQ1VSUkVOVF9PVVRQVVQ9JCgK"\
|
||||||
|
"ICAgICAgICBzZXQgLWEKCiAgICAgICAgbG9hZF9kb3RlbnYgIiR7c2VydmljZV9wYXRofS9jb25m"\
|
||||||
|
"aWcvc2VydmljZS5lbnYiCiAgICAgICAgbG9hZF9kb3RlbnYgIiR7c2VydmljZV9wYXRofS9jb25m"\
|
||||||
|
"aWcvLnRlbXBsYXRlX2luZm8uZW52IgoKICAgICAgICAjIHVwZGF0ZSB0aGUgbWFpbiB2YXJpYWJs"\
|
||||||
|
"ZXMuCiAgICAgICAgZXhwb3J0IENPTkZJR19QQVRIPSIke3NlcnZpY2VfcGF0aH0vY29uZmlnIgog"\
|
||||||
|
"ICAgICAgIGV4cG9ydCBTRVJWSUNFPSIke1NFUlZJQ0VfTkFNRX0iCiAgICAgICAgZXhwb3J0IERP"\
|
||||||
|
"Q0tFUl9DTElfSElOVFM9ZmFsc2UKCiAgICAgICAgc2V0ICthCgogICAgICAgIF9jaGVja19yZXF1"\
|
||||||
|
"aXJlZF9lbnZfdmFyc19hbGxzZXJ2aWNlc3N0YXR1cyAiQ09ORklHX1BBVEgiICJTRVJWRVIiICJT"\
|
||||||
|
"RVJWSUNFIiAiQUdFTlRfUEFUSCIgIkhPU1RfTkFNRSIgIlRFTVBMQVRFIgoKICAgICAgICBpZiBb"\
|
||||||
|
"ICIkY2FwdHVyZV9vdXRwdXQiID0gInRydWUiIF07IHRoZW4KICAgICAgICAgICAgIyBDYXB0dXJl"\
|
||||||
|
"IGFuZCByZXR1cm4gb3V0cHV0CiAgICAgICAgICAgIGJhc2ggIiR7c2VydmljZV9wYXRofS90ZW1w"\
|
||||||
|
"bGF0ZS8ke2NvbW1hbmR9LnNoIiAyPiYxCiAgICAgICAgZWxzZQogICAgICAgICAgICAjIFJ1biBz"\
|
||||||
|
"aWxlbnRseSBhbmQgcmV0dXJuIGV4aXQgY29kZQogICAgICAgICAgICBiYXNoICIke3NlcnZpY2Vf"\
|
||||||
|
"cGF0aH0vdGVtcGxhdGUvJHtjb21tYW5kfS5zaCIgPiAvZGV2L251bGwgMj4mMQogICAgICAgIGZp"\
|
||||||
|
"CiAgICApCiAgICBDVVJSRU5UX0VYSVRfQ09ERT0kPwp9CgpmdW5jdGlvbiBjb21tYW5kX2V4aXN0"\
|
||||||
|
"cygpIHsKICAgIGxvY2FsIHNlcnZpY2VfcGF0aD0kMQogICAgbG9jYWwgY29tbWFuZD0kMgogICAg"\
|
||||||
|
"aWYgWyAhIC1mICIke3NlcnZpY2VfcGF0aH0vdGVtcGxhdGUvJHtjb21tYW5kfS5zaCIgXTsgdGhl"\
|
||||||
|
"bgogICAgICAgIHJldHVybiAxCiAgICBmaQogICAgcmV0dXJuIDAKfQoKCmlmIFsgISAtZCAiJHtT"\
|
||||||
|
"RVJWSUNFU19QQVRIfSIgXTsgdGhlbgogICAgZWNobyAiU2VydmljZXMgcGF0aCBkb2VzIG5vdCBl"\
|
||||||
|
"eGlzdDogJHtTRVJWSUNFU19QQVRIfSIKICAgIGV4aXQgMApmaQoKIyBHZXQgYWxsIHNlcnZpY2Ug"\
|
||||||
|
"bmFtZXMKU0VSVklDRV9OQU1FUz0kKGxzICIke1NFUlZJQ0VTX1BBVEh9IikKCiMgSXRlcmF0ZSBv"\
|
||||||
|
"dmVyIGFsbCBzZXJ2aWNlIG5hbWVzCmZvciBTRVJWSUNFX05BTUUgaW4gJHtTRVJWSUNFX05BTUVT"\
|
||||||
|
"fTsgZG8KCiAgICBTRVJWSUNFX1BBVEg9JChyZWFscGF0aCAiJHtTRVJWSUNFU19QQVRIfS8ke1NF"\
|
||||||
|
"UlZJQ0VfTkFNRX0iKQoKICAgICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg"\
|
||||||
|
"IyBHZXQgdGhlIHNlcnZpY2UgaGVhbHRoCiAgICBpZiAhIGNvbW1hbmRfZXhpc3RzICIke1NFUlZJ"\
|
||||||
|
"Q0VfUEFUSH0iICJzdGF0dXMiOyB0aGVuCiAgICAgICAgU0VSVklDRV9IRUFMVEg9InVua25vd24i"\
|
||||||
|
"CiAgICBlbHNlCiAgICAgICAgcnVuX2NvbW1hbmQgIiR7U0VSVklDRV9QQVRIfSIgInN0YXR1cyIg"\
|
||||||
|
"ImZhbHNlIgogICAgICAgIGlmIFsgIiR7Q1VSUkVOVF9FWElUX0NPREV9IiAtZXEgMCBdOyB0aGVu"\
|
||||||
|
"CiAgICAgICAgICAgIFNFUlZJQ0VfSEVBTFRIPSJoZWFsdGh5IgogICAgICAgIGVsc2UKICAgICAg"\
|
||||||
|
"ICAgICAgU0VSVklDRV9IRUFMVEg9InVuaGVhbHRoeSIKICAgICAgICBmaQogICAgZmkKCiAgICAj"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgR2V0IHRoZSBzZXJ2aWNlIHBv"\
|
||||||
|
"cnRzCiAgICBpZiAhIGNvbW1hbmRfZXhpc3RzICIke1NFUlZJQ0VfUEFUSH0iICJwb3J0cyI7IHRo"\
|
||||||
|
"ZW4KICAgICAgICBTRVJWSUNFX1BPUlRTPSIiCiAgICBlbHNlCiAgICAgICAgcnVuX2NvbW1hbmQg"\
|
||||||
|
"IiR7U0VSVklDRV9QQVRIfSIgInBvcnRzIiAidHJ1ZSIKICAgICAgICBTRVJWSUNFX1BPUlRTPSIk"\
|
||||||
|
"e0NVUlJFTlRfT1VUUFVUfSIKICAgIGZpCgogICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tCiAgICAjIHJldHVybiB0aGUgaGVhbHRoIGFuZCBwb3J0cwogICAgZWNobyAiJHtTRVJW"\
|
||||||
|
"SUNFX05BTUV9X0hFQUxUSD0ke1NFUlZJQ0VfSEVBTFRIfSIKICAgIGVjaG8gIiR7U0VSVklDRV9O"\
|
||||||
|
"QU1FfV9QT1JUUz0ke1NFUlZJQ0VfUE9SVFN9Igpkb25lCg==";
|
||||||
|
|
||||||
|
// Decode Base64 data
|
||||||
|
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
|
||||||
|
unsigned char* decoded_data = new unsigned char[decoded_size];
|
||||||
|
size_t actual_size;
|
||||||
|
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
|
||||||
|
|
||||||
|
bool file_written = _recreate_file_(outpath, 5357556424345185129ULL, std::filesystem::perms(493), decoded_data, actual_size);
|
||||||
|
delete[] decoded_data;
|
||||||
|
any_written = any_written || file_written;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// File: common.sh
|
||||||
|
fs::path outpath = fs::path(destination_folder) / "common.sh";
|
||||||
|
static const char filedata_base64[] = "IyBDT01NT04gRlVOQ1RJT05TCiMgSkRFCiMgMjAyNS0wNS0wMwoKIyBUaGlzIGZpbGUgaXMgYXZh"\
|
||||||
|
"aWxhYmxlIFRPICoqKkFMTCoqKiB0ZW1wbGF0ZXMsIGFzICR7QUdFTlRfUEFUSH0vX2NvbW1vbi5z"\
|
||||||
|
"aAoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoj"\
|
||||||
|
"IHN1bW1hcnkgb2YgZnVuY3Rpb25zOgojICAgX2RpZSAibWVzc2FnZSIgICAgICAgICAgICAgICAg"\
|
||||||
|
"ICAgICAgICAgOiBQcmludHMgYW4gZXJyb3IgbWVzc2FnZSBpbiByZWQgYW5kIGV4aXRzIHdpdGgg"\
|
||||||
|
"c3RhdHVzIGNvZGUgMS4KIyAgIF9ncmV5X3N0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICAg"\
|
||||||
|
"IDogU3dpdGNoZXMgdGVybWluYWwgb3V0cHV0IGNvbG9yIHRvIGdyZXkuCiMgICBfZ3JleV9lbmQg"\
|
||||||
|
"ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFJlc2V0cyB0ZXJtaW5hbCBvdXRwdXQgY29s"\
|
||||||
|
"b3IgZnJvbSBncmV5LgojICAgX2NyZWF0ZV9hbmRfc3RhcnRfY29udGFpbmVyICI8cnVuX2NtZD4i"\
|
||||||
|
"IDxjb250YWluZXJfbmFtZT4gOiBDcmVhdGVzL3N0YXJ0cyBhIGNvbnRhaW5lciwgdmVyaWZ5aW5n"\
|
||||||
|
"IGl0IHJ1bnMuCiMgICBfY3JlYXRlX2ZvbGRlciA8Zm9sZGVyX3BhdGg+ICAgICAgICAgICA6IENy"\
|
||||||
|
"ZWF0ZXMgYSBkaXJlY3RvcnkgaWYgaXQgZG9lc24ndCBleGlzdCAoY2htb2QgNzc3KS4KIyAgIF9j"\
|
||||||
|
"aGVja19kb2NrZXJfaW5zdGFsbGVkICAgICAgICAgICAgICAgOiBDaGVja3MgaWYgRG9ja2VyIGlz"\
|
||||||
|
"IGluc3RhbGxlZCwgcnVubmluZywgYW5kIHVzZXIgaGFzIHBlcm1pc3Npb24uIFJldHVybnMgMSBv"\
|
||||||
|
"biBmYWlsdXJlLgojICAgX2lzX2NvbnRhaW5lcl9leGlzdHMgPGNvbnRhaW5lcl9uYW1lPiA6IENo"\
|
||||||
|
"ZWNrcyBpZiBhIGNvbnRhaW5lciAoYW55IHN0YXRlKSBleGlzdHMuIFJldHVybnMgMSBpZiBub3Qg"\
|
||||||
|
"Zm91bmQuCiMgICBfaXNfY29udGFpbmVyX3J1bm5pbmcgPGNvbnRhaW5lcl9uYW1lPjogQ2hlY2tz"\
|
||||||
|
"IGlmIGEgY29udGFpbmVyIGlzIGN1cnJlbnRseSBydW5uaW5nLiBSZXR1cm5zIDEgaWYgbm90IHJ1"\
|
||||||
|
"bm5pbmcuCiMgICBfZ2V0X2NvbnRhaW5lcl9pZCA8Y29udGFpbmVyX25hbWU+ICAgIDogUHJpbnRz"\
|
||||||
|
"IHRoZSBJRCBvZiB0aGUgbmFtZWQgY29udGFpbmVyLgojICAgX2dldF9jb250YWluZXJfc3RhdHVz"\
|
||||||
|
"IDxjb250YWluZXJfbmFtZT46IFByaW50cyB0aGUgc3RhdHVzIHN0cmluZyBvZiB0aGUgbmFtZWQg"\
|
||||||
|
"Y29udGFpbmVyLgojICAgX3N0YXJ0X2NvbnRhaW5lciA8Y29udGFpbmVyX25hbWU+ICAgICA6IFN0"\
|
||||||
|
"YXJ0cyBhbiBleGlzdGluZywgc3RvcHBlZCBjb250YWluZXIuCiMgICBfc3RvcF9jb250YWluZXIg"\
|
||||||
|
"PGNvbnRhaW5lcl9uYW1lPiAgICAgIDogU3RvcHMgYSBydW5uaW5nIGNvbnRhaW5lci4KIyAgIF9y"\
|
||||||
|
"ZW1vdmVfY29udGFpbmVyIDxjb250YWluZXJfbmFtZT4gICAgOiBTdG9wcyAoaWYgbmVlZGVkKSBh"\
|
||||||
|
"bmQgcmVtb3ZlcyBhIGNvbnRhaW5lci4KIyAgIF9nZXRfY29udGFpbmVyX2xvZ3MgPGNvbnRhaW5l"\
|
||||||
|
"cl9uYW1lPiAgOiBQcmludHMgdGhlIGxvZ3MgZm9yIGEgY29udGFpbmVyLgojICAgX2NoZWNrX3Jl"\
|
||||||
|
"cXVpcmVkX2Vudl92YXJzICJWQVIxIiAuLi4gICAgOiBDaGVja3MgaWYgbGlzdGVkIGVudmlyb25t"\
|
||||||
|
"ZW50IHZhcmlhYmxlcyBhcmUgc2V0OyBjYWxscyBfZGllKCkgaWYgYW55IGFyZSBtaXNzaW5nLgoj"\
|
||||||
|
"ICAgX3Jvb3RfcmVtb3ZlX3RyZWUgPHBhdGg+ICAgICAgICAgICAgICA6IFJlbW92ZXMgYSBwYXRo"\
|
||||||
|
"IHVzaW5nIGEgcm9vdCBEb2NrZXIgY29udGFpbmVyIChmb3IgcGVybWlzc2lvbnMpLgoKIyAtLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t"\
|
||||||
|
"LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIFByaW50cyBh"\
|
||||||
|
"biBlcnJvciBtZXNzYWdlIGluIHJlZCBhbmQgZXhpdHMgd2l0aCBzdGF0dXMgY29kZSAxLgpfZGll"\
|
||||||
|
"KCkgewogICAgZWNobyAtZSAiRXJyb3I6ICQxIgogICAgZXhpdCAxCn0KCiMgQ3JlYXRlcy9zdGFy"\
|
||||||
|
"dHMgYSBjb250YWluZXIsIHZlcmlmeWluZyBpdCBydW5zLgpfY3JlYXRlX2FuZF9zdGFydF9jb250"\
|
||||||
|
"YWluZXIoKSB7CiAgICBpZiBbIC16ICIkMSIgXSB8fCBbIC16ICIkMiIgXTsgdGhlbgogICAgICAg"\
|
||||||
|
"IF9kaWUgIlRlbXBsYXRlIGVycm9yOiBjcmVhdGVfYW5kX3N0YXJ0X2NvbnRhaW5lciA8cnVuX2Nt"\
|
||||||
|
"ZD4gPGNvbnRhaW5lcl9uYW1lPiIKICAgIGZpCgogICAgbG9jYWwgcnVuX2NtZD0iJDEiCiAgICBs"\
|
||||||
|
"b2NhbCBjb250YWluZXJfbmFtZT0iJDIiCgogICAgaWYgX2lzX2NvbnRhaW5lcl9leGlzdHMgIiRj"\
|
||||||
|
"b250YWluZXJfbmFtZSI7IHRoZW4KICAgICAgICBfaXNfY29udGFpbmVyX3J1bm5pbmcgIiRjb250"\
|
||||||
|
"YWluZXJfbmFtZSIgJiYgcmV0dXJuIDAKICAgICAgICBfc3RhcnRfY29udGFpbmVyICIkY29udGFp"\
|
||||||
|
"bmVyX25hbWUiCiAgICBlbHNlCiAgICAgICAgJHJ1bl9jbWQKICAgIGZpCgogICAgaWYgISBfaXNf"\
|
||||||
|
"Y29udGFpbmVyX3J1bm5pbmcgIiRjb250YWluZXJfbmFtZSI7IHRoZW4KICAgICAgICBfZGllICJD"\
|
||||||
|
"b250YWluZXIgJHtjb250YWluZXJfbmFtZX0gZmFpbGVkIHRvIHN0YXJ0IgogICAgZmkKCiAgICBJ"\
|
||||||
|
"RD0kKF9nZXRfY29udGFpbmVyX2lkICIkY29udGFpbmVyX25hbWUiKQogICAgZWNobyAiQ29udGFp"\
|
||||||
|
"bmVyICR7Y29udGFpbmVyX25hbWV9IGlzIHJ1bm5pbmcgd2l0aCBJRCAke0lEfSIKfQoKIyBDcmVh"\
|
||||||
|
"dGVzIGEgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3QgKGNobW9kIDc3NykuCl9jcmVhdGVf"\
|
||||||
|
"Zm9sZGVyKCkgewogICAgbG9jYWwgZm9sZGVyPSIkMSIKICAgIGlmIFsgLWQgIiRmb2xkZXIiIF07"\
|
||||||
|
"IHRoZW4KICAgICAgICByZXR1cm4gMAogICAgZmkKICAgIGlmICEgbWtkaXIgLXAgIiRmb2xkZXIi"\
|
||||||
|
"OyB0aGVuCiAgICAgICAgX2RpZSAiRmFpbGVkIHRvIGNyZWF0ZSBmb2xkZXI6ICRmb2xkZXIiCiAg"\
|
||||||
|
"ICBmaQogICAgY2htb2QgNzc3ICIkZm9sZGVyIgogICAgZWNobyAiRm9sZGVyIGNyZWF0ZWQ6ICRm"\
|
||||||
|
"b2xkZXIiCn0KCiMgQ2hlY2tzIGlmIERvY2tlciBpcyBpbnN0YWxsZWQsIHJ1bm5pbmcsIGFuZCB1"\
|
||||||
|
"c2VyIGhhcyBwZXJtaXNzaW9uLiBSZXR1cm5zIDEgb24gZmFpbHVyZS4KX2NoZWNrX2RvY2tlcl9p"\
|
||||||
|
"bnN0YWxsZWQoKSB7CiAgICBpZiAhIGNvbW1hbmQgLXYgZG9ja2VyICY+IC9kZXYvbnVsbDsgdGhl"\
|
||||||
|
"bgogICAgICAgIGVjaG8gIkRvY2tlciBpcyBub3QgaW5zdGFsbGVkIgogICAgICAgIHJldHVybiAx"\
|
||||||
|
"CiAgICBmaQoKICAgICMgY2hlY2sgaWYgZG9ja2VyIGRhZW1vbiBpcyBydW5uaW5nCiAgICBpZiAh"\
|
||||||
|
"IGRvY2tlciBpbmZvICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGVjaG8gIkRvY2tlciBkYWVt"\
|
||||||
|
"b24gaXMgbm90IHJ1bm5pbmciCiAgICAgICAgcmV0dXJuIDEKICAgIGZpCgogICAgIyBjaGVjayBp"\
|
||||||
|
"ZiB1c2VyIGhhcyBwZXJtaXNzaW9uIHRvIHJ1biBkb2NrZXIKICAgIGlmICEgZG9ja2VyIHJ1biAt"\
|
||||||
|
"LXJtIGhlbGxvLXdvcmxkICY+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgIGVjaG8gIlVzZXIgZG9l"\
|
||||||
|
"cyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHJ1biBkb2NrZXIiCiAgICAgICAgcmV0dXJuIDEKICAg"\
|
||||||
|
"IGZpCgogICAgcmV0dXJuIDAKfQoKIyBDaGVja3MgaWYgYSBjb250YWluZXIgKGFueSBzdGF0ZSkg"\
|
||||||
|
"ZXhpc3RzLiBSZXR1cm5zIDEgaWYgbm90IGZvdW5kLgpfaXNfY29udGFpbmVyX2V4aXN0cygpIHsK"\
|
||||||
|
"ICAgIFsgLW4gIiR7MTotfSIgXSB8fCB7IGVjaG8gIl9pc19jb250YWluZXJfZXhpc3RzOiBDb250"\
|
||||||
|
"YWluZXIgbmFtZSBpcyBlbXB0eSIgPiYyOyByZXR1cm4gMTsgfQogICAgaWYgISBkb2NrZXIgcHMg"\
|
||||||
|
"LWEgLS1mb3JtYXQgInt7Lk5hbWVzfX0iIHwgZ3JlcCAtcSAiXiQxJCI7IHRoZW4KICAgICAgICBy"\
|
||||||
|
"ZXR1cm4gMQogICAgZmkKICAgIHJldHVybiAwCn0KCiMgQ2hlY2tzIGlmIGEgY29udGFpbmVyIGlz"\
|
||||||
|
"IGN1cnJlbnRseSBydW5uaW5nLiBSZXR1cm5zIDEgaWYgbm90IHJ1bm5pbmcuCl9pc19jb250YWlu"\
|
||||||
|
"ZXJfcnVubmluZygpIHsKICAgIFsgLW4gIiR7MTotfSIgXSB8fCB7IGVjaG8gIl9pc19jb250YWlu"\
|
||||||
|
"ZXJfcnVubmluZzogQ29udGFpbmVyIG5hbWUgaXMgZW1wdHkiID4mMjsgcmV0dXJuIDE7IH0KICAg"\
|
||||||
|
"IGlmICEgZG9ja2VyIHBzIC0tZm9ybWF0ICJ7ey5OYW1lc319IiB8IGdyZXAgLXEgIl4kMSQiOyB0"\
|
||||||
|
"aGVuCiAgICAgICAgcmV0dXJuIDEKICAgIGZpCiAgICByZXR1cm4gMAp9CgojIFByaW50cyB0aGUg"\
|
||||||
|
"SUQgb2YgdGhlIG5hbWVkIGNvbnRhaW5lci4KX2dldF9jb250YWluZXJfaWQoKSB7CiAgICBkb2Nr"\
|
||||||
|
"ZXIgcHMgLS1mb3JtYXQgInt7LklEfX0iIC0tZmlsdGVyICJuYW1lPSQxIgp9CgojIFByaW50cyB0"\
|
||||||
|
"aGUgc3RhdHVzIHN0cmluZyBvZiB0aGUgbmFtZWQgY29udGFpbmVyLgpfZ2V0X2NvbnRhaW5lcl9z"\
|
||||||
|
"dGF0dXMoKSB7CiAgICBkb2NrZXIgcHMgLS1mb3JtYXQgInt7LlN0YXR1c319IiAtLWZpbHRlciAi"\
|
||||||
|
"bmFtZT0kMSIKfQoKIyBTdGFydHMgYW4gZXhpc3RpbmcsIHN0b3BwZWQgY29udGFpbmVyLgpfc3Rh"\
|
||||||
|
"cnRfY29udGFpbmVyKCkgewogICAgX2lzX2NvbnRhaW5lcl9leGlzdHMgIiQxIiB8fCByZXR1cm4g"\
|
||||||
|
"MQogICAgX2lzX2NvbnRhaW5lcl9ydW5uaW5nICIkMSIgJiYgcmV0dXJuIDAKICAgIGRvY2tlciBz"\
|
||||||
|
"dGFydCAiJDEiCn0KCiMgU3RvcHMgYSBydW5uaW5nIGNvbnRhaW5lci4KX3N0b3BfY29udGFpbmVy"\
|
||||||
|
"KCkgewogICAgX2lzX2NvbnRhaW5lcl9ydW5uaW5nICIkMSIgfHwgcmV0dXJuIDA7CiAgICBkb2Nr"\
|
||||||
|
"ZXIgc3RvcCAiJDEiCn0gICAKCiMgU3RvcHMgKGlmIG5lZWRlZCkgYW5kIHJlbW92ZXMgYSBjb250"\
|
||||||
|
"YWluZXIuCl9yZW1vdmVfY29udGFpbmVyKCkgewogICAgX3N0b3BfY29udGFpbmVyICIkMSIKICAg"\
|
||||||
|
"IF9pc19jb250YWluZXJfZXhpc3RzICIkMSIgfHwgcmV0dXJuIDA7CiAgICBkb2NrZXIgcm0gIiQx"\
|
||||||
|
"Igp9CgojIFByaW50cyB0aGUgbG9ncyBmb3IgYSBjb250YWluZXIuCl9nZXRfY29udGFpbmVyX2xv"\
|
||||||
|
"Z3MoKSB7CiAgICBpZiAhIF9pc19jb250YWluZXJfZXhpc3RzICIkMSI7IHRoZW4KICAgICAgICBl"\
|
||||||
|
"Y2hvICJDb250YWluZXIgJDEgZG9lcyBub3QgZXhpc3QiCiAgICAgICAgcmV0dXJuIDEKICAgIGZp"\
|
||||||
|
"CgogICAgZG9ja2VyIGxvZ3MgIiQxIgp9CgojIENoZWNrcyBpZiBsaXN0ZWQgZW52aXJvbm1lbnQg"\
|
||||||
|
"dmFyaWFibGVzIGFyZSBzZXQ7IGNhbGxzIF9kaWUoKSBpZiBhbnkgYXJlIG1pc3NpbmcuCl9jaGVj"\
|
||||||
|
"a19yZXF1aXJlZF9lbnZfdmFycygpIHsKICAgIGxvY2FsIHJlcXVpcmVkX3ZhcnM9KCIkQCIpCiAg"\
|
||||||
|
"ICBmb3IgdmFyIGluICIke3JlcXVpcmVkX3ZhcnNbQF19IjsgZG8KICAgICAgICBpZiBbIC16ICIk"\
|
||||||
|
"eyF2YXI6LX0iIF07IHRoZW4KICAgICAgICAgICAgX2RpZSAiUmVxdWlyZWQgZW52aXJvbm1lbnQg"\
|
||||||
|
"dmFyaWFibGUgJHZhciBpcyBub3Qgc2V0IgogICAgICAgIGZpCiAgICBkb25lCn0KCiMgUmVtb3Zl"\
|
||||||
|
"cyBhIHBhdGggdXNpbmcgYSByb290IERvY2tlciBjb250YWluZXIgKGZvciBwZXJtaXNzaW9ucyku"\
|
||||||
|
"Cl9yb290X3JlbW92ZV90cmVlKCkgewogICAgbG9jYWwgdG9fcmVtb3ZlPSIkMSIKICAgIHBhcmVu"\
|
||||||
|
"dD0kKGRpcm5hbWUgIiR0b19yZW1vdmUiKQogICAgYWJzX3BhcmVudD0kKHJlYWxwYXRoICIkcGFy"\
|
||||||
|
"ZW50IikKICAgIGNoaWxkPSQoYmFzZW5hbWUgIiR0b19yZW1vdmUiKQogICAgZG9ja2VyIHJ1biAt"\
|
||||||
|
"LXJtIC12ICIkYWJzX3BhcmVudCI6L2RhdGEgYWxwaW5lIHJtIC1yZiAiL2RhdGEvJGNoaWxkIgp9"\
|
||||||
|
"CgoKIyBMb2FkIGF1dG9jb21tYW5kcwpzb3VyY2UgIiR7QUdFTlRfUEFUSH0vZGF0YWNvbW1hbmRz"\
|
||||||
|
"LnNoIg==";
|
||||||
|
|
||||||
|
// Decode Base64 data
|
||||||
|
size_t decoded_size = (strlen(filedata_base64) * 3) / 4;
|
||||||
|
unsigned char* decoded_data = new unsigned char[decoded_size];
|
||||||
|
size_t actual_size;
|
||||||
|
base64_decode(filedata_base64, strlen(filedata_base64), decoded_data, &actual_size);
|
||||||
|
|
||||||
|
bool file_written = _recreate_file_(outpath, 10529534466039467911ULL, std::filesystem::perms(493), decoded_data, actual_size);
|
||||||
|
delete[] decoded_data;
|
||||||
|
any_written = any_written || file_written;
|
||||||
|
}
|
||||||
|
return any_written;
|
||||||
|
}
|
||||||
|
}
|
15
source/src/autogen/_agent-remote.hpp
Normal file
15
source/src/autogen/_agent-remote.hpp
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
THIS FILE IS AUTO-GENERATED BY DEHYDRATE.
|
||||||
|
DO NOT EDIT THIS FILE.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
namespace recreate_agent_remote {
|
||||||
|
bool recreate_tree(std::string destination_folder);
|
||||||
|
}
|
Reference in New Issue
Block a user