ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙtype ) { case "L": $extensions["fileName"] = $this->readExtension( $file ); break; case "K": $extensions["linkName"] = $this->readExtension( $file ); break; } } while ( $this->type < '0' || $this->type > '9' ); parent::__construct( $file ); foreach ( $extensions as $key => $value ) { switch ( $key ) { case "fileName": $this->fileName = $extensions["fileName"]; $this->filePrefix = ""; break; case "linkName": $this->linkName = $extensions["linkName"]; break; } } } } /** * Reads an extended set of data from the Block file and returns it as a string. * * Some filenames or link names do not fit in the Ustar header, and are therefor placed in a new block. * This method read the block(s) and returns the data as a string. * * @param ezcArchiveBlockFile $file * @return string */ protected function readExtension( ezcArchiveBlockFile $file ) { $completeBlocks = ( int ) ( $this->fileSize / self::BLOCK_SIZE ); $rest = ( $this->fileSize % self::BLOCK_SIZE ); $data = ""; for ( $i = 0; $i < $completeBlocks; $i++ ) { $data .= $file->next(); } $data .= substr( $file->next(), 0, $rest ); $file->next(); return $data; } } ?>