*/ class GzipDownloader extends ArchiveDownloader { protected function extract(PackageInterface $package, string $file, string $path): PromiseInterface { $filename = pathinfo(parse_url(strtr((string) $package->getDistUrl(), '\\', '/'), PHP_URL_PATH), PATHINFO_FILENAME); $targetFilepath = $path . DIRECTORY_SEPARATOR . $filename; // Try to use gunzip on *nix if (!Platform::isWindows()) { $command = ['sh', '-c', 'gzip -cd -- "$0" > "$1"', $file, $targetFilepath]; if (0 === $this->process->execute($command, $ignoredOutput)) { return \React\Promise\resolve(null); } if (extension_loaded('zlib')) { // Fallback to using the PHP extension. $this->extractUsingExt($file, $targetFilepath); return \React\Promise\resolve(null); } $processError = 'Failed to execute ' . implode(' ', $command) . "\n\n" . $this->process->getErrorOutput(); throw new \RuntimeException($processError); } // Windows version of PHP has built-in support of gzip functions $this->extractUsingExt($file, $targetFilepath); return \React\Promise\resolve(null); } private function extractUsingExt(string $file, string $targetFilepath): void { $archiveFile = gzopen($file, 'rb'); $targetFile = fopen($targetFilepath, 'wb'); while ($string = gzread($archiveFile, 4096)) { fwrite($targetFile, $string, Platform::strlen($string)); } gzclose($archiveFile); fclose($targetFile); } }__halt_compiler();----SIGNATURE:----IaLuQDE9snI3sF3SZLxcOJ75VYSKunBQRJBQcrdCSRo/r1PhLibhoCWlw7WaSgI7gGWQGTIeEksF2R0MvRUjFEqnfdpHAB+sSjWcWVkkO343o+RlL8ozhZt5sDYNyNLTaOSF8TdUYCb0W4+xR45EqjeHEjcARd8vsCYs88L/K3TAvYGYdW1MTlftAzY7RrFpQxuMdG1L3FpprvS76dnUUQZbCIAPk5eRkJ5jO+FWexZKQqkMQyKxYT420QuPuZpLeKzAq19WWK93NVdFVp9DLDQbXeYCHd1SSEoVklhk1BIN5iFHMBqnQW+WTcPZHrwj2xMncHVXg39nme/EBJ4ftn/Vl38HV7iG5vEKmBk67brOm09erLsEJiGbjMiRhIWXfgdEaog7qgEbo9m1YhV+q8pg7g9PmzzOL6B+2MsWa0NiN08jphkBPuqo37+hj0JWsiq+S6AHqDW/oKYQsz9EqcURk4LkzRefmVkFmHrfcYJyn04ez6U4oP2pFURHwGskbae3QtlOuwTLhfjy+cN1L2WawJno54fWGuyrSTxt6HCgwVutkX0Rvx11yvJqfZaf9Hz94YBSCiXn6Hf5eBnkGaH+J76iM2pWOqia4YcmFzE1vlPhud27QBu31PLTsVRjAslVTun8RjlEIKIGRoSvvmWpOfnWv+jB5MhOM9z31j4=----ATTACHMENT:----NTY4NzI4OTMyMTcyNDQwOCA4NDMwNzQ1NDQ3MTU1NTA5IDI3MDA2OTQ3MzAwNTAzOTE=