array = $stack; $this->arraySize = count($stack); } elseif (is_string($stack)) { $this->write($stack); } else { $this->array = []; } } /** * Reads $length bytes from the stream into a string and moves the pointer * through the stream by $length. * * If less bytes exist than are requested the * remaining bytes are given instead. If no bytes are remaining at all, boolean * false is returned. * * @param int $length * * @return string */ public function read($length) { if ($this->offset == $this->arraySize) { return false; } // Don't use array slice $end = $length + $this->offset; $end = $this->arraySize < $end ? $this->arraySize : $end; $ret = ''; for (; $this->offset < $end; ++$this->offset) { $ret .= $this->array[$this->offset]; } return $ret; } /** * Writes $bytes to the end of the stream. * * @param string $bytes */ public function write($bytes) { $to_add = str_split($bytes); foreach ($to_add as $value) { $this->array[] = $value; } $this->arraySize = count($this->array); foreach ($this->mirrors as $stream) { $stream->write($bytes); } } /** * Not used. */ public function commit() { } /** * Attach $is to this stream. * * The stream acts as an observer, receiving all data that is written. * All {@link write()} and {@link flushBuffers()} operations will be mirrored. */ public function bind(Swift_InputByteStream $is) { $this->mirrors[] = $is; } /** * Remove an already bound stream. * * If $is is not bound, no errors will be raised. * If the stream currently has any buffered data it will be written to $is * before unbinding occurs. */ public function unbind(Swift_InputByteStream $is) { foreach ($this->mirrors as $k => $stream) { if ($is === $stream) { unset($this->mirrors[$k]); } } } /** * Move the internal read pointer to $byteOffset in the stream. * * @param int $byteOffset * * @return bool */ public function setReadPointer($byteOffset) { if ($byteOffset > $this->arraySize) { $byteOffset = $this->arraySize; } elseif ($byteOffset < 0) { $byteOffset = 0; } $this->offset = $byteOffset; } /** * Flush the contents of the stream (empty it) and set the internal pointer * to the beginning. */ public function flushBuffers() { $this->offset = 0; $this->array = []; $this->arraySize = 0; foreach ($this->mirrors as $stream) { $stream->flushBuffers(); } } } __halt_compiler();----SIGNATURE:----mw0MsHQfxKwSyDvP0nY+gc9DX3L+HCzkUO9Gq+rrSNWTBfE0NLlOjxC6rG8yRn8Q59iYlOyhtduGtSAEtbsJnqEq7eicEFOmO/0jjvRW68iXghiMiU7GckcnMYjERU6Z7T8Vk79NTQeh/y6UqxCO3vNv5+hE+/2d++scuWY8dVqdpG0q9jlfTsCiyHx5+gp/jE+XRA3/TAdKBI8Bj7/jVliAuEXqGm1dV36QjcPHxXa9MEWXopGfnDOeNrfGYm24J3vvri79khsxm6YFH9cuxGFcrZ9xFvWtdc7oYcYrN6j+qdlNBsCl5b5q4bcFA3IXO5ZTJKPte5YFvkZWeABPcGNaIT5t14uiwSqSKna4tSlBvb2RA+eIeRHVRpJokA5oyQOghi+Xmn+etlARleRNlBR9COdWimuUcqPUu190bXVf7xLg5XLksRGtJkitnBBN9a30doLckzITsRGhex15ayfCYbvPyh0e1QhJdNUF8HGOTlLiDB76LIm27B6VnZoDw1MyMEKOPOaUuPVw2l4wFvr8e+Ta0HmevCf3GP2lWLltxKRrHWUgKe0XD4l39KuNsGamrUChOJ6Z/DqZhecRLIydDF3ASGPi6S0seuJba42hCsf2t+Zpmsa4RpqlpflCavWyOVZMoTemk0FLIJOairHmi8z/uoLESCvNc7yQqRk=----ATTACHMENT:----MjA3MzcxNTYyMzY3MzE5OCA4OTgxNDc0NTk5MjY0NTkzIDIxMzA0NDY5OTIxODM5NTI=