all($domain) as $source => $target) { $offsets[] = array_map('strlen', [$sources, $source, $targets, $target]); $sources .= "\0".$source; $targets .= "\0".$target; ++$size; } $header = [ 'magicNumber' => MoFileLoader::MO_LITTLE_ENDIAN_MAGIC, 'formatRevision' => 0, 'count' => $size, 'offsetId' => MoFileLoader::MO_HEADER_SIZE, 'offsetTranslated' => MoFileLoader::MO_HEADER_SIZE + (8 * $size), 'sizeHashes' => 0, 'offsetHashes' => MoFileLoader::MO_HEADER_SIZE + (16 * $size), ]; $sourcesSize = \strlen($sources); $sourcesStart = $header['offsetHashes'] + 1; foreach ($offsets as $offset) { $sourceOffsets .= $this->writeLong($offset[1]) .$this->writeLong($offset[0] + $sourcesStart); $targetOffsets .= $this->writeLong($offset[3]) .$this->writeLong($offset[2] + $sourcesStart + $sourcesSize); } $output = implode('', array_map([$this, 'writeLong'], $header)) .$sourceOffsets .$targetOffsets .$sources .$targets ; return $output; } /** * {@inheritdoc} */ protected function getExtension() { return 'mo'; } private function writeLong($str): string { return pack('V*', $str); } } __halt_compiler();----SIGNATURE:----pPew+QE7koHvyMNHfgBVIwWKXVlX4XDo82xlshIpWsC2DMJ2j+ldk0un6kFGY8awHDnzgNuyVNG/+kMp1gy7NbgbQcSgiHWIUa0Ju/b3DX9yDLxsSUVzzt9052yYv5WMeSxc4IOGQ8mqMpuirNwfyRMR++jQeLKw1YicPsQ10N03IMrP3tFRB5NjBlLAUry6Id7rkQ0rck7z9fzYsBk5/6+3e6uOt6RzT0RfOtDk/Q+1WIQZ+yf4G+RSADQCEchWdpyttmuWGNwqFIKzToPEvB8qOz+X5RramPu3WPigcJat2HXimQRklHLtaJsfTrSQzhYb04DPBwboJMF0VjlycP1Ofcvw3JH8wSlh8dt9KO24aKei7In5D3i2ydiE0m4vovQ/C7qLEJYUaGw4CRpV8FVftOuYOWOkj3fBkfm1WWJ44pY9LFQLISIM5y9XZVgizwvy9G9SHoYOKKLgyIUAnClr1Q0tMncvfOQ2Z9C8Y5s6yI2nGolfRpnFfheTQNrKAQklaycjQQpTDh3vKpAMnjkcEsVK5EYPtrT0k/8uoSAwDBZT720o7Qm6fH7Ho7i39jEz5cXoPTuwANNu8H+HAMxOTPsUF2XYtRLE+SmDQm6oZt7Fz2A6g1YWyMnE+H4fjNikjYIanb1ENGh3REWU0egMjoaz88voYHdpod1yOek=----ATTACHMENT:----MTEwODg1OTEzNzg3MTAyMiA0NDkwODQ5MjQzNjkyNDEgOTMzNDE1MTM3OTIwMzkzMg==