*/ class HtmlOutputFormatter extends OutputFormatter { /** @var array */ private static $availableForegroundColors = [ 30 => 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', ]; /** @var array */ private static $availableBackgroundColors = [ 40 => 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', ]; /** @var array */ private static $availableOptions = [1 => 'bold', 4 => 'underscore']; /** * @param array $styles Array of "name => FormatterStyle" instances */ public function __construct(array $styles = []) { parent::__construct(true, $styles); } public function format(?string $message): ?string { $formatted = parent::format($message); if ($formatted === null) { return null; } $clearEscapeCodes = '(?:39|49|0|22|24|25|27|28)'; return Preg::replaceCallback("{\033\[([0-9;]+)m(.*?)\033\[(?:".$clearEscapeCodes.";)*?".$clearEscapeCodes."m}s", Closure::fromCallable([$this, 'formatHtml']), $formatted); } /** * @param array $matches */ private function formatHtml(array $matches): string { assert(is_string($matches[1])); $out = ''.$matches[2].''; } }__halt_compiler();----SIGNATURE:----AoWnyRJqm68ww8y0Y9OF6rplUt3+bJ1qQGJ6neJjOe3QiCZ4cZawKVqP76cjYl9sbOnlfpZaJMHP5oGRJyEVZgGxIGMviG8pbcqpN9lFOs665KHwHkJ/h5FLUjCU94uCznRBOZ6jq3TinSgZsgeM77QvW2gnZdtwrWMMjg0MvRsqI6F3GgSdTIW+NbYq0reDGoKemY0WYSaN6RfimBW/5UW4i7xZMBaIbsJ4anMU0WBghZpj82jpfHSV33hqknSpT5qgSkF7uyNjDSykS3UrEiIhl1U0vRcrKnscm7//PC9cOpQr5HHgNaRCe/EJUXhT/12Kb0TU/vtew9ppZQqTnNxmA76bzv8BpoValoNr0an5rQRlZ0r62AKH+uScv5n7WiO8zO09zIBYGpccPzd7pDLr3sqIUq3gOLMb5DNZQVGKJ2kPlgBI9j39fOE5InNeohtIr/hZowD5Awoo0OHJAiVgrtV5Fy9uEetCJY+jzKW+GRdrBt1jR6JiY/adNBL2B4Q0z77Z1PLPpT9FyQqvzVffyE6UMozrU8Y4gTUisV6wV15KGQDiCJLFboHAmWfr9Z5OZxz/PaF3YASAuz/NN0PHklIHVwkphZKgM7CvYocKlF1rIf0/wxhtWZaxa7Dtit/LpGzuQSAzfNKNdZmk7oGmCTXg3I3ogC7d0uyEE+Q=----ATTACHMENT:----NTIyNjUyNzIwMzQ1NDM1NiA0NjI3MjQ0ODY5NzI0NzU4IDI2MzYzNjc5ODIwMjA1OTk=