Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php namespace App\Site; use App\System\Command\CopyFileCommand; use App\System\Command..

Decoded Output download

<?php 
 namespace App\Site; use App\System\Command\CopyFileCommand; use App\System\Command\DeleteFileCommand; use App\System\Command\NginxConfigTestCommand; use App\System\CommandExecutor; use App\System\Command\ChownCommand; use App\System\Command\FindChmodCommand; use App\System\Command\WriteFileCommand; use App\System\Command\CreateDirectoryCommand; use App\System\Command\DeleteDirectoryCommand; use App\System\Command\ChangeUserHomeDirectoryCommand; use App\System\Command\CreateUserCommand; use App\System\Command\DeleteUserCommand; use App\System\Command\ChangeUserPasswordCommand; use App\System\Command\CreateSymlinkCommand; use App\System\Command\ServiceReloadCommand; use App\Entity\BasicAuth as BasicAuthEntity; use App\Entity\Certificate as CertificateEntity; use App\Entity\FtpUser as FtpUserEntity; use App\Entity\SshUser as SshUserEntity; use App\Entity\Site as SiteEntity; use App\Site\Ssl\LetsEncrypt\CertificateOrder; use App\Site\Nginx\Exception\InvalidVhostException; use App\Site\Nginx\Vhost\StaticTemplate; use App\Site\Nginx\Vhost\NodejsTemplate; use App\Site\Nginx\Vhost\PhpTemplate; use App\Site\Nginx\Vhost\PythonTemplate; use App\Site\Nginx\Vhost\ReverseProxyTemplate; abstract class Updater { public const NGINX_BASIC_AUTH_DIRECTORY = "/etc/nginx/basic-auth/"; public const NGINX_VHOST_DIRECTORY = "/etc/nginx/sites-enabled/"; public const NGINX_SSL_CERTIFICATES_DIRECTORY = "/etc/nginx/ssl-certificates/"; public const CRON_DIRECTORY = "/etc/cron.d/"; protected Site $site; protected CommandExecutor $commandExecutor; public function __construct(Site $site) { $this->site = $site; $this->commandExecutor = new CommandExecutor(); } public function domainSettings() : void { $this->updateNginxVhost(); $this->reloadNginxService(); } public function updateNginxVhost() : void { goto Ab436; B82ff: $writeVhostFileCommand->setContent($vhostContent); goto Dd396; Ea1dc: switch ($this->site->getType()) { case SiteEntity::TYPE_PHP: $vhostTemplate = new PhpTemplate($this->site); goto a14d0; case SiteEntity::TYPE_NODEJS: $vhostTemplate = new NodejsTemplate($this->site); goto a14d0; case SiteEntity::TYPE_STATIC: $vhostTemplate = new StaticTemplate($this->site); goto a14d0; case SiteEntity::TYPE_PYTHON: $vhostTemplate = new PythonTemplate($this->site); goto a14d0; case SiteEntity::TYPE_REVERSE_PROXY: $vhostTemplate = new ReverseProxyTemplate($this->site); goto a14d0; } goto D93b0; Ab436: $domainName = $this->site->getDomainName(); goto d09b8; B5143: $vhostTemplate->build(); goto a5f6a; f885f: $vhostTemplate->setContent($vhostFileContent); goto Bda05; Facfc: a14d0: goto f885f; Bda05: $vhostFile = sprintf("%s/%s.conf", rtrim(self::NGINX_VHOST_DIRECTORY, "/"), $domainName); goto B5143; d09b8: $vhostFileContent = $this->site->getVhostTemplate(); goto Ea1dc; F7edf: $writeVhostFileCommand = new WriteFileCommand(); goto A8502; dc9dc: $vhostContent = $vhostTemplate->getContent(); goto F7edf; Dd396: $this->commandExecutor->execute($writeVhostFileCommand); goto C0479; a5f6a: $vhostTemplate->removeEmptyPlaceholders(); goto dc9dc; A8502: $writeVhostFileCommand->setFile($vhostFile); goto B82ff; D93b0: e57a9: goto Facfc; C0479: } public function updateNginxVhostWithRollback() : void { try { goto b35d0; b35d0: $domainName = $this->site->getDomainName(); goto f94cc; a3c56: $copyVhostBackupFileCommand->setDestinationFile($vhostBackupFile); goto B7f63; b307c: $vhostFile = sprintf("%s/%s.conf", rtrim(self::NGINX_VHOST_DIRECTORY, "/"), $domainName); goto E4621; Dce85: Fc9c1: goto a39ad; B94aa: $reloadNginxServiceCommand = new ServiceReloadCommand(); goto f4a19; A16e1: $vhostContent = $vhostTemplate->getContent(); goto E5b1e; B7f63: $writeVhostFileCommand = new WriteFileCommand(); goto C0eaa; B984f: $deleteVhostBackupFileCommand = new DeleteFileCommand(); goto Ec25e; F612c: ae938: goto Dce85; C0eaa: $writeVhostFileCommand->setFile($vhostFile); goto Afe3c; ec7ee: $this->commandExecutor->execute($reloadNginxServiceCommand); goto cd759; f4aa8: $this->commandExecutor->execute($nginxConfigTestCommand); goto C358e; Fcae1: $nginxConfigTestCommand = new NginxConfigTestCommand(); goto B984f; f94cc: $vhostFileContent = $this->site->getVhostTemplate(); goto Dbbfb; f4a19: $reloadNginxServiceCommand->setServiceName("nginx"); goto ec7ee; Dbbfb: switch ($this->site->getType()) { case SiteEntity::TYPE_PHP: $vhostTemplate = new PhpTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_NODEJS: $vhostTemplate = new NodejsTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_STATIC: $vhostTemplate = new StaticTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_PYTHON: $vhostTemplate = new PythonTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_REVERSE_PROXY: $vhostTemplate = new ReverseProxyTemplate($this->site); goto Fc9c1; } goto F612c; A7c36: $copyVhostBackupFileCommand->setSourceFile($vhostFile); goto a3c56; A1259: $this->commandExecutor->execute($writeVhostFileCommand); goto f4aa8; C358e: if (!("dev" != $_ENV["APP_ENV"])) { goto f3fa2; } goto B94aa; Afe3c: $writeVhostFileCommand->setContent($vhostContent); goto Fcae1; E72de: $this->commandExecutor->execute($deleteVhostBackupFileCommand); goto a7dd0; a39ad: $vhostTemplate->setContent($vhostFileContent); goto b307c; E4621: $vhostTemplate->build(); goto ae330; E5b1e: $vhostBackupFile = sprintf("%s/%s.conf.bak", rtrim(self::NGINX_VHOST_DIRECTORY, "/"), $domainName); goto e768c; Ec25e: $deleteVhostBackupFileCommand->setFile($vhostBackupFile); goto ee195; e768c: $copyVhostBackupFileCommand = new CopyFileCommand(); goto A7c36; ae330: $vhostTemplate->removeEmptyPlaceholders(); goto A16e1; ee195: $this->commandExecutor->execute($copyVhostBackupFileCommand); goto A1259; cd759: f3fa2: goto E72de; a7dd0: } catch (\Exception $e) { goto Ca8d5; bf358: F90be: goto c6223; e3f91: $restoreBackupFileCommand->setSourceFile($vhostBackupFile); goto E2eb1; Fcea8: throw new InvalidVhostException($errorMessage); goto Caadb; c6223: $restoreBackupFileCommand = new CopyFileCommand(); goto e3f91; Ca8d5: $errorMessage = $e->getMessage(); goto C56be; Ab5f3: $errorMessage = $nginxConfigTestCommand->getOutput(); goto bf358; E2eb1: $restoreBackupFileCommand->setDestinationFile($vhostFile); goto b7288; d0ea9: C5601: goto Ba17f; Ba17f: $this->commandExecutor->execute($deleteVhostBackupFileCommand); goto Fcea8; C56be: if (!(true === isset($nginxConfigTestCommand))) { goto F90be; } goto Ab5f3; e75c6: if (!(true === isset($reloadNginxServiceCommand))) { goto C5601; } goto C5e50; C5e50: $this->commandExecutor->execute($reloadNginxServiceCommand); goto d0ea9; b7288: $this->commandExecutor->execute($restoreBackupFileCommand); goto e75c6; Caadb: } } public function createSshUser(SshUserEntity $sshUserEntity) : void { goto Ca4ad; D22d5: Dc8d6: goto cd04e; Efc28: $createUserCommand->setPassword($sshUserPassword); goto E589f; Dd74b: $sshUserName = $sshUserEntity->getUserName(); goto A6074; Ba065: $createUserCommand->setHomeDirectory($homeDirectory); goto e783a; D9081: $symlinkDirectories = ["backups", "htdocs", "logs"]; goto c758f; Ca4ad: $site = $sshUserEntity->getSite(); goto Cdd01; df80e: $skeletonDirectory = realpath(dirname(__FILE__) . "/../../resources/etc/skel/ssh-user/"); goto ea33c; f7462: $createUserCommand->setUserName($sshUserName); goto Efc28; ea33c: $createUserCommand = new CreateUserCommand(); goto f7462; A6074: $sshUserPassword = $sshUserEntity->getPassword(); goto b7b6f; e783a: $createUserCommand->createHomeDirectory(true); goto Af5bc; d4391: $sshDirectoryChmodCommand = new FindChmodCommand(); goto Bba93; c758f: foreach ($symlinkDirectories as $symlinkDirectory) { goto b54a1; afad0: cfdec: goto D7010; f1151: $symlinkCommand->setRunAsUser($sshUserName); goto e79c2; b2ed5: $symlinkCommand = new CreateSymlinkCommand(); goto f1151; e79c2: $symlinkCommand->setSource($source); goto Ae098; Ae098: $symlinkCommand->setDestination($destination); goto a8dc2; b54a1: $source = sprintf("/home/%s/%s", $siteUser, $symlinkDirectory); goto C274e; D7010: Ae14a: goto B5a29; f0f86: $this->commandExecutor->execute($symlinkCommand); goto afad0; C274e: $destination = sprintf("/home/%s/%s", $sshUserName, $symlinkDirectory); goto b2ed5; a8dc2: if (!("dev" != $_ENV["APP_ENV"])) { goto cfdec; } goto f0f86; B5a29: } goto D22d5; Bba93: $sshDirectoryChmodCommand->setFile($sshDirectory); goto aee2f; b9f66: $createUserCommand->setSkeletonDirectory($skeletonDirectory); goto Ba065; E589f: $createUserCommand->setGroup($siteUser); goto B6bf8; aee2f: $sshDirectoryChmodCommand->setDirectoryChmod(700); goto a0699; b7b6f: $homeDirectory = sprintf("/home/%s", $sshUserName); goto df80e; C299e: $this->commandExecutor->execute($sshDirectoryChmodCommand); goto B6633; B6bf8: $createUserCommand->setShell("/bin/bash"); goto b9f66; a0699: $sshDirectoryChmodCommand->setFileChmod(600); goto C299e; Cdd01: $siteUser = $site->getUser(); goto Dd74b; cd04e: $sshDirectory = sprintf("/home/%s/.ssh", $sshUserName); goto d4391; Af5bc: $this->commandExecutor->execute($createUserCommand); goto D9081; B6633: } public function createFtpUser(FtpUserEntity $ftpUserEntity) : void { goto F616c; c3b6c: $createUserCommand->setGroups(["ftp-user"]); goto a38dc; a8b0e: $ftpUserPassword = $ftpUserEntity->getPassword(); goto Fb38e; cbf46: $siteUser = $site->getUser(); goto E918c; F49b5: $createUserCommand->createHomeDirectory(false); goto B29ce; Ad9b7: $createUserCommand->setPassword($ftpUserPassword); goto c085b; A7b9a: $createUserCommand->setUserName($ftpUserName); goto Ad9b7; Fb38e: $homeDirectory = $ftpUserEntity->getHomeDirectory(); goto ee4e5; c085b: $createUserCommand->setGroup($siteUser); goto c3b6c; ee4e5: $createUserCommand = new CreateUserCommand(); goto A7b9a; B29ce: $this->commandExecutor->execute($createUserCommand); goto ff060; E918c: $ftpUserName = $ftpUserEntity->getUserName(); goto a8b0e; F616c: $site = $ftpUserEntity->getSite(); goto cbf46; a38dc: $createUserCommand->setShell("/bin/false"); goto ec298; ec298: $createUserCommand->setHomeDirectory($homeDirectory); goto F49b5; ff060: } public function deleteUser(string $userName, $removeHomeDirectory = true) : void { goto f39be; Ae478: $deleteUserCommand->setUserName($userName); goto B072c; f733f: $this->commandExecutor->execute($deleteUserCommand); goto fb9e8; B072c: $deleteUserCommand->setRemoveHomeDirectory($removeHomeDirectory); goto f733f; f39be: $deleteUserCommand = new DeleteUserCommand(); goto Ae478; fb9e8: } public function installCertificate(CertificateEntity $certificateEntity) : void { goto A7b43; B744e: if (!(false === empty($certificateEntity->getCertificateChain()))) { goto B846e; } goto Bd9dc; d8562: $writePrivateKeyFileCommand->setFile($privateKeyFile); goto A4bff; fb890: $certificate = $certificateEntity->getCertificate(); goto B744e; b17f7: $writePrivateKeyFileCommand = new WriteFileCommand(); goto d8562; A19ff: $this->commandExecutor->execute($writeCertificateFileCommand); goto d73d2; aec15: $writeCertificateFileCommand->setContent($certificate); goto c5a8e; A4bff: $writePrivateKeyFileCommand->setContent($certificateEntity->getPrivateKey()); goto c913f; A7b43: $domainName = $this->site->getDomainName(); goto a650b; c913f: $writeCertificateFileCommand = new WriteFileCommand(); goto D9232; Cd90a: $certificateFile = sprintf("%s/%s.crt", rtrim(self::NGINX_SSL_CERTIFICATES_DIRECTORY, "/"), $domainName); goto fb890; c5a8e: $this->commandExecutor->execute($writePrivateKeyFileCommand); goto A19ff; Bd9dc: $certificate .= sprintf("%s%s", PHP_EOL, trim($certificateEntity->getCertificateChain())); goto b1792; d73d2: $this->reloadService("nginx"); goto e442d; D9232: $writeCertificateFileCommand->setFile($certificateFile); goto aec15; b1792: B846e: goto b17f7; a650b: $privateKeyFile = sprintf("%s/%s.key", rtrim(self::NGINX_SSL_CERTIFICATES_DIRECTORY, "/"), $domainName); goto Cd90a; e442d: } public function deleteLetsEncryptChallengeDirectory() { goto b65ae; c85fe: $acemeChallengeDirectory = sprintf("%s/.well-known/", rtrim($rootDirectory, "/")); goto d5a36; bebc3: $this->commandExecutor->execute($deleteAcmeChallengeDirectoryCommand); goto A6756; b65ae: $rootDirectory = $this->getRootDirectory(); goto c85fe; d777f: $deleteAcmeChallengeDirectoryCommand->setDirectory($acemeChallengeDirectory); goto bebc3; d5a36: $deleteAcmeChallengeDirectoryCommand = new DeleteDirectoryCommand(); goto d777f; A6756: } public function createBasicAuthFile(BasicAuthEntity $basicAuthEntity) { goto Adfc9; Abbd6: $basicAuthFileContent = sprintf("%s:%s", $basicAuthEntity->getUserName(), crypt($basicAuthEntity->getPassword(), base64_encode($basicAuthEntity->getPassword()))); goto b4f5d; Ed1f1: $writeBasicAuthFileCommand->setContent($basicAuthFileContent); goto cbf77; b4f5d: $writeBasicAuthFileCommand = new WriteFileCommand(); goto e57dc; e57dc: $writeBasicAuthFileCommand->setFile($basicAuthFile); goto Ed1f1; cbf77: $this->commandExecutor->execute($writeBasicAuthFileCommand); goto Ebf98; Adfc9: $basicAuthFile = sprintf("%s/%s", rtrim(self::NGINX_BASIC_AUTH_DIRECTORY, "/"), $this->site->getDomainName()); goto Abbd6; Ebf98: } public function createLetsEncryptChallengeFiles(CertificateOrder $certificateOrder) : void { goto fc1a0; a11e8: if (!count($challenges)) { goto c29a7; } goto fb6e6; E121b: $challenges = $certificateOrder->getAuthorizationsChallenges(); goto f6ccc; Ab49e: $this->commandExecutor->execute($chownWellKnownDirectoryCommandCommand); goto Da36b; D3124: c29a7: goto ac950; D7ed8: $this->commandExecutor->execute($createAcmeChallengeDirectoryCommand); goto a11e8; f4753: $rootDirectory = $this->getRootDirectory(); goto cc339; E3090: $createAcmeChallengeDirectoryCommand->setDirectory($acemeChallengeDirectory); goto D7ed8; f6151: $chownWellKnownDirectoryCommandCommand->setRecursive(true); goto db97e; fd039: B33ad: goto D3124; fc1a0: $siteUser = $this->site->getUser(); goto f4753; e99a3: $chownWellKnownDirectoryCommandCommand->setFile($wellKnownDirectory); goto f6151; Dda8b: $chmodWellKnownDirectoryCommand->setFileChmod(770); goto Ab49e; db97e: $chownWellKnownDirectoryCommandCommand->setUser($siteUser); goto a8bd3; ec563: $chmodWellKnownDirectoryCommand = new FindChmodCommand(); goto Fe317; e7deb: $chmodWellKnownDirectoryCommand->setDirectoryChmod(750); goto Dda8b; fb6e6: foreach ($challenges as $challenge) { goto e9000; Cd2ad: $verificationContent = $challenge["verificationContent"] ?? null; goto aee09; aee09: if (!(false === is_null($token) && false === is_null($verificationContent))) { goto f4f36; } goto Dffa8; a7119: $challengeWriteFileCommand = new WriteFileCommand(); goto F7467; e9000: $token = $challenge["token"] ?? null; goto Cd2ad; d9806: $this->commandExecutor->execute($challengeWriteFileCommand); goto E9317; e3578: $challengeWriteFileCommand->setContent($verificationContent); goto d9806; F7467: $challengeWriteFileCommand->setFile($challengeFile); goto e3578; e5920: e26b6: goto C9d49; Dffa8: $challengeFile = sprintf("%s/%s", rtrim($acemeChallengeDirectory, "/"), $token); goto a7119; E9317: f4f36: goto e5920; C9d49: } goto fd039; cc339: $wellKnownDirectory = sprintf("%s/.well-known/", rtrim($rootDirectory, "/")); goto F76de; ac950: $chownWellKnownDirectoryCommandCommand = new ChownCommand(); goto e99a3; Da36b: $this->commandExecutor->execute($chmodWellKnownDirectoryCommand); goto B32bf; f6ccc: $createAcmeChallengeDirectoryCommand = new CreateDirectoryCommand(); goto E3090; Fe317: $chmodWellKnownDirectoryCommand->setFile($wellKnownDirectory); goto e7deb; a8bd3: $chownWellKnownDirectoryCommandCommand->setGroup($siteUser); goto ec563; F76de: $acemeChallengeDirectory = sprintf("%s/.well-known/acme-challenge/", rtrim($rootDirectory, "/")); goto E121b; B32bf: } public function updateUserCrontab() : void { goto F17ee; ffe35: $this->commandExecutor->execute($writeCrontabFileCommand); goto e2b7c; c64a8: $crontabEntries = ["MAILTO="""]; goto eb6d9; f0c4f: $writeCrontabFileCommand->setFile($crontabFile); goto C749a; aa492: $crontabContent = implode(PHP_EOL, $crontabEntries); goto Cbbb8; ae85e: $crontabFile = sprintf("%s/%s", rtrim(self::CRON_DIRECTORY, "/"), $siteUser); goto c64a8; f6d0a: if (!count($cronJobs)) { goto a4fd8; } goto efe30; Cbbb8: $writeCrontabFileCommand = new WriteFileCommand(); goto f0c4f; eb6d9: $cronJobs = $this->site->getCronJobs(); goto f6d0a; C749a: $writeCrontabFileCommand->setContent($crontabContent); goto ffe35; Da250: Ecbaf: goto a4377; F17ee: $siteUser = $this->site->getUser(); goto ae85e; efe30: foreach ($cronJobs as $cronJob) { $crontabEntries[] = $cronJob->getCrontabExpression(); F0fd8: } goto Da250; a4377: a4fd8: goto aa492; e2b7c: } public function purgePageSpeedCache() : void { goto c3a87; F8023: $purgePageSpeedCacheFilesCommand->setDirectory($cacheDirectory); goto C4b5f; c3a87: $siteUser = $this->site->getUser(); goto dc472; C4b5f: $this->commandExecutor->execute($purgePageSpeedCacheFilesCommand, 300); goto df70c; bbfe2: $purgePageSpeedCacheFilesCommand = new DeleteDirectoryCommand(); goto F8023; dc472: $cacheDirectory = sprintf("/home/%s/tmp/pagespeed_cache/*", $siteUser); goto bbfe2; df70c: } public function updateUserSShKeys(string $userName, $sshKeys) : void { goto C28ec; Ee6a5: $writeAuthorizedKeysFileCommand->setFile($authorizedKeysFile); goto fefb6; Fc085: $writeAuthorizedKeysFileCommand = new WriteFileCommand(); goto Ee6a5; fefb6: $writeAuthorizedKeysFileCommand->setContent($sshKeys); goto f564b; f564b: $this->commandExecutor->execute($writeAuthorizedKeysFileCommand); goto E3ca0; C28ec: $authorizedKeysFile = sprintf("/home/%s/.ssh/authorized_keys", $userName); goto Fc085; E3ca0: } public function changeUserHomeDirectory(string $userName, string $homeDirectory) : void { goto b72e0; b72e0: $changeUserHomeDirectoryCommand = new ChangeUserHomeDirectoryCommand(); goto fe7d6; fe7d6: $changeUserHomeDirectoryCommand->setUserName($userName); goto Ba19c; Ba19c: $changeUserHomeDirectoryCommand->setHomeDirectory($homeDirectory); goto C4e8a; C4e8a: $this->commandExecutor->execute($changeUserHomeDirectoryCommand); goto e8f5b; e8f5b: } public function changeUserPassword(string $userName, string $password) : void { goto fa9f6; B30c3: $this->commandExecutor->execute($changeUserPasswordCommand); goto A3996; a8feb: $changeUserPasswordCommand->setUserName($userName); goto d544f; d544f: $changeUserPasswordCommand->setPassword($password); goto B30c3; fa9f6: $changeUserPasswordCommand = new ChangeUserPasswordCommand(); goto a8feb; A3996: } protected function getRootDirectory() : string { goto b1ac2; ebe6b: return $rootDirectory; goto f4217; d9356: $rootDirectory = sprintf("/home/%s/htdocs/%s", $siteUser, $rootDirectory); goto ebe6b; b1ac2: $siteUser = $this->site->getUser(); goto Cbb54; Cbb54: $rootDirectory = $this->site->getRootDirectory(); goto d9356; f4217: } public function reloadNginxService() : void { $this->reloadService("nginx"); } public function reloadService($serviceName) { goto A0e93; B273f: $reloadServiceCommand = new ServiceReloadCommand(); goto D9e53; f1c61: b0918: goto De078; fab37: $this->commandExecutor->execute($reloadServiceCommand); goto f1c61; A0e93: if (!("dev" != $_ENV["APP_ENV"])) { goto b0918; } goto B273f; D9e53: $reloadServiceCommand->setServiceName($serviceName); goto fab37; De078: } } ?>

Did this file decode correctly?

Original Code

<?php
 namespace App\Site; use App\System\Command\CopyFileCommand; use App\System\Command\DeleteFileCommand; use App\System\Command\NginxConfigTestCommand; use App\System\CommandExecutor; use App\System\Command\ChownCommand; use App\System\Command\FindChmodCommand; use App\System\Command\WriteFileCommand; use App\System\Command\CreateDirectoryCommand; use App\System\Command\DeleteDirectoryCommand; use App\System\Command\ChangeUserHomeDirectoryCommand; use App\System\Command\CreateUserCommand; use App\System\Command\DeleteUserCommand; use App\System\Command\ChangeUserPasswordCommand; use App\System\Command\CreateSymlinkCommand; use App\System\Command\ServiceReloadCommand; use App\Entity\BasicAuth as BasicAuthEntity; use App\Entity\Certificate as CertificateEntity; use App\Entity\FtpUser as FtpUserEntity; use App\Entity\SshUser as SshUserEntity; use App\Entity\Site as SiteEntity; use App\Site\Ssl\LetsEncrypt\CertificateOrder; use App\Site\Nginx\Exception\InvalidVhostException; use App\Site\Nginx\Vhost\StaticTemplate; use App\Site\Nginx\Vhost\NodejsTemplate; use App\Site\Nginx\Vhost\PhpTemplate; use App\Site\Nginx\Vhost\PythonTemplate; use App\Site\Nginx\Vhost\ReverseProxyTemplate; abstract class Updater { public const NGINX_BASIC_AUTH_DIRECTORY = "\57\145\x74\x63\x2f\156\147\x69\156\170\x2f\142\x61\163\x69\143\x2d\x61\165\x74\150\x2f"; public const NGINX_VHOST_DIRECTORY = "\57\x65\x74\143\57\x6e\x67\151\x6e\170\57\163\151\164\x65\x73\55\x65\156\141\142\154\145\144\x2f"; public const NGINX_SSL_CERTIFICATES_DIRECTORY = "\x2f\x65\164\143\x2f\156\147\x69\x6e\170\x2f\x73\x73\154\x2d\143\x65\162\x74\x69\146\x69\x63\x61\164\x65\163\57"; public const CRON_DIRECTORY = "\x2f\145\164\x63\x2f\x63\x72\x6f\156\56\144\57"; protected Site $site; protected CommandExecutor $commandExecutor; public function __construct(Site $site) { $this->site = $site; $this->commandExecutor = new CommandExecutor(); } public function domainSettings() : void { $this->updateNginxVhost(); $this->reloadNginxService(); } public function updateNginxVhost() : void { goto Ab436; B82ff: $writeVhostFileCommand->setContent($vhostContent); goto Dd396; Ea1dc: switch ($this->site->getType()) { case SiteEntity::TYPE_PHP: $vhostTemplate = new PhpTemplate($this->site); goto a14d0; case SiteEntity::TYPE_NODEJS: $vhostTemplate = new NodejsTemplate($this->site); goto a14d0; case SiteEntity::TYPE_STATIC: $vhostTemplate = new StaticTemplate($this->site); goto a14d0; case SiteEntity::TYPE_PYTHON: $vhostTemplate = new PythonTemplate($this->site); goto a14d0; case SiteEntity::TYPE_REVERSE_PROXY: $vhostTemplate = new ReverseProxyTemplate($this->site); goto a14d0; } goto D93b0; Ab436: $domainName = $this->site->getDomainName(); goto d09b8; B5143: $vhostTemplate->build(); goto a5f6a; f885f: $vhostTemplate->setContent($vhostFileContent); goto Bda05; Facfc: a14d0: goto f885f; Bda05: $vhostFile = sprintf("\45\163\57\x25\163\x2e\x63\x6f\x6e\x66", rtrim(self::NGINX_VHOST_DIRECTORY, "\57"), $domainName); goto B5143; d09b8: $vhostFileContent = $this->site->getVhostTemplate(); goto Ea1dc; F7edf: $writeVhostFileCommand = new WriteFileCommand(); goto A8502; dc9dc: $vhostContent = $vhostTemplate->getContent(); goto F7edf; Dd396: $this->commandExecutor->execute($writeVhostFileCommand); goto C0479; a5f6a: $vhostTemplate->removeEmptyPlaceholders(); goto dc9dc; A8502: $writeVhostFileCommand->setFile($vhostFile); goto B82ff; D93b0: e57a9: goto Facfc; C0479: } public function updateNginxVhostWithRollback() : void { try { goto b35d0; b35d0: $domainName = $this->site->getDomainName(); goto f94cc; a3c56: $copyVhostBackupFileCommand->setDestinationFile($vhostBackupFile); goto B7f63; b307c: $vhostFile = sprintf("\x25\163\57\45\163\x2e\143\157\x6e\146", rtrim(self::NGINX_VHOST_DIRECTORY, "\x2f"), $domainName); goto E4621; Dce85: Fc9c1: goto a39ad; B94aa: $reloadNginxServiceCommand = new ServiceReloadCommand(); goto f4a19; A16e1: $vhostContent = $vhostTemplate->getContent(); goto E5b1e; B7f63: $writeVhostFileCommand = new WriteFileCommand(); goto C0eaa; B984f: $deleteVhostBackupFileCommand = new DeleteFileCommand(); goto Ec25e; F612c: ae938: goto Dce85; C0eaa: $writeVhostFileCommand->setFile($vhostFile); goto Afe3c; ec7ee: $this->commandExecutor->execute($reloadNginxServiceCommand); goto cd759; f4aa8: $this->commandExecutor->execute($nginxConfigTestCommand); goto C358e; Fcae1: $nginxConfigTestCommand = new NginxConfigTestCommand(); goto B984f; f94cc: $vhostFileContent = $this->site->getVhostTemplate(); goto Dbbfb; f4a19: $reloadNginxServiceCommand->setServiceName("\x6e\147\151\156\x78"); goto ec7ee; Dbbfb: switch ($this->site->getType()) { case SiteEntity::TYPE_PHP: $vhostTemplate = new PhpTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_NODEJS: $vhostTemplate = new NodejsTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_STATIC: $vhostTemplate = new StaticTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_PYTHON: $vhostTemplate = new PythonTemplate($this->site); goto Fc9c1; case SiteEntity::TYPE_REVERSE_PROXY: $vhostTemplate = new ReverseProxyTemplate($this->site); goto Fc9c1; } goto F612c; A7c36: $copyVhostBackupFileCommand->setSourceFile($vhostFile); goto a3c56; A1259: $this->commandExecutor->execute($writeVhostFileCommand); goto f4aa8; C358e: if (!("\144\145\x76" != $_ENV["\x41\120\x50\137\x45\116\x56"])) { goto f3fa2; } goto B94aa; Afe3c: $writeVhostFileCommand->setContent($vhostContent); goto Fcae1; E72de: $this->commandExecutor->execute($deleteVhostBackupFileCommand); goto a7dd0; a39ad: $vhostTemplate->setContent($vhostFileContent); goto b307c; E4621: $vhostTemplate->build(); goto ae330; E5b1e: $vhostBackupFile = sprintf("\45\x73\x2f\x25\x73\x2e\x63\x6f\156\x66\x2e\x62\141\153", rtrim(self::NGINX_VHOST_DIRECTORY, "\57"), $domainName); goto e768c; Ec25e: $deleteVhostBackupFileCommand->setFile($vhostBackupFile); goto ee195; e768c: $copyVhostBackupFileCommand = new CopyFileCommand(); goto A7c36; ae330: $vhostTemplate->removeEmptyPlaceholders(); goto A16e1; ee195: $this->commandExecutor->execute($copyVhostBackupFileCommand); goto A1259; cd759: f3fa2: goto E72de; a7dd0: } catch (\Exception $e) { goto Ca8d5; bf358: F90be: goto c6223; e3f91: $restoreBackupFileCommand->setSourceFile($vhostBackupFile); goto E2eb1; Fcea8: throw new InvalidVhostException($errorMessage); goto Caadb; c6223: $restoreBackupFileCommand = new CopyFileCommand(); goto e3f91; Ca8d5: $errorMessage = $e->getMessage(); goto C56be; Ab5f3: $errorMessage = $nginxConfigTestCommand->getOutput(); goto bf358; E2eb1: $restoreBackupFileCommand->setDestinationFile($vhostFile); goto b7288; d0ea9: C5601: goto Ba17f; Ba17f: $this->commandExecutor->execute($deleteVhostBackupFileCommand); goto Fcea8; C56be: if (!(true === isset($nginxConfigTestCommand))) { goto F90be; } goto Ab5f3; e75c6: if (!(true === isset($reloadNginxServiceCommand))) { goto C5601; } goto C5e50; C5e50: $this->commandExecutor->execute($reloadNginxServiceCommand); goto d0ea9; b7288: $this->commandExecutor->execute($restoreBackupFileCommand); goto e75c6; Caadb: } } public function createSshUser(SshUserEntity $sshUserEntity) : void { goto Ca4ad; D22d5: Dc8d6: goto cd04e; Efc28: $createUserCommand->setPassword($sshUserPassword); goto E589f; Dd74b: $sshUserName = $sshUserEntity->getUserName(); goto A6074; Ba065: $createUserCommand->setHomeDirectory($homeDirectory); goto e783a; D9081: $symlinkDirectories = ["\x62\141\143\x6b\x75\x70\163", "\x68\x74\x64\157\x63\x73", "\x6c\x6f\x67\x73"]; goto c758f; Ca4ad: $site = $sshUserEntity->getSite(); goto Cdd01; df80e: $skeletonDirectory = realpath(dirname(__FILE__) . "\x2f\56\56\57\x2e\x2e\x2f\162\x65\163\157\165\162\143\x65\x73\57\x65\164\143\57\163\x6b\145\154\57\x73\x73\x68\x2d\165\163\145\162\57"); goto ea33c; f7462: $createUserCommand->setUserName($sshUserName); goto Efc28; ea33c: $createUserCommand = new CreateUserCommand(); goto f7462; A6074: $sshUserPassword = $sshUserEntity->getPassword(); goto b7b6f; e783a: $createUserCommand->createHomeDirectory(true); goto Af5bc; d4391: $sshDirectoryChmodCommand = new FindChmodCommand(); goto Bba93; c758f: foreach ($symlinkDirectories as $symlinkDirectory) { goto b54a1; afad0: cfdec: goto D7010; f1151: $symlinkCommand->setRunAsUser($sshUserName); goto e79c2; b2ed5: $symlinkCommand = new CreateSymlinkCommand(); goto f1151; e79c2: $symlinkCommand->setSource($source); goto Ae098; Ae098: $symlinkCommand->setDestination($destination); goto a8dc2; b54a1: $source = sprintf("\57\x68\x6f\155\145\57\45\x73\x2f\45\x73", $siteUser, $symlinkDirectory); goto C274e; D7010: Ae14a: goto B5a29; f0f86: $this->commandExecutor->execute($symlinkCommand); goto afad0; C274e: $destination = sprintf("\57\150\x6f\155\145\57\45\163\x2f\45\163", $sshUserName, $symlinkDirectory); goto b2ed5; a8dc2: if (!("\x64\145\x76" != $_ENV["\101\120\120\x5f\x45\x4e\x56"])) { goto cfdec; } goto f0f86; B5a29: } goto D22d5; Bba93: $sshDirectoryChmodCommand->setFile($sshDirectory); goto aee2f; b9f66: $createUserCommand->setSkeletonDirectory($skeletonDirectory); goto Ba065; E589f: $createUserCommand->setGroup($siteUser); goto B6bf8; aee2f: $sshDirectoryChmodCommand->setDirectoryChmod(700); goto a0699; b7b6f: $homeDirectory = sprintf("\57\150\157\155\x65\x2f\45\x73", $sshUserName); goto df80e; C299e: $this->commandExecutor->execute($sshDirectoryChmodCommand); goto B6633; B6bf8: $createUserCommand->setShell("\57\x62\151\156\x2f\142\141\x73\x68"); goto b9f66; a0699: $sshDirectoryChmodCommand->setFileChmod(600); goto C299e; Cdd01: $siteUser = $site->getUser(); goto Dd74b; cd04e: $sshDirectory = sprintf("\x2f\x68\x6f\155\145\x2f\x25\x73\57\56\163\163\150", $sshUserName); goto d4391; Af5bc: $this->commandExecutor->execute($createUserCommand); goto D9081; B6633: } public function createFtpUser(FtpUserEntity $ftpUserEntity) : void { goto F616c; c3b6c: $createUserCommand->setGroups(["\146\164\160\55\x75\163\x65\x72"]); goto a38dc; a8b0e: $ftpUserPassword = $ftpUserEntity->getPassword(); goto Fb38e; cbf46: $siteUser = $site->getUser(); goto E918c; F49b5: $createUserCommand->createHomeDirectory(false); goto B29ce; Ad9b7: $createUserCommand->setPassword($ftpUserPassword); goto c085b; A7b9a: $createUserCommand->setUserName($ftpUserName); goto Ad9b7; Fb38e: $homeDirectory = $ftpUserEntity->getHomeDirectory(); goto ee4e5; c085b: $createUserCommand->setGroup($siteUser); goto c3b6c; ee4e5: $createUserCommand = new CreateUserCommand(); goto A7b9a; B29ce: $this->commandExecutor->execute($createUserCommand); goto ff060; E918c: $ftpUserName = $ftpUserEntity->getUserName(); goto a8b0e; F616c: $site = $ftpUserEntity->getSite(); goto cbf46; a38dc: $createUserCommand->setShell("\57\142\151\156\x2f\x66\x61\x6c\163\145"); goto ec298; ec298: $createUserCommand->setHomeDirectory($homeDirectory); goto F49b5; ff060: } public function deleteUser(string $userName, $removeHomeDirectory = true) : void { goto f39be; Ae478: $deleteUserCommand->setUserName($userName); goto B072c; f733f: $this->commandExecutor->execute($deleteUserCommand); goto fb9e8; B072c: $deleteUserCommand->setRemoveHomeDirectory($removeHomeDirectory); goto f733f; f39be: $deleteUserCommand = new DeleteUserCommand(); goto Ae478; fb9e8: } public function installCertificate(CertificateEntity $certificateEntity) : void { goto A7b43; B744e: if (!(false === empty($certificateEntity->getCertificateChain()))) { goto B846e; } goto Bd9dc; d8562: $writePrivateKeyFileCommand->setFile($privateKeyFile); goto A4bff; fb890: $certificate = $certificateEntity->getCertificate(); goto B744e; b17f7: $writePrivateKeyFileCommand = new WriteFileCommand(); goto d8562; A19ff: $this->commandExecutor->execute($writeCertificateFileCommand); goto d73d2; aec15: $writeCertificateFileCommand->setContent($certificate); goto c5a8e; A4bff: $writePrivateKeyFileCommand->setContent($certificateEntity->getPrivateKey()); goto c913f; A7b43: $domainName = $this->site->getDomainName(); goto a650b; c913f: $writeCertificateFileCommand = new WriteFileCommand(); goto D9232; Cd90a: $certificateFile = sprintf("\x25\x73\x2f\45\163\x2e\x63\x72\164", rtrim(self::NGINX_SSL_CERTIFICATES_DIRECTORY, "\57"), $domainName); goto fb890; c5a8e: $this->commandExecutor->execute($writePrivateKeyFileCommand); goto A19ff; Bd9dc: $certificate .= sprintf("\x25\x73\45\163", PHP_EOL, trim($certificateEntity->getCertificateChain())); goto b1792; d73d2: $this->reloadService("\156\147\x69\156\x78"); goto e442d; D9232: $writeCertificateFileCommand->setFile($certificateFile); goto aec15; b1792: B846e: goto b17f7; a650b: $privateKeyFile = sprintf("\x25\163\x2f\x25\x73\x2e\x6b\x65\171", rtrim(self::NGINX_SSL_CERTIFICATES_DIRECTORY, "\57"), $domainName); goto Cd90a; e442d: } public function deleteLetsEncryptChallengeDirectory() { goto b65ae; c85fe: $acemeChallengeDirectory = sprintf("\x25\x73\x2f\x2e\167\x65\x6c\154\x2d\x6b\x6e\157\167\156\x2f", rtrim($rootDirectory, "\57")); goto d5a36; bebc3: $this->commandExecutor->execute($deleteAcmeChallengeDirectoryCommand); goto A6756; b65ae: $rootDirectory = $this->getRootDirectory(); goto c85fe; d777f: $deleteAcmeChallengeDirectoryCommand->setDirectory($acemeChallengeDirectory); goto bebc3; d5a36: $deleteAcmeChallengeDirectoryCommand = new DeleteDirectoryCommand(); goto d777f; A6756: } public function createBasicAuthFile(BasicAuthEntity $basicAuthEntity) { goto Adfc9; Abbd6: $basicAuthFileContent = sprintf("\x25\x73\x3a\45\163", $basicAuthEntity->getUserName(), crypt($basicAuthEntity->getPassword(), base64_encode($basicAuthEntity->getPassword()))); goto b4f5d; Ed1f1: $writeBasicAuthFileCommand->setContent($basicAuthFileContent); goto cbf77; b4f5d: $writeBasicAuthFileCommand = new WriteFileCommand(); goto e57dc; e57dc: $writeBasicAuthFileCommand->setFile($basicAuthFile); goto Ed1f1; cbf77: $this->commandExecutor->execute($writeBasicAuthFileCommand); goto Ebf98; Adfc9: $basicAuthFile = sprintf("\45\163\57\x25\x73", rtrim(self::NGINX_BASIC_AUTH_DIRECTORY, "\x2f"), $this->site->getDomainName()); goto Abbd6; Ebf98: } public function createLetsEncryptChallengeFiles(CertificateOrder $certificateOrder) : void { goto fc1a0; a11e8: if (!count($challenges)) { goto c29a7; } goto fb6e6; E121b: $challenges = $certificateOrder->getAuthorizationsChallenges(); goto f6ccc; Ab49e: $this->commandExecutor->execute($chownWellKnownDirectoryCommandCommand); goto Da36b; D3124: c29a7: goto ac950; D7ed8: $this->commandExecutor->execute($createAcmeChallengeDirectoryCommand); goto a11e8; f4753: $rootDirectory = $this->getRootDirectory(); goto cc339; E3090: $createAcmeChallengeDirectoryCommand->setDirectory($acemeChallengeDirectory); goto D7ed8; f6151: $chownWellKnownDirectoryCommandCommand->setRecursive(true); goto db97e; fd039: B33ad: goto D3124; fc1a0: $siteUser = $this->site->getUser(); goto f4753; e99a3: $chownWellKnownDirectoryCommandCommand->setFile($wellKnownDirectory); goto f6151; Dda8b: $chmodWellKnownDirectoryCommand->setFileChmod(770); goto Ab49e; db97e: $chownWellKnownDirectoryCommandCommand->setUser($siteUser); goto a8bd3; ec563: $chmodWellKnownDirectoryCommand = new FindChmodCommand(); goto Fe317; e7deb: $chmodWellKnownDirectoryCommand->setDirectoryChmod(750); goto Dda8b; fb6e6: foreach ($challenges as $challenge) { goto e9000; Cd2ad: $verificationContent = $challenge["\166\145\162\x69\x66\151\143\141\x74\x69\x6f\156\x43\x6f\x6e\x74\145\x6e\x74"] ?? null; goto aee09; aee09: if (!(false === is_null($token) && false === is_null($verificationContent))) { goto f4f36; } goto Dffa8; a7119: $challengeWriteFileCommand = new WriteFileCommand(); goto F7467; e9000: $token = $challenge["\164\x6f\x6b\x65\x6e"] ?? null; goto Cd2ad; d9806: $this->commandExecutor->execute($challengeWriteFileCommand); goto E9317; e3578: $challengeWriteFileCommand->setContent($verificationContent); goto d9806; F7467: $challengeWriteFileCommand->setFile($challengeFile); goto e3578; e5920: e26b6: goto C9d49; Dffa8: $challengeFile = sprintf("\x25\163\57\x25\x73", rtrim($acemeChallengeDirectory, "\57"), $token); goto a7119; E9317: f4f36: goto e5920; C9d49: } goto fd039; cc339: $wellKnownDirectory = sprintf("\x25\x73\57\56\x77\145\154\x6c\x2d\x6b\156\157\167\156\57", rtrim($rootDirectory, "\x2f")); goto F76de; ac950: $chownWellKnownDirectoryCommandCommand = new ChownCommand(); goto e99a3; Da36b: $this->commandExecutor->execute($chmodWellKnownDirectoryCommand); goto B32bf; f6ccc: $createAcmeChallengeDirectoryCommand = new CreateDirectoryCommand(); goto E3090; Fe317: $chmodWellKnownDirectoryCommand->setFile($wellKnownDirectory); goto e7deb; a8bd3: $chownWellKnownDirectoryCommandCommand->setGroup($siteUser); goto ec563; F76de: $acemeChallengeDirectory = sprintf("\x25\x73\57\x2e\167\x65\154\154\55\x6b\x6e\x6f\167\156\x2f\x61\x63\x6d\x65\x2d\143\x68\x61\154\x6c\145\156\x67\x65\57", rtrim($rootDirectory, "\57")); goto E121b; B32bf: } public function updateUserCrontab() : void { goto F17ee; ffe35: $this->commandExecutor->execute($writeCrontabFileCommand); goto e2b7c; c64a8: $crontabEntries = ["\x4d\101\111\x4c\x54\x4f\x3d\x22\42"]; goto eb6d9; f0c4f: $writeCrontabFileCommand->setFile($crontabFile); goto C749a; aa492: $crontabContent = implode(PHP_EOL, $crontabEntries); goto Cbbb8; ae85e: $crontabFile = sprintf("\x25\163\x2f\x25\163", rtrim(self::CRON_DIRECTORY, "\x2f"), $siteUser); goto c64a8; f6d0a: if (!count($cronJobs)) { goto a4fd8; } goto efe30; Cbbb8: $writeCrontabFileCommand = new WriteFileCommand(); goto f0c4f; eb6d9: $cronJobs = $this->site->getCronJobs(); goto f6d0a; C749a: $writeCrontabFileCommand->setContent($crontabContent); goto ffe35; Da250: Ecbaf: goto a4377; F17ee: $siteUser = $this->site->getUser(); goto ae85e; efe30: foreach ($cronJobs as $cronJob) { $crontabEntries[] = $cronJob->getCrontabExpression(); F0fd8: } goto Da250; a4377: a4fd8: goto aa492; e2b7c: } public function purgePageSpeedCache() : void { goto c3a87; F8023: $purgePageSpeedCacheFilesCommand->setDirectory($cacheDirectory); goto C4b5f; c3a87: $siteUser = $this->site->getUser(); goto dc472; C4b5f: $this->commandExecutor->execute($purgePageSpeedCacheFilesCommand, 300); goto df70c; bbfe2: $purgePageSpeedCacheFilesCommand = new DeleteDirectoryCommand(); goto F8023; dc472: $cacheDirectory = sprintf("\57\x68\x6f\x6d\145\x2f\45\x73\57\164\x6d\160\57\x70\141\147\145\163\160\145\x65\144\137\143\x61\143\150\145\x2f\52", $siteUser); goto bbfe2; df70c: } public function updateUserSShKeys(string $userName, $sshKeys) : void { goto C28ec; Ee6a5: $writeAuthorizedKeysFileCommand->setFile($authorizedKeysFile); goto fefb6; Fc085: $writeAuthorizedKeysFileCommand = new WriteFileCommand(); goto Ee6a5; fefb6: $writeAuthorizedKeysFileCommand->setContent($sshKeys); goto f564b; f564b: $this->commandExecutor->execute($writeAuthorizedKeysFileCommand); goto E3ca0; C28ec: $authorizedKeysFile = sprintf("\57\150\x6f\155\x65\x2f\45\163\57\x2e\163\163\150\57\x61\x75\x74\150\x6f\162\151\x7a\145\144\x5f\153\x65\171\163", $userName); goto Fc085; E3ca0: } public function changeUserHomeDirectory(string $userName, string $homeDirectory) : void { goto b72e0; b72e0: $changeUserHomeDirectoryCommand = new ChangeUserHomeDirectoryCommand(); goto fe7d6; fe7d6: $changeUserHomeDirectoryCommand->setUserName($userName); goto Ba19c; Ba19c: $changeUserHomeDirectoryCommand->setHomeDirectory($homeDirectory); goto C4e8a; C4e8a: $this->commandExecutor->execute($changeUserHomeDirectoryCommand); goto e8f5b; e8f5b: } public function changeUserPassword(string $userName, string $password) : void { goto fa9f6; B30c3: $this->commandExecutor->execute($changeUserPasswordCommand); goto A3996; a8feb: $changeUserPasswordCommand->setUserName($userName); goto d544f; d544f: $changeUserPasswordCommand->setPassword($password); goto B30c3; fa9f6: $changeUserPasswordCommand = new ChangeUserPasswordCommand(); goto a8feb; A3996: } protected function getRootDirectory() : string { goto b1ac2; ebe6b: return $rootDirectory; goto f4217; d9356: $rootDirectory = sprintf("\57\x68\157\x6d\x65\x2f\x25\x73\x2f\150\164\x64\x6f\x63\163\x2f\45\x73", $siteUser, $rootDirectory); goto ebe6b; b1ac2: $siteUser = $this->site->getUser(); goto Cbb54; Cbb54: $rootDirectory = $this->site->getRootDirectory(); goto d9356; f4217: } public function reloadNginxService() : void { $this->reloadService("\156\147\151\156\x78"); } public function reloadService($serviceName) { goto A0e93; B273f: $reloadServiceCommand = new ServiceReloadCommand(); goto D9e53; f1c61: b0918: goto De078; fab37: $this->commandExecutor->execute($reloadServiceCommand); goto f1c61; A0e93: if (!("\144\145\166" != $_ENV["\x41\120\120\x5f\x45\116\x56"])) { goto b0918; } goto B273f; D9e53: $reloadServiceCommand->setServiceName($serviceName); goto fab37; De078: } }

Function Calls

None

Variables

None

Stats

MD5 b6806a91baa35152c2b3ccd73d8366cb
Eval Count 0
Decode Time 53 ms