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